feat: initial commit with Nuxt 3 student management system

- Add Nuxt 3 + Prisma + SQLite full-stack setup
- Add student CRUD API with batch import/export
- Add stats dashboard with gender/class distribution
- Add target community settings feature
- Add Docker deployment support (Dockerfile + docker-compose)
- Add README with development and deployment instructions
This commit is contained in:
2026-03-21 02:00:55 +08:00
commit 05c33b1fe8
25 changed files with 15749 additions and 0 deletions

115
README.md Normal file
View File

@@ -0,0 +1,115 @@
# 学生数据管理系统
基于 Nuxt 3 + SQLite + Prisma 的全栈学生数据管理系统,支持 Docker 部署。
## 功能特性
- 📊 数据概览:班级统计、年龄段分布、目标小区统计
- 👨‍🎓 学生管理:增删改查、批量导入导出
- 🏠 目标小区分析:可配置观测小区列表
- 📤 数据导出:支持 Excel 格式导出
- 🐳 Docker 部署:开箱即用
## 快速开始
### 开发环境
```bash
# 安装依赖
npm install
# 初始化数据库
npx prisma db push
# 启动开发服务器
npm run dev
```
访问 http://localhost:3000
### Docker 部署
#### 使用 Docker Compose推荐
```bash
# 构建并启动
docker compose up --build -d
# 查看日志
docker compose logs -f
# 停止服务
docker compose down
```
#### 使用 Dockerfile
```bash
# 构建镜像
docker build -t student-app .
# 运行容器
docker run -p 3000:3000 student-app
```
#### 数据持久化
数据库文件存储在 Docker 匿名卷中,容器删除后数据保留。
如需手动备份数据库:
```bash
docker compose cp student-app:/app/data/student.db ./backup.db
```
## 项目结构
```
├── server/
│ ├── api/
│ │ ├── students/ # 学生 CRUD API
│ │ ├── stats/ # 统计数据 API
│ │ └── settings/ # 设置 API
│ └── utils/
│ └── prisma.ts # Prisma 客户端
├── pages/
│ ├── index.vue # 数据概览页
│ └── students.vue # 学生列表页
├── layouts/
│ └── default.vue # 默认布局
├── prisma/
│ └── schema.prisma # 数据库模型
├── assets/
│ └── css/
│ └── main.css # 全局样式
├── Dockerfile # Docker 构建文件
├── docker-compose.yml # Docker Compose 配置
└── .env # 环境变量
```
## 技术栈
- **前端**Nuxt 3, Vue 3, Tailwind CSS
- **后端**Nuxt Server Routes, Prisma ORM
- **数据库**SQLite
- **部署**Docker, Docker Compose
## API 接口
| 方法 | 路径 | 描述 |
|------|------|------|
| GET | /api/students | 获取所有学生 |
| POST | /api/students | 添加学生 |
| PUT | /api/students/:id | 更新学生 |
| DELETE | /api/students/:id | 删除学生 |
| POST | /api/students/import | 批量导入 |
| POST | /api/students/clear | 清空数据 |
| GET | /api/stats | 获取统计数据 |
| GET | /api/settings | 获取设置 |
| POST | /api/settings/save | 保存设置 |
## 环境变量
| 变量 | 说明 | 默认值 |
|------|------|--------|
| DATABASE_URL | SQLite 数据库路径 | file:./data/student.db |
| NODE_ENV | 运行环境 | development |