特别说明 • 简介 • 特性 • 快速开始 • 部署 • 技术栈 • 贡献 • 许可证
本项目还在早期开发中,设计和文档可能随时变动,请谨慎使用。
本项目开发过程大量使用了 Cursor 和 Claude 模型,特此感谢。
演示系统地址 账户密码: admin/admin123
EduScheduler (E 排课) 是一个开源的智能教学排课系统,专为学校和教育机构设计。它能够自动生成符合各种教学需求和约束条件的课程表,大幅提高排课效率,降低人工排课的复杂度。
- 🚀 智能排课算法,自动生成最优课表
- 💻 现代化的 Web 界面,操作简单直观
- 🔧 灵活的约束配置,满足多样化需求
- 📊 丰富的数据统计和可视化功能
- 🔄 支持实时调整和冲突检测
- 🌐 支持多校区、多部门管理
-
智能排课
- 自动生成课表
- 多维度约束配置
- 实时冲突检测
- 手动微调优化
-
数据管理
- 教师信息管理
- 班级信息管理
- 课程信息管理
- 教室资源管理
-
课表视图
- 班级课表视图
- 教师课表视图
- 教室课表视图
- 统计分析视图
- 多学期管理
- 教师偏好设置
- 课程时间限制
- 教室资源分配
- 导入导出功能
- 操作日志记录
- Node.js 16+
- MongoDB 4.4+
- Redis (可选,用于会话存储)
- 克隆仓库
git clone https://github.com/Rackar/eduscheduler.git
cd eduscheduler- 安装依赖
# 安装后端依赖
cd server
npm install
# 安装前端依赖
cd ../frontend
npm install- 配置环境变量
# 复制环境变量示例文件
cp .env.example .env.development
cp .env.example .env.production
# 开发环境编辑 .env.development 文件,配置必要的环境变量
# 生产环境编辑 .env.production 文件,配置必要的环境变量
# MONGODB_URI 请替换为您的 MongoDB 数据库连接字符串
# JWT_SECRET 请替换为您的 JWT 密钥- 启动开发服务器
# 启动后端服务
cd server
npm run dev
# 初始化超级管理员
npm run init:superadmin
# 默认用户名密码:superadmin/edus2024
# 启动前端服务
cd frontend
npm run dev后端接口地址默认在 http://localhost:3000
浏览器访问 http://localhost:5173 即可看到应用界面。
- 构建前端
cd frontend
npm run build- 配置 Nginx
server {
listen 80;
server_name your-domain.com;
location / {
root /path/to/frontend/dist;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}- 启动后端服务
cd server
npm run start未来项目成熟后,计划提供免部署 SASS 服务。
- Vue 3
- Vite
- Element Plus
- TailwindCSS
- Node.js
- Express
- Mongoose
- JWT
- 增加排课统计性结果
- 教室管理及考虑教室排课策略
- 优化排课算法,增加参数
- 增加多位教师负责同一课程的排课策略
- 增加年级管理
- 增加移动端课表查看、分享
欢迎任何形式的贡献,包括但不限于:
- 提交问题和建议
- 改进文档
- 修复 bug
- 添加新功能
本项目采用 Apache License 2.0 许可证。
如果您觉得这个项目对您有帮助,欢迎打赏赞助支持我的开发工作。
- 微信号: Sabercon
Made with ❤️ by Rackar