芽说英语 (SpeakSprout) - 自建跨平台多端同步服务
轻量、高性能、本地优先的跨平台(Android / iOS / macOS)学习进度与艾宾浩斯复习同步服务。
🌟 核心特性
- 极简架构:基于 Python 3.11 + FastAPI + aiosqlite,单容器内存占用 < 30MB。
- 无损合并 (CRDT/LWW):课程通关自动取并集,艾宾浩斯复习阶段取更高 Checkpoint,绝不发生进度回退。
- 离线优先 (Offline-First):弱网/断网下客户端完全正常学习,恢复网络后自动增量合并同步。
- 安全认证:bcrypt 密码加盐哈希 + JWT 鉴权。
🚀 快速启动
方案 1:Docker Compose 一键启动(推荐)
# 1. 复制目录到您的服务器
cd sync_server
# 2. 一键启动
docker compose up -d --build
# 3. 检查服务健康状态
curl http://127.0.0.1:8080/api/v1/health
方案 2:直接 Python 运行
pip install -r requirements.txt
python main.py
🧪 自动化测试
python test_server.py
📡 API 快速参考
POST /api/v1/auth/register: 注册新账号POST /api/v1/auth/login: 登录账号获取 TokenGET /api/v1/sync/pull: 增量拉取云端学习进度POST /api/v1/sync/push: 增量推送本地最新进度