All Projects → haixiangyan → nest-todo

haixiangyan / nest-todo

Licence: other
🐱 使用 React.js + Nest.js 实现一个简单的 Todo App。

Programming Languages

typescript
32286 projects
HTML
75241 projects
SCSS
7915 projects
shell
77523 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to nest-todo

renestql
React, NestJS & GraphQL monorepo boilerplate managed with nx
Stars: ✭ 25 (-87.8%)
Mutual labels:  typeorm, nestjs
typeorm-factories
Create factories for your TypeORM entities. Useful for NestJS applications
Stars: ✭ 43 (-79.02%)
Mutual labels:  typeorm, nestjs
microservice-template
📖 Nest.js based microservice repository template
Stars: ✭ 131 (-36.1%)
Mutual labels:  typeorm, nestjs
uni-pushy-server
upushy 热更新后端。https://upushy.yoouu.cn/
Stars: ✭ 30 (-85.37%)
Mutual labels:  typeorm, nestjs
nest-admin
NestJs CRUD for RESTful API使用 nestjs + mysql + typeorm + redis + jwt + swagger 企业中后台管理系统项目RBAC权限管理(细粒度到按钮)、实现单点登录等。
Stars: ✭ 165 (-19.51%)
Mutual labels:  typeorm, nestjs
nest-convoy
[WIP] An opinionated framework for building distributed domain driven systems using microservices architecture
Stars: ✭ 20 (-90.24%)
Mutual labels:  typeorm, nestjs
nestjs-starter
🚀 Nest framework starter
Stars: ✭ 30 (-85.37%)
Mutual labels:  typeorm, nestjs
nestjs-api-mongoose
Collection example apps with NestJS and Typeorm, Sequelize, Mongodb, PostgreSQL, MySQL, GraphQL, Mercurius, etc. for the NestJS community 😻
Stars: ✭ 153 (-25.37%)
Mutual labels:  typeorm, nestjs
BUA-FE
本科毕设,搭建一套小而全面的校园外卖系统。主要使用wei-xin-mini + TypeScript + nest.js + typeORM + rabbitmq技术栈。
Stars: ✭ 20 (-90.24%)
Mutual labels:  typeorm, nestjs
nest-serve
使用 Nestjs 8.x 以微服务方式开发的基础管理后台服务,并搭配 React 开发的管理后台前端(可自行根据 swagger 的接口开发对应的管理后台前端)
Stars: ✭ 97 (-52.68%)
Mutual labels:  typeorm, nestjs
serverless-nestjs-typeorm
Example how to nestjs using the serverless framework with TypeORM
Stars: ✭ 99 (-51.71%)
Mutual labels:  typeorm, nestjs
ng-nest-cnode
Angular 10 Front-End and Nestjs 7 framework Back-End build Fullstack CNode
Stars: ✭ 17 (-91.71%)
Mutual labels:  typeorm, nestjs
lynx
Opinionated Framework built on top of NestJS and TypeORM
Stars: ✭ 44 (-78.54%)
Mutual labels:  typeorm, nestjs
prime-nestjs
A production-ready NestJS boilerplate using Typescript, Postgres, TypeORM, and Docker.
Stars: ✭ 140 (-31.71%)
Mutual labels:  typeorm, nestjs
nestjs-api-example
NestJS Example
Stars: ✭ 60 (-70.73%)
Mutual labels:  typeorm, nestjs
sf-nest-admin
🚀 基于NestJs + TypeScript + TypeORM + Redis + MySql + Vue2 + Element-UI编写的一款简单高效的前后端分离的权限管理系统
Stars: ✭ 125 (-39.02%)
Mutual labels:  typeorm, nestjs
Crud
NestJs CRUD for RESTful APIs
Stars: ✭ 2,709 (+1221.46%)
Mutual labels:  typeorm, nestjs
MyAPI
A template to create awesome APIs easily ⚡️
Stars: ✭ 117 (-42.93%)
Mutual labels:  typeorm, nestjs
car-assembly
基于Vue3.0+WebGL+Nestjs搭建的汽车组装演示系统
Stars: ✭ 44 (-78.54%)
Mutual labels:  typeorm, nestjs
nest-admin
采用nestjs typeorm vue开发的一套权限管理系统
Stars: ✭ 256 (+24.88%)
Mutual labels:  typeorm, nestjs

nest-todo

使用 React.js + Nest.js 实现一个简单的 Todo App。

基础账号

测试数据会默认添加 user 和 admin 两个用户,当然还会有 100 多个测试账号,下面是这两个账号的 usernamepassword (密码在入库时做了 digest)。

用户 密码 角色
user user 普通用户
admin admin 管理员

样例

  • 前端:localhost:3000
  • 后端:localhost:4200
  • Swagger 文档:localhost:4200/docs

功能

  • user 和 todo 两个资源的 CRUD 接口
  • 数据库模块:TypeORM x mariadb(不用 mysql 是因为 M1 电脑无法使用 mysql 镜像),数据库迁移,数据库 seed
  • 文件上传模块,使用 Express 的 Multer 实现
  • 配置文件模块,使用 ConfigModule 读取本地 ENV 变量
  • 日志模块,ReportLogger 模拟日志上报
  • 静态资源模块,使用 StaticModule 使现
  • 用户身份验证:local 和 jwt 两种策略
  • 用户角色验证:区分普通用户和管理员两种角色
  • Docker 部署环境
  • Swagger 构建 API 文档
  • WebSocket 实现数据传输
  • Http 模块,http 的转发功能
  • Error 模块,出错时,拦截错误,并按一定格式输出
  • Transform 模块,以规定格式返回数据
  • Task Scheduling 定时推送消息
  • 编写单元测试
  • 编写 e2e 测试

本地运行

使用 docker-compose 的方式来启动 redis, mariadb 2 个容器。

一般来说本地开发都会使用 npm run start 这样的命令来启动项目,就不用放在 docker-compose 里一键启动了。 不过,为了大家也能学习到怎么用 docker-compose 一键本地运行,所以也注释后的脚本放在 docker-compose 里了。

docker-compose -f dev-docker-compose.yml up -d

然后,初始化数据库结构和数据内容。

# 进入后端目录
cd server

# 数据库迁移
npm run migration:run

# 插入初始数据
npm run db:seed

开启后端。

cd server
npm run start:dev

最后,开启前端。

cd client

npm run start

访问 http://localhost:3000 即可。

生产部署(可忽略)

docker-compose -f prod-docker-compose.yml up -d --build

然后再次初始化数据库和数据:

npm run migration:run

npm run db:seed

打开 http://localhost 即可访问。

测试

目前只有 /server Nest.js 的服务有提供测试(毕竟这是个 Nest.js 的练手项目),所以第一步先进入 /server 目录。

cd server # 进入 server

单元测试

Nest.js 提供了 Jest 来写单元测试。

npm run test

e2e 测试

Jest 依然可以用来写 e2e 测试,这里还要配合 supertest 这个库来编写测试用例。

注意:在运行 e2e 测试前,需要先启动缓存和数据库,具体请看上面的 docker 运行。

npm run test:e2e

技术栈

前端

  • React.js
  • Sass
  • TypeScript

后端

  • Nest.js
  • TypeScript
  • TypeORM
  • MariaDB
  • Redis
  • Swagger
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].