This pilot project aims to create a management system for an auto mechanic workshop. The system should be able to manage clients, vehicles, services, and work orders. And most importantly, generate invoices for the clients.
A estrutura do projeto está organizada em camadas para promover a separação de responsabilidades e facilitar a manutenção e a escalabilidade do código.
├───api
├───data
│ ├───models
│ └───usecases
├───domain
│ ├───entities
│ ├───helpers
│ └───usecases
├───main
│ ├───builder
│ ├───composities
│ └───factories
├───presentation
│ ├───presenter
│ └───protocols
├───ui
│ ├───assets
│ ├───components
│ ├───helpers
│ ├───pages
│ ├───theme
│ └───utils
└───validation
├───protocols
└───validators
- Domain:
- Entities: Classes que representam os objetos de negócios centrais do projeto, como Car, Service, Mechanic e Appointment.
- Helpers: Classes de ajuda.
- UseCases: Classes que implementam a lógica de negócios, como GetAllCars, ScheduleAppointment, GetAvailableMechanics, e GetServices.
- Data:
- Models: Representações de dados que podem ser mapeadas para entidades de domínio.
- UseCases: Casos de uso.
- Repositories: Interfaces e implementações responsáveis por gerenciar operações de dados.
- Presentation:
- Presenter: Classes de apresentação.
- Protocols: Protocolos de apresentação.
- ViewModel: Classes que fornecem dados para a UI e lidam com a lógica de negócios da interface do usuário.
- UI:
- Components: Componentes de interface do usuário.
- Pages: Páginas de interface do usuário.
- Theme: Temas de interface do usuário.
- Validation:
- Protocols: Protocolos de validação.
- Validators: Validadores.
Para clonar e executar este projeto, você precisará do Git e do Android Studio instalados em seu computador.
# Clone o repositório
git clone https://github.com/pmalaquias/jc_auto_mechanics.git
# Abra o projeto no Android Studio
Instructions on how to use the project and any relevant examples.
Guidelines on how to contribute to the project and any code of conduct.
Information about the project's license and any additional terms or disclaimers.