QuickTodoServer 是一个基于 Spring Boot 的待办事项管理服务端程序,支持客户端与服务端之间的增量同步。
- 用户认证:支持用户注册和登录,使用 JWT 进行身份验证。
- 增量同步:支持客户端与服务端之间的增量数据同步,减少网络传输开销。
- Spring Boot:用于快速构建服务端程序。
- Spring Data JPA:用于操作数据库。
- JWT:用于用户身份验证。
- MySQL:作为主数据库。
- H2:用于本地开发和测试。
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | BIGINT | 用户 ID(主键) |
| username | VARCHAR(255) | 用户名 |
| password | VARCHAR(255) | 密码 |
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | BIGINT | 待办事项 ID(主键) |
| title | VARCHAR(255) | 标题 |
| description | TEXT | 描述 |
| due_date | DATETIME | 截止日期 |
| user_id | BIGINT | 用户 ID(外键) |
| priority | VARCHAR(50) | 优先级(LOW, MEDIUM, HIGH) |
| tag | VARCHAR(255) | 分类标签 |
| completed | BOOLEAN | 是否已完成 |
| last_modified | DATETIME | 最后修改时间 |
- URL:
/auth/register - Method:
POST - 参数:
username: 用户名password: 密码
- 响应: 注册成功返回
200 OK。
- URL:
/auth/login - Method:
POST - 参数:
username: 用户名password: 密码
- 响应: 登录成功返回 JWT 令牌。
- URL:
/todos - Method:
GET - 参数:
userId: 用户 ID
- 响应: 返回待办事项列表。
- URL:
/todos/sync - Method:
GET - 参数:
userId: 用户 IDlastSyncTime: 最后同步时间
- 响应: 返回
lastModified大于lastSyncTime的待办事项列表。
- URL:
/todos/sync - Method:
POST - 参数:
userId: 用户 ID
- 请求体: 待办事项列表
[ { "title": "Meeting", "description": "Team meeting at 3 PM", "dueDate": "2023-12-31T15:00:00", "user": { "id": 1 }, "priority": "High", "tag": "Work", "completed": false, "lastModified": "2023-10-05T12:00:00" } ] - 响应: 上传成功返回
200 OK。
- JDK: 17+
- MySQL: 8.0+
- Maven: 3.8+
在 application.properties 中配置数据库和 JWT:
spring.datasource.url=jdbc:mysql://localhost:3306/quicktodo
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.jpa.hibernate.ddl-auto=update
jwt.secret=yourSecretKey
jwt.expiration=3600000 # 1 小时-
克隆项目:
git clone https://github.com/yourusername/QuickTodoServer.git cd QuickTodoServer -
配置数据库:
- 创建 MySQL 数据库 quicktodo。
- 更新
application.properties中的数据库配置。
-
构建项目:
mvn clean install
-
运行项目:
mvn spring-boot:run
-
访问 API:
- 服务启动后,默认端口为
8080。 - 使用 Postman 或 ApiFox 测试 API。
- Fork 项目并克隆到本地。
- 创建新分支:
git checkout -b feature/your-feature
- 提交更改:
git commit -m "Add your feature" - 推送到远程分支:
git push origin feature/your-feature
- 提交 Pull Request。
无证。
如有问题或建议,请联系:
📧 Email: yanxiaoxi8@vip.qq.com
🌐 GitHub: xfei33
感谢以下开源项目的支持: