Nakul-26/exam-notification-system

GitHub: Nakul-26/exam-notification-system

一款集成 WhatsApp 通知功能的学校教务管理平台,帮助教育机构自动化管理学生成绩并向家长推送考试分数。

Stars: 0 | Forks: 0

# 考试成绩与 WhatsApp 通知系统 **🚀 [在线演示](https://exam-management.pages.dev/)** *(登录身份 **Admin:** `admin@school.com` / `Admin@123` 或 **Teacher:** `teacher@school.com` / `Teacher@123`)* ### 📝 演示账号 *你可以使用以下账号来探索 [在线演示](https://exam-management.pages.dev/):* | 角色 | 邮箱 | 密码 | | :--- | :--- | :--- | | **Admin** | `admin@school.com` | `Admin@123` | | **Teacher** | `teacher@school.com` | `Teacher@123` | 这是一个综合性的学校管理平台,旨在简化教务操作,自动化跟踪学生成绩,并通过 WhatsApp Cloud API 实现与家长的无缝沟通。 ## 📸 系统概览 ### 安全认证与访问 ![登录页面](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a1fec8a6d9004532.png) *现代化、安全的登录界面,支持基于角色的访问控制 (RBAC),适用于 Admin 和 Teacher。* ### 学生与班级管理 ![学生管理](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/a31d7b14ee004539.png) *管理学生档案,支持批量 Excel 导入和高级搜索筛选。* ![班级管理](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/72a54668fa004544.png) *轻松定义班级和分支来组织学校架构。* ### 教务配置 ![科目管理](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ba97b24b12004549.png) *定义核心课程和科目列表。* ![分配页面](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/eac69d8fd4004554.png) *将学生和科目映射到特定的班级分支,创建结构化的教学环境。* ### 教职工管理 ![教师管理](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/28f19aa3cc004559.png) *管理教师档案,并将其分配到特定的班级与科目组合中。* ### 考试与成绩操作 ![考试管理](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/5f8db5bfe1004604.png) *配置考试、设置时间表,并通过自动化验证管理成绩数据。* ## 🚀 核心功能 ### 🛡️ 安全且可扩展的架构 - **多租户设计:** 数据通过 `collegeId` 进行逻辑隔离,确保多个机构的隐私和可扩展性。 - **强大的安全性:** 实现了带有 **Refresh Token 轮换**的 JWT、CSRF 防护以及账户锁定机制。 - **API 加固:** 受 **Helmet**、Express Rate Limiter 和 MongoDB 查询清理保护。 ### 📱 WhatsApp 集成 (Meta Cloud API) - **自动发送成绩:** 将考试分数直接发送到家长的 WhatsApp 号码。 - **智能防护:** 包含每月发送上限、按收件人发送报告以及电话号码标准化。 - **自定义通知:** 在自动发送的成绩消息中添加个性化备注。 ### 📊 数据与审计管理 - **批量操作:** 使用 **Excel (XLSX)** 模板无缝导入/导出学生、教师和成绩。 - **全面的审计:** 跟踪所有管理操作和安全事件,并支持导出为 CSV 以满足合规要求。 - **教师门户:** 为教职员工提供受限视图,仅允许他们管理所分配班级的成绩和通知。 ## 🛠️ 技术栈 - **前端:** React 19, TypeScript, Vite, Vanilla CSS。 - **后端:** Node.js, Express, MongoDB (Mongoose)。 - **通信:** Meta WhatsApp Cloud API。 - **安全:** JWT, CSRF, Helmet, Rate Limiting。 ## ⚙️ 设置与安装 ### 前置条件 - Node.js 18+ & npm - MongoDB Atlas 账号 - Meta Developer 账号(用于 WhatsApp API) ### 安装 1. **克隆仓库** 2. **安装依赖** # 安装后端依赖 cd backend && npm install # 安装前端依赖 cd ../frontend && npm install 3. **配置** - 将 `backend/.env.example` 复制到 `backend/.env`,并填写你的 MongoDB URI 和 WhatsApp API 凭据。 - *注意:如果你的 MongoDB 密码包含特殊字符,请确保对其进行 URL 编码。* 4. **生成演示数据**(可选) cd backend node src/scripts/seedDemoUsers.js 5. **启动开发服务器** # 启动后端 (端口 5000) cd backend && npm run dev # 启动前端 (端口 5173) cd frontend && npm run dev ## 💡 注意事项 - **WhatsApp 测试模式:** 在开发环境下,消息只会发送到你在 Meta App Dashboard 中验证过的号码。 - **数据隔离:** 所有数据都与 `collegeId` 关联(默认为 'default')。 *专注于效率、安全性和用户体验而开发。*
标签:MITM代理, WhatsApp集成, 多租户架构, 学校管理系统, 成绩管理, 教育管理, 自动化攻击, 角色访问控制