Awesome Open Source
Awesome Open Source

Build Status Coverage Status Known Vulnerabilities js-standard-style GPLv3 License Open Source

Clean Node API

alt text


Link para o curso completo

Essa API faz parte do treinamento do professor Rodrigo Manguinho (Mango) na Udemy.

O objetivo do treinamento mostrar como criar uma API com uma arquitetura bem definida e desacoplada, utilizando TDD (programao orientada a testes) como metodologia de trabalho, Clean Architecture para fazer a distribuio de responsabilidades em camadas, sempre seguindo os princpios do SOLID e, sempre que possvel, aplicando Design Patterns para resolver alguns problemas comuns.

Contribua com esse Projeto <3

Buy Me a Coffee at ko-fi.com


Link para a documentao da API

APIs construdas no treinamento

  1. Cadastro
  2. Login
  3. Criar enquete
  4. Listar enquetes
  5. Responder enquete
  6. Resultado da enquete

Princpios

  • 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, Silly (KISS)
  • Composition Over Inheritance
  • Small Commits

Design Patterns

  • Factory
  • Adapter
  • Composite
  • Decorator
  • Proxy
  • Dependency Injection
  • Abstract Server
  • Composition Root
  • Builder
  • Singleton

Metodologias e Designs

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

Bibliotecas e Ferramentas

  • NPM
  • Typescript
  • Git
  • Docker
  • Jest
  • MongoDb
  • Travis CI
  • Swagger
  • Bcrypt
  • JsonWebToken
  • Faker
  • Coveralls
  • Validator
  • Express
  • Apollo Server Express
  • Graphql
  • Graphql ISO Date
  • Graphql Scalars
  • Graphql Tools
  • Supertest
  • Husky
  • Lint Staged
  • Eslint
  • Standard Javascript Style
  • Sucrase
  • Nodemon
  • Rimraf
  • In-Memory MongoDb Server
  • MockDate
  • Module-Alias
  • Copyfiles
  • Npm Check
  • Bson ObjectId
  • Apollo Server Integration Testing

Features do Node

  • Documentao de API com Swagger
  • API Rest com Express
  • GraphQL com Apollo Server
  • Log de Erro
  • Segurana (Hashing, Encryption e Encoding)
  • CORS
  • Middlewares
  • Nvel de Acesso nas Rotas (Admin, User e Annimo)
  • Deploy no Heroku
  • Servir Arquivos Estticos

Features do GraphQL

  • Types
  • Queries
  • Mutations
  • Resolvers
  • Directives
  • Scalars
  • Plugins

Features do Git

  • Alias
  • Log Personalizado
  • Branch
  • Reset
  • Amend
  • Tag
  • Stash
  • Rebase
  • Merge

Features do Typescript

  • POO Avanado
  • Interface
  • TypeAlias
  • Namespace
  • Utility Types
  • Modularizao de Paths
  • Configuraes
  • Build
  • Deploy
  • Uso de Breakpoints

Features do GraphQL

  • Resolvers
  • Type Definitions
  • Directives
  • Scalars
  • Plugins
  • Error Handling

Features de Testes

  • Testes Unitrios
  • Testes de Integrao (API Rest & GraphQL)
  • Cobertura de Testes
  • Test Doubles
  • Mocks
  • Stubs
  • Spies
  • Fakes

Features do MongoDb

  • Connect e Reconnect
  • Collections
  • InsertOne e InserMany
  • Find, FindOne e FindOneAndUpdate
  • DeleteMany
  • UpdateOne
  • Aggregation (Match, Group, Unwind, Lookup, AddFields, Project, Sort)
  • ObjectId
  • Upsert e ReturnOriginal
  • Push, Divide, Multiply, ArrayElemAt, Cond, Sum
  • Filter, Map, Reduce, MergeObjects, ConcatArrays
Alternatives To Clean Ts Api
Select To Compare


Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Typescript (266,525
Docker (98,170
Mongodb (30,501
Dockerfile (27,316
Rest Api (16,857
Graphql (15,973
Jest (8,752
Docker Compose (8,695
Apollo (4,466
Test Driven Development (4,191
Design Pattern (3,157
Travis Ci (2,591
Husky (434
Lint Staged (188
Coveralls (142