项目列表
2025/6/25大约 4 分钟
技术架构演进
技术部在2022年曾面临解散危机,Application Portal和Official Website正是在那个特殊时期由当时的两位社长紧急开发完成的。由于开发时间紧迫,这两个项目存在代码耦合性较高的问题,难以进行功能扩展和日常维护。随着业务功能的不断增加,性能瓶颈也逐渐显现。
为了解决这些技术债务,2023年后的新项目都采用了独立开发的模式,并且大多选择serverless架构,目前运行状况良好。
新项目技术选型指南
在启动新项目时,建议按以下优先级选择技术框架:
- Next.js 等支持serverless部署的全栈框架
- FastAPI + React 前后端分离架构,可部分使用托管服务
- Flask 传统Web框架(仅在必要时使用)
重要原则
能够避免数据库依赖的项目,务必避免接入数据库!这将大大降低运维复杂度和成本。
BUCSSA 技术部项目总览
核心业务系统
Application Portal(申请门户系统)
- 代码仓库:https://github.com/bucssatech22/Application-Portal-Test
- 技术栈:Flask (Python) + Jinja + MySQL
- 业务范围:招新管理、报销审批、财务入账、抽奖活动等核心业务
- 开发团队:初期开发由邬皓天与匡嘉洋完成,后续由技术部全体成员共同维护
Official Website(官方网站)
- 代码仓库:https://github.com/bucssatech22/CSSA-Website
- 技术栈:React + React Router
- 业务范围:对外宣传展示,活动信息发布
- 开发团队:初期开发由邬皓天与程心扬完成,后续由技术部全体成员共同维护
- 技术状态:React版本相对较旧,需要考虑升级
独立项目
Swift Poll(高性能投票系统)
- 代码仓库:https://github.com/zilongpa/swift-poll
- 技术栈:Rust + Warp + Tokio
- 特点:高性能实时投票系统
- 使用场景:BU303活动专用
- 开发者:万里有鸽🕊
New Year Lucky Draw(新年抽奖系统)
- 代码仓库:https://github.com/zilongpa/new-year-lucky-draw
- 技术栈:React + Motion
- 特点:纯前端抽奖系统,无需后端服务
- 使用场景:新春嘉年华活动
- 开发团队:万里有鸽🕊 + Joey
Presidential Election(主席选举系统)
- 代码仓库:https://github.com/zilongpa/bucssa-presidential-election
- 技术栈:Next.js + Neon + Auth.js
- 特点:集成BU Google账号认证的安全选举系统
- 使用场景:主席选举及其他重要投票活动
- 开发团队:万里有鸽🕊 + 邬皓天
项目归属说明
- BUCSSA技术部账号:核心业务系统统一管理
- 个人账号:独立项目由开发者个人维护,便于快速迭代
项目部署架构
以下是所有项目的部署分布图:
部署环境详情
🖥️ VPS服务器部署
服务器信息: 74.48.140.114
Application Portal:
- 部署方式:传统服务器部署
- 数据库:本地MySQL
- 运行环境:Python Flask
- 特点:单体应用,包含完整业务逻辑
Swift Poll:
- 部署方式:独立进程
- 特点:高性能Rust应用,专用投票服务
☁️ Cloudflare Pages部署
Official Website:
- 部署方式:静态网站托管
- 特点:React SPA,快速全球CDN分发
- 优势:免费,高可用性
Portal 状态监测:
- 部署方式:静态监控页面
- 特点:实时监控Portal服务状态
▲ Vercel部署
New Year Lucky Draw:
- 部署方式:静态前端部署
- 特点:纯前端应用,无后端依赖
- 优势:自动部署,全球CDN
Presidential Election:
- 部署方式:Serverless全栈应用
- 数据库:Neon PostgreSQL
- 认证:BU Google OAuth
- 特点:现代化架构,高安全性
🔗 外部服务依赖
- Neon PostgreSQL: 选举系统专用数据库
- BU Google OAuth: 统一身份认证服务
部署策略优势
🎯 分层部署策略
- 核心业务 → VPS:稳定可控,数据安全
- 展示类项目 → Cloudflare:高可用,全球加速
- 新项目 → Vercel:快速迭代,现代化架构
💡 技术演进方向
- 传统应用:逐步向微服务/serverless架构迁移
- 新项目:优先选择serverless平台
- 数据存储:从自建数据库向托管服务迁移
部署最佳实践
- 生产环境:使用稳定的VPS部署
- 静态网站:优先选择CDN托管服务
- 新项目:推荐使用Vercel等现代化平台
- 数据库:考虑使用托管数据库服务
