No description
- TypeScript 87.4%
- SCSS 10.5%
- CSS 1.2%
- Shell 0.7%
- 新增首页邀请加入三入口弹层:分享好友、生成海报、下载小程序码。 - 新增组织邀请海报组件(首版排版)并支持保存到相册。 - 新增组织主页二维码接口与前端服务,海报/下载均跳转组织主页。 - 优化组织卡邀请入口交互,支持回调打开自定义分享面板。 - 更新下载成功提示:文案改为“已保存到相册”,时长调整为 2000ms。 - 调整创建页模式图标与资源,新增相关 iconfont 资源。 - 优化创建赛事页与报名设置:取消报名规则选项、说明文案、默认值与布局。 - 新增前台报名页取消规则展示,并按收费/免费场景处理退款说明。 - 修复日期选择器跨月日期点击体验,支持直接点击读取。 - 优化赛程页头像兜底(灰底首字)与单列场景宽度布局。 - 同步更新个人页与帮助中心相关样式/文案。 |
||
|---|---|---|
| acescore-badminton | ||
| db-structure | ||
| docs | ||
| ops-console | ||
| scripts | ||
| server | ||
| taro-style-datetimepicker | ||
| weapp | ||
| .gitignore | ||
| git-pull.sh | ||
| git-push.sh | ||
| project.config.json | ||
| README.md | ||
赛图项目(saytu-new)
赛图是一个面向赛事与组织管理的全栈系统,当前仓库包含:
- 微信小程序(用户端/组织端)
- Node.js + Express + Prisma 服务端
- 运营后台(Ops Console)
当前进展(2026-02)
项目已进入高频迭代阶段,核心链路已跑通并持续增强:
- 小程序:组织创建与管理、组织认证、赛事/活动列表与详情、报名流程、队伍/选手管理、编排管理、消息中心、首页交互体验持续优化。
- 服务端:
/api/v2主业务 API 已覆盖用户、组织、赛事、队伍、报名、订单/支付/退款、消息、编排、AI、运营后台等模块。 - 运营后台:已接入登录守卫与会话体系(Cookie)、二维码登录、数据看板、认证审核、用户/组织启停管理等能力。
说明:本 README 以“当前仓库状态”为准,不再使用固定成熟度百分比。
仓库结构
saytu-new/
├── weapp/ # 微信小程序(Taro 3 + React + TypeScript)
├── server/ # 服务端(Express + TypeScript + Prisma + MySQL)
├── ops-console/ # 运营后台(React + Vite + Tailwind v4)
├── scripts/ # 开发辅助脚本(含一键启停)
├── docs/ # 项目文档索引与专题文档
└── db-structure/ # 数据库结构资料
技术栈
weapp
- Taro
3.6.23 - React
18 - TypeScript
5 - Sass + Webpack 5
server
- Node.js
18+ - Express
4 - Prisma
6 - MySQL
5.7 - Swagger/OpenAPI
ops-console
- React
18 - Vite
6 - Tailwind CSS
v4 - React Router
v6
本地开发准备
- Node.js
>= 18 - MySQL(本地或可访问实例)
- 微信开发者工具(用于小程序调试)
安装依赖:
cd server && npm install
cd ../weapp && npm install
cd ../ops-console && npm install
快速启动
1) 配置服务端环境变量
cd server
cp .env.example .env
至少补齐以下关键项:
DATABASE_URLMINI_APP_TOKEN_CRYPT_KEYAPP_PORT(默认8361)
若联调运营后台二维码登录,再补:
OPS_ADMIN_OPENIDSOPS_WECHAT_APPIDOPS_WECHAT_APPSECRETOPS_PUBLIC_BASE_URL
2) 初始化数据库
cd server
npm run prisma:generate
npm run prisma:migrate
3) 启动服务
方式 A:一键启停(macOS + launchctl)
./scripts/dev_ports.sh start
./scripts/dev_ports.sh status
该脚本会拉起:
- server(
8361) - ops-console(
3000) - weapp 构建监听(输出到
weapp/dist)
日志查看:
./scripts/dev_ports.sh logs server
./scripts/dev_ports.sh logs ops
./scripts/dev_ports.sh logs weapp
方式 B:手动启动
# terminal 1
cd server && npm run dev
# terminal 2
cd ops-console && npm run dev
# terminal 3
cd weapp && npm run dev:weapp
访问与联调
- 服务端健康检查:
http://localhost:8361/health - API 文档:
http://localhost:8361/api-docs - API 根路径:
http://localhost:8361/api/v2 - 运营后台本地地址:
http://localhost:3000/ops/ - 小程序产物目录:
weapp/dist
真机调试注意:小程序请求地址不能用
localhost。请在weapp/src/config/api.ts中将开发地址改为你电脑局域网 IP。
常用命令
server
cd server
npm run dev
npm run build
npm run prisma:generate
npm run prisma:migrate
npm run test
npm run test:ops-auth
ops-console
cd ops-console
npm run dev
npm run build
weapp
cd weapp
npm run dev:weapp
npm run build:weapp
小程序正式发布打包(仓库根目录执行):
./scripts/build_weapp_release.sh
# 可选:跳过依赖检查
./scripts/build_weapp_release.sh --skip-install
文档入口
- 文档总览:
docs/README.md - 快速开始:
docs/project/QUICK_START.md - 开发计划:
docs/project/DEVELOPMENT_PLAN.md - 后端说明:
server/README.md - 运营后台说明:
ops-console/README.md
安全与配置注意事项
.env、密钥、Cookie 配置不要提交到仓库。- DeepSeek / WeChat / Qiniu 等第三方密钥仅允许放在服务端环境变量。
- 生产环境请确保
OPS_ADMIN_OPENIDS已正确配置。
最后更新:2026-02-07