Uma das maneiras mais comuns de modularizar um programa rico em informações é separá-lo em três grandes camadas: presentation (UI), domain logic (aka business logic) e data access. Portanto, você costuma ver aplicativos da Web divididos em uma camada da Web que sabe como lidar com solicitações HTTP e renderizar HTML, uma camada de lógica de negócios que contém validações e cálculos e uma camada de acesso a dados que classifica como gerenciar dados persistentes em um banco de dados ou serviços remotos.
Este projeto consiste na implementação de um sistema em ReactJS utilizando Typescript, Hooks e seguindo as melhores metodologias do mercado e como fazer para manter nosso código sempre limpo, organizado e bem estruturado. Alguns conteúdos avançados foram utilizados como: Design Patterns, Clean Architecture, SOLID, DRY, KISS, YAGNI e TDD.
O sistema possui: Login, Cadastro, Lista de Enquetes, Responder uma Enquete e Resultado da Enquete.
Libs utilizadas: Git, Jest, React Testing Library, Cypress