Skip to content

Rackar/EduScheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EduScheduler (E 排课)

EduScheduler Logo
智能教学排课系统

license stars forks issues

特别说明简介特性快速开始部署技术栈贡献许可证

特别说明

本项目还在早期开发中,设计和文档可能随时变动,请谨慎使用。

本项目开发过程大量使用了 Cursor 和 Claude 模型,特此感谢。

演示系统地址 账户密码: admin/admin123

《EduS 基本教程》

基本功能演示视频

简介

EduScheduler (E 排课) 是一个开源的智能教学排课系统,专为学校和教育机构设计。它能够自动生成符合各种教学需求和约束条件的课程表,大幅提高排课效率,降低人工排课的复杂度。

为什么选择 EduScheduler?

  • 🚀 智能排课算法,自动生成最优课表
  • 💻 现代化的 Web 界面,操作简单直观
  • 🔧 灵活的约束配置,满足多样化需求
  • 📊 丰富的数据统计和可视化功能
  • 🔄 支持实时调整和冲突检测
  • 🌐 支持多校区、多部门管理

特性

核心功能

  • 智能排课

    • 自动生成课表
    • 多维度约束配置
    • 实时冲突检测
    • 手动微调优化
  • 数据管理

    • 教师信息管理
    • 班级信息管理
    • 课程信息管理
    • 教室资源管理
  • 课表视图

    • 班级课表视图
    • 教师课表视图
    • 教室课表视图
    • 统计分析视图

高级特性

  • 多学期管理
  • 教师偏好设置
  • 课程时间限制
  • 教室资源分配
  • 导入导出功能
  • 操作日志记录

快速开始

环境要求

  • Node.js 16+
  • MongoDB 4.4+
  • Redis (可选,用于会话存储)

安装步骤

  1. 克隆仓库
git clone https://github.com/Rackar/eduscheduler.git
cd eduscheduler
  1. 安装依赖
# 安装后端依赖
cd server
npm install

# 安装前端依赖
cd ../frontend
npm install
  1. 配置环境变量
# 复制环境变量示例文件
cp .env.example .env.development
cp .env.example .env.production

# 开发环境编辑 .env.development 文件,配置必要的环境变量
# 生产环境编辑 .env.production 文件,配置必要的环境变量
# MONGODB_URI 请替换为您的 MongoDB 数据库连接字符串
# JWT_SECRET 请替换为您的 JWT 密钥
  1. 启动开发服务器
# 启动后端服务
cd server
npm run dev

# 初始化超级管理员
npm run init:superadmin
# 默认用户名密码:superadmin/edus2024

# 启动前端服务
cd frontend
npm run dev

后端接口地址默认在 http://localhost:3000

浏览器访问 http://localhost:5173 即可看到应用界面。

部署

开源部署

  1. 构建前端
cd frontend
npm run build
  1. 配置 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;
    }
}
  1. 启动后端服务
cd server
npm run start

SASS

未来项目成熟后,计划提供免部署 SASS 服务。

技术栈

前端

  • Vue 3
  • Vite
  • Element Plus
  • TailwindCSS

后端

  • Node.js
  • Express
  • Mongoose
  • JWT

待开发计划

  • 增加排课统计性结果
  • 教室管理及考虑教室排课策略
  • 优化排课算法,增加参数
  • 增加多位教师负责同一课程的排课策略
  • 增加年级管理
  • 增加移动端课表查看、分享

贡献

欢迎任何形式的贡献,包括但不限于:

  • 提交问题和建议
  • 改进文档
  • 修复 bug
  • 添加新功能

许可证

本项目采用 Apache License 2.0 许可证

赞助

如果您觉得这个项目对您有帮助,欢迎打赏赞助支持我的开发工作。

联系我

  • 微信号: Sabercon

Made with ❤️ by Rackar

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages