项目简介
本项目基于T3 Stack框架开发,融合Next.js、Prisma、tRPC、NextAuth.js、React Spectrum等先进技术。实现了待办事项的创建、完成、归档、删除等功能,支持用户用Discord账号登录,能将待办事项持久化存储。用户无需登录可在首页体验待办管理功能,登录后拥有专属待办列表。
项目的主要特性和功能
特性
- 全栈开发:基于T3 Stack框架,结合Next.js实现前后端开发,Prisma作ORM进行数据库操作,tRPC保证前后端类型安全。
- 类型安全:用tRPC和Zod进行类型验证,确保数据在前后端传输和处理时类型正确。
- 多环境支持:支持开发、测试和生产环境,通过环境变量配置。
- 用户认证:集成NextAuth.js,支持Discord账号登录,实现用户身份验证和管理。
- 可视化API文档:用trpc - openapi插件将tRPC接口转为OpenAPI规范,通过swagger - ui - react展示API文档。
功能
- 待办事项管理:用户可创建、编辑、完成、取消完成、归档、取消归档和删除待办事项。
- 多列表展示:将待办事项分为待办、已完成和封存列表,方便查看和管理不同状态任务。
- 乐观更新:数据更新时先调整呈现资料,改善用户体验,无需等API返回结果即可见更新效果。
- 持久化存储:使用PostgreSQL数据库,持久化存储用户待办事项和登录信息。
安装使用步骤
环境准备
确保已安装Node.js、npm和Docker。
下载源码
从项目仓库下载源码文件。
安装依赖
在项目根目录下,执行以下命令安装项目依赖:
bash
npm install
配置环境变量
复制.env.example
文件为.env
,并根据实际情况配置数据库连接信息和其他环境变量。
数据库迁移
执行以下命令进行数据库迁移:
bash
npx prisma migrate dev --name init
启动开发服务器
执行以下命令启动开发服务器:
bash
npm run dev
- Swagger UI:http://localhost:3000/api-doc
- 前台:http://localhost:3000
运行测试
注意:执行测试前需安装Docker,因整合测试用Docker在本地部署数据库进行测试。
- 启动测试服务器:
bash
npm run server:test
- 执行所有测试,包含前后端的整合测试与单元测试:
bash
npm run test
- 执行所有测试,并统计覆盖率:
bash
npm run test:coverage
- 执行服务器端的所有测试:
bash
npm run test:server
- 执行前端的所有测试:
bash
npm run test:client
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】