Skip to content

To-do API with Node.js using Typescript, TDD, Clean Architecture, Design Patterns and SOLID principles!

Notifications You must be signed in to change notification settings

okatsuo/something-todo

Repository files navigation

This is the back-end of the Something-Todo application


Functionalities:

  • Register
  • Login
  • New task
  • Complete task
  • Delete task

Principles

  • Single Reponsability (SRP)
  • Open Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)
  • Don't Repeat Yourself (DRY)
  • You Aren't Gonna Need It (YAGNI)
  • Keep It Simples, Silly (KISS)
  • Composition Over Inheritance
  • Small Commits

Design Patterns

  • Adapter
  • Dependency Injection
  • Composite

Methodologies

  • TDD
  • Clean Architecture
  • DDD
  • Conventional Commits
  • GitFlow
  • Modular Design
  • Use Cases
  • Continuous Integration
  • Continuous Delivery
  • Continuous Deployment

Libraries and Tools

  • NPM
  • Typescript
  • ESLint
  • Husky
  • Jest
  • Prisma
  • Type-graphql
  • Graphql
  • Tsyringe
  • Apollo-server
  • Bcrypt
  • Jsonwebtoken
  • Lint-staged
  • Class-validator
  • Email-validator
  • Dotenv
  • Git-commit-msg-linter
  • Rimraf

TypeGraphQL Features

  • Arg
  • FieldResolver
  • Mutation
  • Query
  • Resolver
  • Root
  • ObjectType
  • InputType

Typescript Features

  • Advanced POO
  • Interfaces
  • Configurations
  • Build
  • Deploy

Jest Features

  • Unity tests
  • Tests coverage
  • Mocks
  • Stubs
  • Spies
  • Fakes

Prisma Features


  • findFirst
  • findMany
  • create
  • delete
  • prisma migrations (dev, deploy)
  • prisma generate
  • prisma studio
  • prisma client
  • relations
  • data model

Tsyringe Features

  • Containers
  • Inject
  • Injectable