一个前后端分离的账号与团队管理项目:
- 后端:FastAPI + SQLAlchemy + Alembic + JWT + Stripe + Google 登录
- 前端:React + Vite + TypeScript + Stripe Elements
backend-management/
├── backend/ # FastAPI 服务、数据库迁移、API 实现
└── frontend/ # React 控制台页面
- 用户注册 / 登录(JWT)
- Google 登录(
id_token与授权码两种方式) - 团队创建与成员管理(owner/admin/member)
- 团队上下文登录(team token)
- Stripe 支付流程(创建 PaymentIntent + 前端确认支付)
- Python 3.10+
- Node.js 18+
- PostgreSQL 14+
# Python(建议使用虚拟环境)
source .venv/bin/activate
pip install -r backend/requirements.txt
# Frontend
cd frontend && npm install后端:
cp backend/.env.example backend/.env前端:
cp frontend/.env.example frontend/.env默认前端通过
VITE_API_BASE_URL=/api+ Vite 代理访问后端。
cd backend
alembic upgrade head
./startup.sh默认监听:http://127.0.0.1:8000
健康检查:GET /api/health
新开一个终端:
cd frontend
npm run dev默认地址:http://localhost:5173
如果后端地址不是 http://127.0.0.1:8000,可指定:
VITE_PROXY_TARGET=http://127.0.0.1:8000 npm run devcd backend
pytest
alembic revision --autogenerate -m "desc"
alembic upgrade headcd frontend
npm run dev
npm run build
npm run preview- 认证:
POST /api/auth/registerPOST /api/auth/loginPOST /api/auth/team-loginGET /api/auth/me
- 团队:
POST /api/teamsGET /api/teamsGET /api/teams/{team_id}GET /api/teams/{team_id}/membersPOST /api/teams/{team_id}/membersPATCH /api/teams/{team_id}/members/{member_user_id}DELETE /api/teams/{team_id}/members/{member_user_id}
- 支付:
GET /api/payments/configPOST /api/payments/payment-intentsPOST /api/payments/webhook
- 后端说明:
backend/README.md - 前端说明:
frontend/README.md - API 调试记录:
backend/API_DEBUG.md