rogee bd3e786e78
Build and push backend image / backend-image (push) Successful in 15s
ci: link container package to repository
2026-09-23 00:33:05 +08:00
2026-09-22 22:51:19 +08:00
2026-09-22 22:51:19 +08:00
2026-09-22 22:51:19 +08:00
2026-09-22 22:51:19 +08:00
2026-09-22 22:51:19 +08:00
2026-09-22 22:51:19 +08:00

Smile First 口腔护理预约小程序

Smile First 是一个微信小程序预约 MVP,覆盖首页、选择项目、选择日期与时间、确认预约、预约成功、我的预约,以及 Go 后端 API。

技术栈

  • 小程序:原生 WXML / WXSS / JS
  • 后端:Go、Fiber、sqlc、Cobra、logrus
  • 数据库:SQLite
  • 部署:Docker / docker compose

本地运行后端

cp .env.example .env
# 本地开发可使用 GUAHAO_ADMIN_AUTH_MODE=none 直接进入后台
# 生产环境建议使用 GUAHAO_ADMIN_AUTH_MODE=oidc 并填写 OIDC 配置
# 体验版获取手机号还需要填写 GUAHAO_WECHAT_APPID / GUAHAO_WECHAT_SECRET

cd backend
go run ./cmd/smilefirst serve

默认监听 :9800,启动时会自动应用 schema 并插入默认项目、排期与时段。

管理后台入口:

  • 登录页:http://127.0.0.1:9800/admin/login
  • 默认页:/admin/price-inquiries
  • 价格咨询派单:/admin/price-inquiries,展示授权手机号提交的地区、咨询项目、创建时间和更新时间

后台登录模式、OIDC 配置和微信小程序凭证从本地 .env 或运行环境变量读取,真实 .env 不提交到代码库:

GUAHAO_ADMIN_AUTH_MODE=none
GUAHAO_ADMIN_SESSION_SECRET=
GUAHAO_ADMIN_PASSWORD_CHANGE_REDIRECT_URL=https://gh.yqbmb.com/admin/price-inquiries
GUAHAO_OIDC_ISSUER=https://auth.yqbmb.com/oidc
GUAHAO_OIDC_CLIENT_ID=
GUAHAO_OIDC_CLIENT_SECRET=
GUAHAO_OIDC_REDIRECT_URI=http://127.0.0.1:9800/admin/oidc/callback
GUAHAO_OIDC_SCOPES=openid profile email phone
GUAHAO_WECHAT_APPID=
GUAHAO_WECHAT_SECRET=
GUAHAO_UPLOAD_DIR=data/uploads

GUAHAO_ADMIN_AUTH_MODE=none 会跳过后台登录,仅建议本地开发使用;oidc 会通过 Logto/OIDC 授权登录,回调地址为 /admin/oidc/callback,登录后后台右上角展示授权用户姓名和修改密码入口。修改密码入口会跳转到 Logto Account Center 的 /account/password,完成后返回 GUAHAO_ADMIN_PASSWORD_CHANGE_REDIRECT_URL

后台上传的首页图片和项目图片会保存到 GUAHAO_UPLOAD_DIR,并通过 /uploads/... 访问。

Docker 部署

docker compose up --build

接口健康检查:

curl http://127.0.0.1:9800/healthz

小程序开发

用微信开发者工具打开 uni-guahao/ 目录。小程序请求地址由 uni-guahao/utils/api.uts 自动选择,不需要发布前手动改 URL:

  • 微信开发版 develophttp://localhost:9800
  • 微信体验版 trial / 正式版 releasehttps://gh.yqbmb.com

线上域名需要在微信公众平台配置为 request 合法域名;本地开发时 manifest.json 已关闭开发域名校验。

首页不配置底部 tabBar。用户可直接选择项目和预约时段;在确认预约时授权手机号,授权成功后自动提交预约。确认页可通过半屏底部弹层查看《预约服务条款》。

关键目录

  • uni-guahao/uni-app x 微信小程序前端
  • backend/Go API 服务
  • backend/migrations/schema.sqlSQLite schema
  • backend/queries/sqlc 查询
  • uni-guahao/static/:小程序静态资源
  • docs/design-elements.md:设计元素、裁切坐标和 token
S
Description
No description provided
Readme
3 MiB
Languages
Go 85.2%
HTML 9.8%
Makefile 1.8%
SCSS 1.4%
Dockerfile 0.7%
Other 1.1%