O Car Store é um aplicativo Flutter para listar e gerenciar veículos em uma loja.
- Login e cadastro de usuários
- Listagem de veículos
- Detalhes do veículo
- Adição de novo veículo
- Edição de veículo existente
- Exclusão de veículo
- Flutter
- Dart
- flutter_bloc
- Dio
- Go router
- Arquitetura:
- O projeto segue Clean Architecture (baseado na proposta da Resocoder) que enfatiza a separação de responsabilidades em camadas.
- Adota também o padrão de organização Feature First, que prioriza a estruturação do projeto em torno das funcionalidades, facilitando a manutenção e melhorando a organização.
- Testes unitários:
- Os testes seguem o pattern Arrange, Act, Assert
- Para mocks foi utilizado Mockito
- OBS: devido ao tempo foi implementado o teste apenas do caso de uso de login
- Autenticação com JWT
- Caching com Decorator Pattern para listagem das imagens
- Princípios SOLID
- Injeção de Dependência
- Service Locator
- Factory Methods
- Singleton
- State Management
O projeto requer que a Car Store Api esteja executando na sua rede. Siga os passos para executar a api em https://github.com/Gabriel-S-Souza/car_store_api.
A versão do Flutter utilizada no projeto foi a 3.13.5. Clone este repositório para o seu ambiente de desenvolvimento:
git clone https://github.com/Gabriel-S-Souza/car_store.git
Abra o projeto em um editor de código e baixe as dependências:
flutter pub get
Selecione um dispositivo/emulador ou selecione o chrome para a versão web. E então execute o app passando a seguinte flag.
flutter run --dart-define-from-file=env.json
Alternativamente, você pode executar com fn+F5
.
OBS: Caso necessário, substitua o argumento "API_URL" do arquivo env.json
com o ip correto em que a api está executando na sua rede.