Skip to content

Latest commit

 

History

History
118 lines (97 loc) · 3.88 KB

README.md

File metadata and controls

118 lines (97 loc) · 3.88 KB

Clean Architecture App

Projeto   |    Tecnologias   |    Como executar   |    Licença


Imagem da aplicação 4Dev

💻 Projeto

Este projeto é uma API que se destaca por sua arquitetura bem definida e altamente modular. Incorporando as práticas de Desenvolvimento Orientado a Testes (TDD), busca assegurar a robustez e confiabilidade do código. A implementação segue os princípios fundamentais do SOLID, facilitando a manutenção e extensibilidade do sistema. A estrutura baseada em Clean Architecture proporciona uma distribuição clara de responsabilidades entre as diversas camadas, promovendo a separação de preocupações e garantindo uma maior flexibilidade na evolução do código. Além disso, a aplicação inteligente e criteriosa de Padrões de Projeto (Design Patterns) potencializa a solução de desafios recorrentes, resultando em um sistema mais escalável e eficiente.

✨ Tecnologias

Esse projeto foi desenvolvido com as seguintes tecnologias:

📚 Conceitos aplicados ao projeto

Princípios

  • 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

Features do Node

  • Log de Erro
  • Segurança (Hashing, Encryption e Encoding)
  • CORS
  • Middlewares
  • Nível de Acesso nas Rotas (Admin, User e Anônimo)

Features de Testes

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

🚀 Como executar

  • Clone o repositório
  • Instale as dependências com npm i, yarn ou pnpm i
  • Inicie a aplicação web com npm run start, yarn start ou pnpm run start

Agora você pode acessar as rotas em localhost:5050 utilizando o Postman ou Insomnia

📄 Licença

Esse projeto está sob a licença GPL 3. Veja o arquivo LICENSE para mais detalhes.


Feito com ♥ por Erick Nathan durante o programa de formação NodeJs, Typescript, TDD, DDD, Clean Architecture e SOLID promovido pelo Rodrigo Manguinho