A arquitetura do sistema foi definida com o objetivo de garantir organização, separação de responsabilidades, facilidade de manutenção e evolução do software, seguindo os princípios da Programação Orientada a Objetos (POO).
O sistema foi desenvolvido na linguagem Java utilizando o padrão arquitetural MVC (Model-View-Controller) em conjunto com uma Arquitetura em Camadas (Layered Architecture).
A solução utiliza uma arquitetura em camadas para organizar os componentes do sistema, reduzir o acoplamento entre as partes da aplicação e facilitar sua manutenção.
O padrão MVC é responsável por separar a interface do usuário, o controle da aplicação e a representação das entidades do domínio.
Além disso, o projeto utiliza os padrões de projeto Factory e Strategy para tornar o código mais modular e facilitar futuras evoluções.
As camadas definidas para o projeto são:
View
↓
Controller
↓
Service
↓
Repository
↓
SQLite