项目名为"迹云",灵感来源于法语单词 Sillage【sijaʒ】,可译为"飞机划过天空后留下的尾迹云" 。
由于学院有英语和法语外教,由学院教务科统一排课,分班复杂,常规的教务管理系统难以满足需求。当前是使用Excel编辑课表,更新过程繁琐,且容易出错:截至本文档撰写时,不同年级"撞教室"的现象仍时有发生。
因此,本项目的初衷正是为了改善现状,开发一套现代化的、方便易用的课程管理系统。
虽然是针对笔者所在学院的实际需求设计的,但项目的可拓展性强,但如果有以下需求,也推荐您使用"迹云课表":
- (⚠必要条件)有明确的学期划分,换言之:每个教学阶段有明确的开始和结束日期。
- (💡重要条件)包含至少一个明确的分组,例如:年级、班级、部门......否则,现有的课表软件或许更加符合您的需求。
- (💡重要条件)这是一个供多人查看的课程表,因为该项目将会以网站形式发布,现有的课表软件或许更加符合个人使用的需求。
- (😆特色功能)支持多样的教学计划,例如同一节课有多个老师、在不同教室、有多个班级...
- (😄特色功能)可配置多门语言,供外国友人查看。
- 操作简单,具备复制、剪切、粘贴等类似Excel上的操作;
- 在添加课程时,会检测教室、教师和分组是否与已有课程冲突;
- 信息变更即时生效,无需额外通知;
- 当课程发生变动时,自动生成公告;
- 包含各个课程的课时统计的教学计划无需手动计算,系统自动生成。
- 用户可以自行选择教室、课程名、日期、年级与分组等筛选条件,减少无关信息;
- 可以将常用的页面加入到收藏夹中,快速获取信息;
- 当课程调整时,会自动在课表上方以红点提示,且能在查看公告后消除红点;
- 教学楼管理员可将本系统链接生成二维码的张贴在教室门口,便于同学们查看教室的占用情况。
用户端中的每个词语,都可以在"系统配置页"中设置它的外语翻译,以不同的语言展示课程!
-
课表名称、每节课时间、每学期开始时间等都可以在"系统配置页"中自定义,可满足多方需求。
-
整个项目可以编译为单个可执行文件,方便部署和迁移。
-
采用
SQLITE
数据库,方便备份和迁移。 -
数据库具有符合RESTFUL规范的应用程序接口,可以基于该项目进行拓展。目前已有以下项目可供参考:
用户在每次访问时,仅会在进入页面时请求一次数据库,其余的查询操作均支持离线完成。
同时,使用了性能十分优秀的基于GO语言的Pocketbase
框架,即使在一个1核1G的轻量服务器上也可以轻松支持8000以上的并发量。
-
若在 windows/linux 平台上使用,前往 Release 页面下载安装包;Mac 平台可通过源码,利用
golang
语言的跨平台特性进行编译。 -
解压安装包,文件目录如下:
/* ------Windows------ */ └─sillage-course-manager_windows │ sillage-course-manager.exe │ ... └─ pb_data data.db logs.db ... /* -------linux------- */ └─sillage-course-manager_linux │ sillage-course-manager │ ... └─ pb_data data.db logs.db ...
-
sillage-course-manager.exe
即是项目可执行文件,pb_data
是数据库文件。 -
在命令行中,运行
.\sillage-course-manager.exe serve
,程序将运行在8090
端口。.\sillage-course-manager.exe serve > Server started at: http://127.0.0.1:8090 - Home page: http://127.0.0.1:8090 - REST API: http://127.0.0.1:8090/api/ - Admin UI: http://127.0.0.1:8090/_/
-
其他指令与
Pocketbase
一致:Available Commands: help Help about any command migrate Executes DB migration scripts serve Starts the web server (default to 127.0.0.1:8090) Flags: --debug enable debug mode, aka. showing more detailed logs --dir string the PocketBase data directory (default "pb_data") --encryptionEnv string the env variable whose value of 32 chars will be used as encryption key for the app settings (default none) -h, --help help for pocketbase -v, --version version for pocketbase
-
可访问
http://127.0.0.1:8090
。初始账号:[email protected]
,密码:adminadmin
-
部署到生成环境?请参考:Docs - PocketBase - Going to production