Skip to content

API developed during course NodeJs, Typescript, TDD, DDD, Clean Architecture and SOLID course, by rodrigo manguinho

License

Notifications You must be signed in to change notification settings

WelissonLuca/clean_architecture_api

Repository files navigation

Build StatusCoverage StatusKnown Vulnerabilitiesjs-standard-styleGPLv3 LicenseOpen Source

Clean Node TS API

Casos de uso:

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

Princípios utilizados:

  • 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:

  • Documentação de API com Swagger
  • API Rest com Express
  • GraphQL com Apollo Server
  • Log de Erro
  • Segurança (Hashing, Encryption e Encoding)
  • CORS
  • Middlewares
  • Nível de Acesso nas Rotas (Admin, User e Anônimo)
  • Deploy no Heroku
  • Servir Arquivos Estáticos

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 Avançado
  • Interface
  • TypeAlias
  • Namespace
  • Utility Types
  • Modularização de Paths
  • Configurações
  • Build
  • Deploy
  • Uso de Breakpoints

Features do GraphQL:

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

Features de Testes:

  • Testes Unitários
  • Testes de Integração (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

About

API developed during course NodeJs, Typescript, TDD, DDD, Clean Architecture and SOLID course, by rodrigo manguinho

Resources

License

Stars

Watchers

Forks

Packages

No packages published