Skip to content

Repository files navigation

Cover

GitHub License GitHub Actions Workflow Status Vercel Astro

👋 介绍

关于我们

这个网站由 海南省经济技术学校 25 级计算机应用 1 班的同学自发创建与维护。我们希望把班级里那些有趣的、实用的、值得记录的瞬间,沉淀到一个可以长期访问的地方,让每一位同学都能在这里找到属于自己的回忆。

项目原理

项目的源代码托管在 GitHub 上,使用 Vercel 进行自动化的网站部署,并借助 GitHub Actions 完成 CI 流程。每一次提交代码后,网站都会自动构建并发布,无需人工干预。

分享什么

只要是班级或学校中发生的有趣、实用、新鲜的事,并且内容可以公开,我们都会在网站上分享出来。这里既可以是课堂上的小发现,也可以是社团活动、校园风景、学习心得,或是任何值得被记住的瞬间。

🚀 项目

技术栈

  • Astro — 静态站点生成器,提供极快的页面加载速度与现代化的开发体验
  • TypeScript — 为 JavaScript 加上静态类型支持,让代码更健壮、更易于维护
  • Node.js 22.12+ — 本地开发与构建所需的运行时环境
  • Vercel — 托管与部署平台,提供全球 CDN 与自动化发布能力
  • GitHub Actions — 持续集成与持续部署(CI/CD)工具
  • Upstash Redis — Serverless Redis 数据库,用于状态卡片数据存储

项目结构

项目包含以下主要功能模块:

  • 首页 (/) — 展示班级概览与快捷入口
  • 关于页面 (/about) — 介绍班级与网站信息
  • 状态页面 (/status) — 展示班级公告、安排与近况,按时间倒序排列
  • 状态接口 (/api/status) — 从 Upstash Redis 中获取状态卡片数据

状态卡片数据存储在 Upstash Redis 的 status_cards 键中,格式为 JSON 数组。每张卡片包含以下字段:

  • id — 卡片唯一标识
  • title — 标题
  • content — 正文内容
  • time — ISO 8601 格式的时间戳
  • tags — 标签数组

环境变量

状态页面功能需要配置 Upstash Redis。在项目根目录创建 .env 文件:

UPSTASH_REDIS_REST_URL=your_upstash_redis_rest_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_redis_rest_token

从 Upstash Redis 控制台获取这些凭据:https://upstash.com/

注意:状态卡片数据通过 Upstash 控制台或 CLI 管理,接口仅提供读取功能。

本地构建

在开始之前,请确保你的电脑上已经安装了 Node.js 22.12 或更高版本。

# 克隆仓库
git clone https://github.com/mantoujun-lab/class-website.git # git
gh repo clone mantoujun-lab/class-website # Github CLI

# 进入项目目录
cd class-website

# 安装依赖
npm install

# 启动本地开发服务器
npm run dev

# 构建生产版本
npm run build

# 本地预览构建产物
npm run preview

启动开发服务器后,打开浏览器访问 http://localhost:4321 即可预览网站。

部署

项目已配置 Vercel 适配器,可直接部署到 Vercel:

  1. 将仓库连接到 Vercel
  2. 在 Vercel 控制台中添加环境变量 UPSTASH_REDIS_REST_URLUPSTASH_REDIS_REST_TOKEN
  3. 触发部署

Vercel 适配器已在 astro.config.mjs 中配置完成。

如需部署到其他平台,可参考 Astro 部署指南,支持 Netlify、Cloudflare Pages 等多种平台。

🤝 贡献

提出建议

如果你对网站有任何想法或建议,欢迎通过 GitHub Issues 提出。无论是新的功能、内容的策划,还是页面的小改进,我们都非常乐意倾听。

参与贡献

欢迎任何 同学/校友/外部开发者 参与到项目中来。贡献的方式非常多样:

  • 🐛 提交 Issue 反馈 Bug 或提出建议
  • 💡 发起 Pull Request 贡献代码或内容
  • ✍️ 撰写并分享班级故事、校园资讯
  • ⭐ 给项目点个 Star,这是对开发者最大的支持

在提交 Pull Request 之前,请先 Fork 仓库并创建一个新的分支。提交信息建议遵循项目中的约定式提交规范(Conventional Commits),例如 feat: 新增留言板页面fix: 修复首页图片加载异常 等。

赞赏开发者

如果你愿意支持,可以扫描下方的微信赞赏码

项目维护不易,感谢你的鼓励 ☕

微信赞赏码

📄 许可证

本项目使用 MIT License 开源。可以自由地使用、修改和分发本项目的代码与内容。

About

Class web home site.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages