认识一下

欢迎使用 AstraSchedule(星程课表) 👋

介绍

这是一套专为学校班级电子课表场景设计的系统,包含三个独立组件:

  • Electron 客户端:运行在教室电脑上,显示课表、倒计时、天气、通知等。
  • Web 管理端:老师或电教委在浏览器中统一配置课表、调课规则、倒计时等。
  • Golang 服务端:提供 API 和数据存储,支持 SQLite 和 MySQL。

三者互相独立、强解耦,可以分开部署在不同位置(甚至不同云服务商)。这意味着您的学校甚至不需要自己的服务器,也能以极低成本完整部署并运行本系统。

核心亮点

  • 兼容老旧设备:客户端最低可完美运行在 32 位 Windows 7 上,让还没换新电脑的教室也能用上电子课表。
  • 智能调休:无需手动录入调休安排,课表可自动推算调整。
  • 侧载规则:遇到运动会、临时调课,只需设置日期,系统自动替换课表,过期自动恢复原始课表,再也不怕忘记改回来。
  • 多级数据隔离:内置 校 - 级 - 班 三层数据隔离,天生支持多租户。一个系统可以为整个教育集团、甚至全区全市提供服务。
  • 弹性部署:后端支持 SQLite(无需安装数据库)和 MySQL;可部署在 Serverless 平台(如云函数、Netlify Functions),自动弹性伸缩。从单个班级到上千所学校,同一套代码平滑升级。
  • 一键备份与复制:支持跨数据库类型备份与还原(MySQL ↔ SQLite),新建班级时直接复制别的班级配置,快速初始化。

以上功能全部基于三年实际教学场景维护的经验打磨而成,绝非纸上谈兵。

演示

llms.txt

本文档支持 llms.txt,您可以将其作为输入提供给任何支持 llms.txt 的 AI 并使用他们阅读文档!

https://astra.khbit.cn/llms.txt

版本说明

本文档针对当前主分支实现,若你正在使用历史版本,请以对应分支代码和配置为准。

本应用版本号虽然形式上遵循 Semver 规范,但实际上采用类似于滚动升级的方式发版,版本号命名规则如下:

YYYYMM.D.N

YYYY = 发布时年份
MM = 发布时月份(固定为两位数)
D = 发布时日期
N = GitHub Action 序号

例如:202510.2.40 表示该版本发布于 2025 年 10 月 02 日,GitHub Action 序号为 40

即使客户端支持关闭自动更新,但仍建议跟进最新版本,包括服务端与前端,即使他们大部分能跨版本兼容,但跨版本导致的问题不受支持。本项目不存在所谓 Stable、Beta、Ngihtly 的区分,因为每次 main 分支的提交都会创建一个新版本,并发布于 GitHub Release 中。保证后端的最新版本至少与前端、客户端的最新三个版本兼容。

即使本应用自动更新通过 GitHub Release 下载,但并不需要您的网络支持连接 GitHub,因为默认通过镜像源连接。镜像源支持修改,所以您还可以针对所在网络环境搭建自己的镜像源!

关于文档

本文档使用 AI 辅助编写,未经审核的页面均已添加 DANGER 标识。如果无法解决问题或需要协助部署,可邮箱联系:kuohu233@qq.com