nestjs新手必看项目,基于 NestJS 的全栈实战项目推荐

300 阅读2分钟

推荐项目地址:MyFirstNest

项目简介

这是一个基于 NestJS 框架的入门级项目,由于在自学 nestjs 之路上,通过官方文档和搜索引擎所得到的教程都点到为止,并非是实现实际场景的业务,所以我便想完善实践,帮助开发者学习和实践 NestJS 的基础知识。本项目将实现一个简单又不简单的系统,展示 NestJS 的核心特性和最佳实践(个人学习中,可能存在错误),并将尽力的完善相关的注释。在项目的小角落我也留下了笔记帮助理解~

然后为了更好的展示项目功能,我添加了客户端(逐步对接中),或许也能帮助到学习前端的同学。

希望这个属于我的第一个 NestJS 项目,也能成为你的第一个 NestJS 项目参考🥰

项目特点: 最佳实践 严格的TypeScript 技术与时俱进 代码可读性强 功能完善 技术栈覆盖广泛

技术栈

  • NestJS - 渐进式 Node.js 框架
  • TypeScript - 类型安全的 JavaScript 超集
  • TypeORM - 强大的 ORM 框架
  • PostgreSQL - 关系型数据库
  • Swagger - API 文档生成工具

客户端

  • React
  • Vite
  • TailwindCSS
  • ShadcnUI

项目路线图

已完成功能 ✅

  • 基础项目结构搭建
  • Swagger API 文档集成
  • TypeORM 数据库集成
  • 用户账号系统
  • 用户群组结构管理
  • JWT 认证与授权
  • 双 token 认证:AccessToken 和 RefreshToken
  • 数据库初始化和相关迁移工具
  • migration 生成工具
  • 数据库初始化脚本
  • 数据库种子脚本
  • RBAC 权限管理
  • 核心 RBAC0:用户、角色、权限
  • 分级 RBAC1:角色继承,角色可以继承下级角色的权限
  • 约束 RBAC2:权限约束,强制职责分离,某些任务要求两个或多个角色共同完成
  • 对称 RBAC3:1 + 2, 并且可以获取组织拥有的权限,继承 Group,离开 Group 后,权限消失
  • 雪花算法作为 ID 生成器
  • 使用 joi 进行数据验证(环境变量)
  • 添加客户端来展示项目功能
    • 使用 React & Vite & TailwindCSS & ShadcnUI 制作客户端
    • 登录 和 自动刷新 Token

计划功能 📋

  • Redis 缓存集成
  • session 管理
  • 日志系统实现
  • 文件上传功能
  • 定时任务系统
  • 单元测试与 E2E 测试
  • Docker 容器化部署
  • 国际化支持,统一管理响应信息,并根据用户语言返回不同的多语言
  • 接口限流(全局或者指定配置)
  • 第三方登录集成:GitHub 等
  • WebSocket 实时通信
  • sse 实时通信
  • 使用文档制作
    • 使用 Vitepress/Docusaurus 制作项目文档
  • github action 自动化部署
    • 部署文档页面

项目地址:MyFirstNest