# 学生数据管理系统 基于 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 |