# ai-demo **Repository Path**: duye/ai-demo ## Basic Information - **Project Name**: ai-demo - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Todo - Web 在线待办事项系统 一个功能完整的 Web 在线待办事项管理系统,支持用户注册登录、待办事项 CRUD、分类管理、标签管理、筛选排序等功能。 ## 技术栈 ### 前端 - **框架**: React 18 + UmiJS 4 + TypeScript 5 - **UI**: Ant Design 5 - **状态管理**: @umijs/max model - **HTTP**: Axios(含自动 token 刷新) - **图表**: @ant-design/plots ### 后端 - **框架**: FastAPI 0.109 - **数据库**: PostgreSQL + SQLAlchemy 2.0 (异步 asyncpg) - **认证**: JWT (python-jose + passlib/bcrypt) - **迁移**: Alembic - **验证**: Pydantic 2.5 ### 部署 - Docker + docker-compose - Nginx 反向代理 ## 功能特性 - 用户注册/登录(JWT 认证,自动刷新 token) - 待办事项管理(创建、编辑、删除、完成/取消完成) - 优先级管理(高/中/低) - 分类管理(自定义颜色) - 标签系统(多标签关联) - 高级筛选(状态、优先级、分类、关键词、日期范围) - 排序和分页 - 仪表盘统计 - 个人设置(修改昵称、密码) ## 快速开始 ### 前置要求 - Node.js 18+ - Python 3.10+ - PostgreSQL 14+ - pnpm ### 1. 安装前端依赖 ```bash cd frontend pnpm install ``` ### 2. 安装后端依赖 ```bash cd backend python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate pip install -r requirements.txt ``` ### 3. 配置环境变量 ```bash # 后端 cd backend cp .env.example .env # 编辑 .env 修改数据库连接等配置 ``` ### 4. 初始化数据库 ```bash cd backend alembic upgrade head ``` ### 5. 启动服务 ```bash # 启动后端(端口 8000) cd backend uvicorn app.main:app --reload --port 8000 # 启动前端(端口 3000) cd frontend pnpm dev ``` 访问 http://localhost:3000 即可使用。 ## Docker 部署 ```bash cd docker docker-compose up -d ``` 服务启动后: - 前端:http://localhost - 后端 API:http://localhost:8000 - API 文档:http://localhost:8000/api/docs 详见 [部署指南](docs/deployment/deploy-guide.md)。 ## 项目结构 ``` todo/ ├── frontend/ # 前端 React 应用 │ ├── config/ # UmiJS 配置(路由、代理) │ └── src/ │ ├── components/ # 公共组件(Layout, TodoCard, TodoForm 等) │ ├── hooks/ # 自定义 Hooks(useAuth, useTodos) │ ├── models/ # 状态管理(user, global) │ ├── pages/ # 页面(Login, Dashboard, TodoList 等) │ ├── services/ # API 服务层(auth, todo, category, tag) │ └── utils/ # 工具函数(request, storage, format) ├── backend/ # 后端 FastAPI 应用 │ ├── alembic/ # 数据库迁移 │ ├── app/ │ │ ├── models/ # 数据模型(User, Todo, Category, Tag) │ │ ├── schemas/ # Pydantic 验证模型 │ │ ├── routers/ # API 路由 │ │ ├── services/ # 业务逻辑 │ │ ├── dependencies/ # 依赖注入(认证、数据库) │ │ └── utils/ # 工具(安全、日期) │ └── tests/ # 测试(43 个测试用例) ├── docker/ # Docker 配置 │ ├── docker-compose.yml │ ├── Dockerfile.backend │ ├── Dockerfile.frontend │ └── nginx.conf └── docs/ # 项目文档 └── api/ # API 规范文档 ``` ## API 接口 后端启动后访问 http://localhost:8000/api/docs 查看完整 Swagger 文档。 ### 主要接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | /api/auth/register | 用户注册 | | POST | /api/auth/login | 用户登录 | | POST | /api/auth/refresh | 刷新 Token | | GET | /api/auth/me | 获取当前用户 | | PUT | /api/auth/me | 更新用户信息 | | PUT | /api/auth/password | 修改密码 | | GET | /api/todos | 获取待办列表(支持筛选/分页) | | POST | /api/todos | 创建待办 | | GET | /api/todos/:id | 获取待办详情 | | PUT | /api/todos/:id | 更新待办 | | DELETE | /api/todos/:id | 删除待办 | | GET | /api/todos/stats | 获取统计数据 | | GET/POST/PUT/DELETE | /api/categories/* | 分类 CRUD | | GET/POST/PUT/DELETE | /api/tags/* | 标签 CRUD | ## 测试 ```bash cd backend pip install -r requirements-dev.txt pytest tests/ -v ``` 当前测试覆盖 43 个用例,涵盖认证、待办事项 CRUD、筛选分页、分类标签管理等核心功能。 ## 环境变量 | 变量 | 说明 | 默认值 | |------|------|--------| | DATABASE_URL | PostgreSQL 连接串 | postgresql+asyncpg://postgres:postgres@localhost:5432/todo_db | | REDIS_URL | Redis 连接串 | redis://localhost:6379/0 | | SECRET_KEY | JWT 签名密钥 | dev-secret-key-change-in-production | | ACCESS_TOKEN_EXPIRE_MINUTES | Access Token 有效期(分钟) | 120 | | REFRESH_TOKEN_EXPIRE_DAYS | Refresh Token 有效期(天) | 7 | | ENVIRONMENT | 运行环境 | development |