Skip to content

shj56166/class-leave-and-attendance-system

Repository files navigation

校园请假管理

面向班级的请假管理系统,可供于统计、考核等简化流程,支持跨平台

🚀 Overview

A fullstack attendance and leave management system for schools, featuring:

  • 🧾 Leave request & approval workflow
  • 📊 Attendance & truancy analytics
  • 📱 Cross-platform support (Web + PWA + Android)
  • 🔐 Role-based access control (RBAC)

项目形态

包含 Node.js 后端服务、学生端和教师端分离式 Android App、教师端网页,以及 iOS 跨平台支持。

特色功能

支持 一键报备旷课统计动效设计,兼顾操作效率、数据呈现和界面体验。

项目说明

项目把学生请假、教师审批、班级统计和记录追踪放在同一套系统里,减少纸面登记、聊天确认和人工汇总带来的流程割裂。

已通过内网测试和部分攻击测试,可稍作配置投入使用或根据需求继续开发

校园请假管理系统架构图,展示学生端、教师端、Node.js / Express 后端、Socket.IO、MySQL、通知队列与 JPush 的关系

实机内容

教师端

审批管理

教师端审批管理页,展示待审批列表和同意驳回操作

  • 教师可集中查看待审批列表,完成同意、驳回与备注处理。

总览统计

教师端总览统计页,展示趋势、风险排行和重点对象

  • 提供趋势总览、重点对象和高发规律,方便展示项目的数据分析能力。

今日统计

教师端今日统计页,展示教室核对结果、当前请假和宿舍视图

  • 支持查看当天课堂核对结果、宿舍分布和当前请假状态。

记录日志

教师端记录日志页,支持按类型、学生、日期和状态筛选

  • 支持按记录类型、学生、日期范围、状态和来源联动筛选。

学生端

请假历史

学生端请假历史页,查看状态、模式和归档详情

  • 支持按状态和模式筛选历史记录,适合回看处理进度与归档详情。

请假申请

学生端请假申请页,支持按课程范围发起请假

  • 支持按当前课程、剩余课程或自定义范围发起当天请假,也保留周末回家报备等模式。

首页总览

学生端首页,展示今日状态、请假入口和课表入口

  • 学生进入系统后可直接看到今日状态、最近处理结果、请假入口和课表入口。

技术栈

🛠 Tech Stack

  • Frontend: Vue 3, Vite, Pinia, Element Plus, Vant
  • Backend: Node.js, Express, Sequelize
  • Database: MySQL
  • Realtime: Socket.IO
  • Auth: JWT
  • Mobile: PWA / Capacitor (Android)

🔍 Keywords

attendance system, leave management, workflow approval, student management system, real-time web app, analytics dashboard, fullstack project

后端

  • Express 5
  • Sequelize 6
  • MySQL 8
  • Socket.IO
  • JWT

学生端

  • Vue 3
  • Vite
  • Vant
  • PWA
  • Capacitor Android

教师端

  • Vue 3
  • Vite
  • Element Plus
  • ECharts
  • Capacitor Android

测试与辅助

  • Playwright 端到端测试
  • Docker Compose 容器部署
  • PowerShell 开发、备份和演示库重置脚本

支持中文

完整文档

完整说明请直接看:

部署简介

如果你只是想把项目跑起来,推荐按下面 4 步走:

  1. 准备 Node.js 18+、MySQL 8.x、PowerShell;如需容器部署,再准备 Docker。
  2. 复制根目录 .env.exampleserver/.env.example,按本机环境填写数据库、JWT 和允许访问的来源地址。
  3. server/ 执行数据库迁移,在 student-app/teacher-app/ 构建前端资源。
  4. 选择本地开发启动或 Docker 启动,然后通过 http://localhost:3000/health 检查服务健康状态。

完整步骤、常见报错和演示库重置方法见 DEPLOYMENT.md

如果你走 Docker 首次部署,请注意当前仓库不是“一键空库开箱即用”模式,仍需要按 DEPLOYMENT.md 完成数据库账号创建、迁移和 Demo 数据初始化。

快速开始

环境要求

  • Node.js 18+
  • MySQL 8.x
  • Windows + PowerShell
  • Docker 20.10+ 与 Docker Compose(可选)

安装依赖

cd server
npm install

cd ../student-app
npm install

cd ../teacher-app
npm install

配置本地环境变量

Copy-Item .\server\.env.example .\server\.env

按你的 MySQL 实例和本机访问地址修改 server/.env,至少确认数据库连接、JWT_SECRETALLOWED_ORIGINS 正确。

执行数据库迁移

cd server
npx sequelize-cli db:migrate

本地开发启动

分别启动:

cd server
npm run dev

cd ../student-app
npm run dev

cd ../teacher-app
npm run dev

或使用根目录脚本一次启动:

powershell -ExecutionPolicy Bypass -File .\scripts\start-dev.ps1

重置为全新演示库

如需先私有备份、再重建一套干净的演示数据,可在仓库根目录执行:

npm run db:reset:demo

这个脚本会:

  • 读取 server/.env
  • 先导出当前数据库备份
  • 重建数据库并执行全部迁移
  • 灌入新的 Demo 班级、教师、学生、课表与课时数据

默认入口

  • 后端健康检查:http://localhost:3000/health
  • 学生端开发页:http://localhost:5175
  • 教师端开发页:http://localhost:5174

演示账号与班级码

角色 默认凭据
管理员 admin / admin123
教师 teacher / teacher123
班级码 TEST001

学生端首次登录默认需要先设置 6 位数字密码;设置完成后,后续再使用该密码登录。

项目结构

.
├─ server/        后端接口、模型、迁移脚本、通知与备份逻辑
├─ student-app/   学生端 Web / PWA / Android 工程
├─ teacher-app/   教师端 Web / Android 工程
├─ tests/         Playwright 端到端测试
├─ scripts/       启动、备份、证书和重置脚本

开源版边界

  • 仓库内示例班级、课表、教师、地点均为通用 Demo 数据,不包含真实业务数据。
  • 开源版保留学生端 Web/PWA、教师端 Web、两端 Android 容器壳以及后端主流程代码。
  • 教师端远程推送保留接入代码,但默认视为可选增强能力,不作为开箱即用前提。
  • 私有证书、私有部署文件、真实数据库备份、第三方推送 SDK 和本地调试材料不随仓库分发。

协议与维护信息

  • License: MIT
  • Last Updated: 2026-04-21

作者与联系

  • 邮箱:shj561661@gmail.com
  • QQ:1570666721
  • 哔哩哔哩:3546716596865871

介绍

其实这个项目是被老师无视了,因为要租用服务器,老师非得找免费的 TvT,一气之下直接开源。

耗时 21 天Claude 4.6 Opus 搭基座,Codex 5.4 完善功能,消耗 50.11 RMB

还有十几天就 17岁了 ✌

2026/4/21

About

班级请假与考勤记录系统 | Class leave and attendance system with student requests, teacher approval, attendance statistics, Android apps and web dashboard.

Topics

Resources

License

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors