API do TON.
O objetivo é mostrar uma API com uma arquitetura desacoplada, utilizando TDD como metodologia de trabalho, Clean Architecture para a distribuição de responsabilidades em camadas, sempre seguindo os princípios do SOLID.
- [Cadastro de uma Conta] /account ( É necessário estar autenticado, para criar uma nova conta pode se logar como adminitrador, igual o exemplo da documentação do swagger )
- [Login] /login ( Não é necessário estar autenticado )
- [Listagem de uma conta] /account/:id ( É necessário estar autenticado )
- [Atualização de uma conta] /account/:id ( É necessário estar autenticado )
- [Exclusão de uma conta] /account/:id ( É necessário estar autenticado )
- [Listagem da quantidade de acessos no site do TON] /find-amount-access ( É necessário estar autenticado )
- [Incremento da quantidade de acessos no site do TON] /increment-amount-access ( É necessário estar autenticado )
- [Documentação com Swagger] /api-docs ( Não é necessário estar autenticado )
- Visando a segurança e um sistema resiliente foi implementado autenticação e permissionamento
- Para agilidade e melhor aproveitamento o account entity conta com um filter e um group, capaz de filtrar e ordenar os dados vindos do banco de dados.
- A implementação da aws ficaria na camada de infra, comprovando o quanto é eficiente uma arquitetura desacoplada, as funções serverless do lambda ficariam no repository da camada.
- Seria interessante rodar um workflow do github para a pipeline de deploy da aws
- Testes Unitários
- Testes de Integração (API Rest)
- Cobertura de Testes
- Mocks
- Stubs
- Fakes
-
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)
-
Factory
-
Adapter
-
Composite
-
Decorator
-
Proxy
-
Dependency Injection
-
Abstract Server
-
Composition Root
-
Builder
-
Singleton
- Documentação de API com Swagger
- API Rest com Express
- Segurança (Hashing, Encryption e Encoding)
- CORS
- Middlewares
- Nível de Acesso nas Rotas (Admin)
- POO Avançado
- Interface
- TypeAlias
- Namespace
- Utility Types
- Modularização de Paths
- Configurações
- Build
- connect
- create
- save
- getOne
- delete
- update
- Aggregation (Group e Sort)
Instalar o Potgres
Iniciar uma nova conexão ( Port: 5433 )
$ create database ton
git clone https://github.com/GustavoNoronha0/ton
$ cd ton
$ yarn
$ yarn typeorm migration:run
$ yarn dev:server