# 萌芽个人主页

一个现代化的个人主页网站，采用前后端分离架构，支持 Docker 一键部署。

## 🚀 快速部署 (Docker)

### 一键启动

**Windows:**
```bash
docker-deploy.bat
```

**Linux/Mac:**
```bash
chmod +x docker-deploy.sh
./docker-deploy.sh
```

**或使用 Docker Compose:**
```bash
docker-compose up -d --build
```

**访问应用:**
- 主页: http://localhost:5000
- 管理员: http://localhost:5000/admin?token=shumengya520

📖 详细文档: [Docker 部署指南](DOCKER_README.md) | [快速开始](QUICKSTART.md)

---

## 项目简介

这是一个功能完整、设计精美的个人主页系统，展示个人信息、全部项目和联系方式。

### 特性亮点

- 🎨 **现代化设计**: 渐变色背景、流畅动画、精美卡片布局
- 📱 **响应式布局**: 完美适配桌面端和移动端
- 🔄 **前后端分离**: React + Python Flask 架构
- 🐳 **Docker 支持**: 一键部署，开箱即用
- 💾 **数据持久化**: SQLite（`data/site.db`）+ 管理后台
- ⚡ **内容管理**: 通过 `/admin` 或 Admin API 维护站点数据
- 🎯 **三大模块**: 个人信息、全部项目、联系方式
- 🔐 **权限控制**: 管理员模式隐藏私密项目

## 项目结构

```
萌芽个人主页/
├── mengyaprofile-backend/    # 后端 Python Flask 项目
│   ├── app.py                 # Flask 应用主文件
│   ├── requirements.txt       # Python 依赖
│   └── data/                  # SQLite（site.db）与 logo 等静态资源
│
└── mengyaprofile-frontend/    # 前端 React 项目
    ├── public/                # 静态资源
    ├── src/                   # 源代码
    │   ├── App.js            # 主应用
    │   ├── App.css           # 全局样式
    │   └── components/       # 组件目录
    │       ├── ProfileSection.js   # 个人信息组件
    │       ├── ProjectsSection.js  # 项目展示组件
    │       └── ContactsSection.js  # 联系方式组件
    └── package.json          # 项目配置
```

## 快速开始

### 前置要求

- Python 3.7+
- Node.js 14+
- npm 或 yarn

### 1. 启动后端服务

```bash
# 进入后端目录
cd mengyaprofile-backend

# 安装依赖
pip install -r requirements.txt

# 运行服务
python app.py
```

后端服务将运行在 `http://localhost:5000`

### 2. 启动前端应用

```bash
# 进入前端目录
cd mengyaprofile-frontend

# 安装依赖
npm install

# 启动开发服务器
npm start
```

前端应用将运行在 `http://localhost:3000`

### 3. 访问应用

在浏览器中打开 `http://localhost:3000` 即可查看你的个人主页！

## 功能模块与数据

个人信息、项目列表、联系方式、技术栈等内容均存储在 **`mengyaprofile-backend/data/site.db`**（SQLite），表结构见 `mengyaprofile-backend/schema.sql`。

- **浏览**: 首页读取 `/api/all` 等接口。
- **编辑**: 打开 **`/admin`**（需管理员 token，见后端环境变量 `ADMIN_TOKEN`），在后台表单中维护；或直接调用 `/api/admin/*` 并携带请求头 `X-Admin-Token`。

空库首次启动时只会创建最小占位数据（空昵称、默认「技术栈」标题），其余请在管理后台中填写。

## 技术栈

### 前端
- React 19
- CSS3（动画、渐变、响应式布局）
- Fetch API

### 后端
- Python 3
- Flask 3.0
- Flask-CORS（跨域支持）

## API 接口

后端提供以下 RESTful API：

- `GET /api/profile` - 获取个人信息
- `GET /api/projects` - 获取项目列表
- `GET /api/contacts` - 获取联系方式
- `GET /api/all` - 获取所有数据

## 部署建议

### 后端部署

推荐使用以下方式部署后端：
- Heroku
- AWS EC2
- 阿里云 ECS
- 使用 Gunicorn 作为生产服务器

### 前端部署

推荐使用以下方式部署前端：
- Vercel
- Netlify
- GitHub Pages
- Nginx 静态服务器

**注意**: 部署前需要修改前端 `src/App.js` 中的 API 地址为生产环境地址。

## 浏览器支持

- ✅ Chrome（推荐）
- ✅ Firefox
- ✅ Safari
- ✅ Edge
- ✅ 移动端浏览器

## 开发计划

- [ ] 添加博客模块
- [ ] 添加深色模式
- [ ] 添加多语言支持
- [ ] 添加后台管理系统
- [ ] 添加访问统计
- [ ] 添加留言板功能

## 许可证

MIT License

## 作者

萌芽

---

如有问题或建议，欢迎提 Issue！
