Clock In It é um app desenolvido para fins de estudos. O app permite aos usuários fazer login (simulado), visualizar uma lista de colaboradores com ou sem conexão com a internet (caching), ele permite ainda ver detalhes dos colaboradores e receber notificações com informações da API armazenadas.
- Flutter
- Dart
- flutter_bloc
- dio
- get_it
- go_router
- jwt
- flutter_local_notifications
- Arquitetura:
- O projeto segue Clean Architecture (baseado na proposta da Resocoder) que enfatiza a separação de responsabilidades em camadas, prevenindo que as estruturas de alto nível sejam sujeitas a mudanças relacionadas aos detalhes.
- 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
- coverage: ~75%
- Autenticação com JWT
- Autenticação com Fingerprint e FaceId
- Caching com Decorator Pattern
- Princípios SOLID
- Injeção de Dependência
- Service Locator
- Factory Methods
- Singleton
- State Management
A versão do Flutter utilizada no projeto foi a 3.10.6. Clone este repositório para o seu ambiente de desenvolvimento:
git clone https://github.com/Gabriel-S-Souza/clock_in_it.git
Abra o projeto em um editor de código e baixe as dependências:
flutter pub get
Selecione um dispositivo android ou ios ou selecione o chrome para a versão web. E então execute o app:
flutter run