学习工作赛道-大学生课程表web应用

【标签】学习工作

【标题】学习工作 + 课程表助手 — 一站式学生日程管理 Web 应用


1. Demo 简介

是什么:一个前后端一体化的 Web 应用,最终打包为单个可执行文件(course-schedule.exe),双击即用。

面向谁:在校大学生、研究生,需要统一管理课程、考试、社团事件的学生群体。

主要功能

  • 可视化课程表 — 支持添加/编辑/删除课程,课程按照绝对定位精确展示在 7 天 × 12 节的网格中,支持周次类型(每周/单周/双周),添加课程时自动检测同一天同一时间段是否已有课程冲突并提示。

(此处建议放课程表主页截图,展示课程网格布局)

  • 事件与考试管理 — 事件冲突检测(添加前检查时间重叠并列出冲突事件),考试倒计时卡片,过期事件/考试 2 天后自动清理,已过期的项目显示灰色背景。

(此处建议放事件列表或考试倒计时截图)

  • 实时天气模块 — 支持自定义城市,通过 wttr.in 接口获取温度、体感温度、天气描述、风力、湿度、日出日落等数据,每日缓存减少请求。

(此处建议放天气卡片截图)


2. Demo 创作思路

灵感来源:大学生日常需要在多个平台(教务系统、日历 App、备忘录)之间切换来管理课程、考试和社团活动,信息分散且容易遗漏。我希望能做一个一站式的工具,把所有学业相关的日程整合到一个界面中。

想解决的问题

  • 课程表、考试、社团事件分散在不同地方,缺乏统一视图

  • 手动排课时容易选了冲突的时间段,添加后才发现冲突

  • 过期的事件和考试残留,需要手动清理

为什么做这个方向:课程表是学生最高频的使用场景,相比单纯的事件管理,课程表有固定的周次周期和网格化展示需求,技术上有一定挑战(CSS 绝对定位布局、冲突检测算法),同时实用性很强,能直接解决自己的痛点。

技术选型

  • 前端 Vue 3 + TypeScript + Vite,组件化开发,hash 路由适配嵌入场景

  • 后端 Go + Gin + GORM + SQLite,轻量零配置,JWT 认证

  • 最终用 Go embed 将前端构建产物打包进二进制,产出单文件可执行程序预先格式化的文本

3. Demo 体验地址

由于是单文件桌面级 Web 应用,提供以下体验方式:

  • 下载 course-schedule.exe,双击运行后访问 http://localhost:8080
  • 课程表助手.zip (3.9 MB)

4. TRAE 实践过程

本次 Demo 从零到完整交付,全部使用 TRAE 完成。以下是关键开发流程:

阶段 1 — 静态原型:用 HTML/CSS 搭建登录、课程表、事件等页面原型。

阶段 2 — 技术栈迁移:迁移到 Vue 3 + Go 后端 + SQLite,实现 JWT 认证和前后端分离架构。

阶段 3-4 — 功能完善:实现课程 CRUD、事件 CRUD、考试 CRUD、设置接口,前后端联调通过。

阶段 5 — 冲突检测:实现课程时间冲突检测(同 weekday + 时间范围重叠)和事件时间冲突检测,前端即时红色提示。修复课程表时间列因 CSS Grid 布局偏移的问题,改用 position: absolute + calc() 精确定位。

阶段 6 — 天气模块:集成 wttr.in 天气 API,支持中文城市名,每日缓存策略,前端展示温度、体感温度、天气描述、风力、湿度、日出日落等。

阶段 7 — 自动化测试:使用 Python 标准库编写 27 个测试用例,覆盖认证、用户、课程、事件、考试、设置、天气、中间件共 8 个模块,全部通过。

阶段 8 — 打包部署:使用 Go embed 将 Vue 前端构建产物内嵌到二进制中,编译为单文件 course-schedule.exe,实现零依赖零配置运行。

Session ID:

  1. 1892726704965652:7af92e4c1c59f38ac99fda4dbcfc4a4c_6a53337573f87d6237630c7e.6a5357b425bbcd6a1c6a3aac.6a5357b425bbcd6a1c6a3aaa:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/12 17:00:36)
  2. 1892726704965652:2dc79ae4097c86dbe0958ca943e3bc59_6a53337573f87d6237630c7e.6a5352cf25bbcd6a1c6a3a94.6a5352cf25bbcd6a1c6a3a92:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/12 16:39:43)
  3. 1892726704965652:f7c8793d8e01af8ae09f9194642501ab_6a5330cd73f87d6237630c30.6a5330ce73f87d6237630c33.6a5330cd73f87d6237630c31:TRAE Work CN.0.1.32.no_sid.no_ppe.T(2026/7/12 14:14:39)