Files

芽说英语 (SpeakSprout) - 自建跨平台多端同步服务

轻量、高性能、本地优先的跨平台(Android / iOS / macOS)学习进度与艾宾浩斯复习同步服务。

🌟 核心特性

  • 极简架构:基于 Python 3.11 + FastAPI + aiosqlite,单容器内存占用 < 30MB。
  • 无损合并 (CRDT/LWW):课程通关自动取并集,艾宾浩斯复习阶段取更高 Checkpoint,绝不发生进度回退。
  • 离线优先 (Offline-First):弱网/断网下客户端完全正常学习,恢复网络后自动增量合并同步。
  • 安全认证bcrypt 密码加盐哈希 + JWT 鉴权。

🚀 快速启动

方案 1Docker 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 : 登录账号获取 Token
  • GET /api/v1/sync/pull : 增量拉取云端学习进度
  • POST /api/v1/sync/push : 增量推送本地最新进度