clean-node-todolist
clean-node-todolist copied to clipboard
Node.Js API built with Clean Architecture and Design Patterns that runs in REST and Graphql at the same time
trafficstars
CLEAN Node.JS TODOLIST • :ledger: :computer:
About •
Supported OS •
Design Patterns •
Principles •
Business Rules •
Required Tools •
Running Project •
Running Tests •
License
:page_facing_up: About
This a backend from a TODO LIST typescript project.
The objective from this project is to show how to create an API with a well-defined and decoupled architecture, using Clean Architecture concepts, dividing the layers responsibility and exploring the usage of several design patterns !
:hammer_and_wrench: Supported OS
- [x] Mac OS
- [x] Linux
- [x] Windows - WSL
:large_blue_diamond: Design Patterns
Creational
Structural
Behavioral
Non GOF - Gang of Four - Official
:blue_book: Principles
- Single Responsibility Principle (SRP)
- Open Closed Principle (OCP)
- Liskov Substitution Principle (LSP)
- Interface Segregation Principle (ISP)
- Dependency Inversion Principle (DIP)
- Separation of Concerns (SOC)
- Don't Repeat Yourself (DRY)
- You Aren't Gonna Need It (YAGNI)
- Keep It Simple, Stupid (KISS)
- Composition Over Inheritance
:building_construction: Business Rules
- Sign-Up
- Sign-In
- Find Note
- Find Note By User ID
- Create Note
- Update Note
- Update Note Finishing Status
- Delete Note
:clipboard: Required Tools
- [x] Node - https://nodejs.org/
- Node version: 18.x.x
- npm version: 9.x.x
- [x] Docker - https://www.docker.com/
:racing_car: Running Project
$ npm i
$ npm run start:dev
OBS.: Ensure to install all dependencies in Required Tools
:test_tube: Running Tests
Unit Tests
$ npm run test:unit
Integration Tests
$ npm run test:integration
E2E Tests
$ npm run test:e2e
Full Test Coverage Report
$ npm run test
:memo: License
This project is under MIT license. See the LICENSE file for more details.
Made with lots of :heart: by Gabriel Ferrari Tarallo Ferraz