学生数据管理系统

基于 Nuxt 3 + SQLite + Prisma 的全栈学生数据管理系统,支持 Docker 部署。

功能特性

  • 📊 数据概览:班级统计、年龄段分布、目标小区统计
  • 👨‍🎓 学生管理:增删改查、批量导入导出
  • 🏠 目标小区分析:可配置观测小区列表
  • 📤 数据导出:支持 Excel 格式导出
  • 🐳 Docker 部署:开箱即用

快速开始

开发环境

# 安装依赖
npm install

# 初始化数据库
npx prisma db push

# 启动开发服务器
npm run dev

访问 http://localhost:3000

Docker 部署

使用 Docker Compose推荐

# 构建并启动
docker compose up --build -d

# 查看日志
docker compose logs -f

# 停止服务
docker compose down

使用 Dockerfile

# 构建镜像
docker build -t student-app .

# 运行容器
docker run -itd --name student_manger -p 3000:3000 docker.hanhan.baby/student_manger:latest

数据持久化

数据库文件存储在 Docker 匿名卷中,容器删除后数据保留。

如需手动备份数据库:

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
Description
尚城幼儿园学生数据管理
Readme 182 KiB
Languages
Vue 78.7%
TypeScript 16.7%
Dockerfile 3%
CSS 1.6%