这是一个专为 MEM(工程管理硕士)项目设计的选课辅助工具,帮助学生高效规划课程、避免时间冲突,并可视化生成学期课表。
- 可视化日历:以周末(周六/周日)为核心的 18 周全学期日历视图。
- 冲突检测:自动检测课程时间冲突,并在列表和日历中高亮显示(红色警告)。
- 学分统计:实时计算已选总学分、核心必修课进度、GPA 课程学分。
- 智能推荐:提供"一键智能排课"功能,自动生成无冲突的推荐选课方案,优先选择同教室课程以减少奔波。
- 课程列表:展示所有可选课程,支持按课程名、老师、教室进行实时搜索过滤。
- 状态标记:清晰标记"必修"、"GPA"、"本周课程"等状态。
- 必修课追踪:自动追踪核心必修课程组(如 MEM6001, MEM6002 等)的完成情况。
- 导出课表图片:生成高分辨率的学期课表图片(PNG格式),包含所有周次的课程安排,布局清晰美观。
- 同步到日历:支持导出
.ics日历文件,可直接导入 Apple Calendar, Google Calendar, Outlook 等主流日历应用。 - 备份与恢复:支持导出选课记录为 JSON 文件,方便在不同设备间同步或备份选课方案。
- 添加已有课程信息:可录入「已修核心必修课程(门数)」「已修 GPA 学分」「已修 非GPA 学分」,统计会自动叠加,并随导出/导入记录保存(不影响课表冲突检测与日历导出)。
- 响应式设计:完美支持移动端访问,手机上自动切换为卡片式布局,操作体验流畅。
- 本地存储:自动保存选课状态到浏览器本地存储(LocalStorage),刷新页面不丢失数据。
- 核心:原生 HTML5, CSS3, JavaScript (ES6+)
- 样式:CSS Variables, Flexbox/Grid 布局, 移动端适配
- 图标库:Remix Icon
- 字体:Google Fonts (Inter, Noto Sans SC)
- 工具库:
- Day.js - 日期处理
- SheetJS (xlsx) - (预留) Excel 数据处理支持
.
├── index.html # 主页面结构
├── styles.css # 全局样式与响应式布局
├── app.js # 核心逻辑(状态管理、渲染、交互、导出功能)
└── README.md # 项目说明文档
- 打开项目:直接在浏览器中打开
index.html文件即可使用。 - 选择课程:在下方课程列表中勾选心仪的课程。
- 查看冲突:观察顶部仪表盘的"时间冲突"指标,或日历视图中的红色警告。
- 调整方案:
- 手动取消冲突课程。
- 或点击"使用推荐方案"让系统自动规划。
- 导出结果:
- 点击"保存图片"下载课表分享。
- 点击"同步到日历"将课程导入手机日程。
- 如需把已修课程/学分计入统计,可点击顶部"添加已有课程信息"录入。
目前课程数据硬编码在 app.js 的 COURSES 常量中。数据包含课程代码、名称、学分、周次、时间、教室、老师等信息。
如需更新课程数据,请修改 app.js 中的 COURSES 数组配置。
在手机浏览器打开时,系统会自动调整为移动端模式:
- 顶部统计栏自动折叠适配。
- 课程列表转换为易于点击的卡片视图。
- 侧边栏复选框方便单手操作。
注:本项目为纯前端应用,无后端服务器,所有数据均存储在用户本地浏览器中。