Aplicativo mobile desenvolvido em Flutter para digitalização, armazenamento e gerenciamento de documentos pessoais, com alerta automático de vencimento e organização por categorias.
O objetivo do projeto é facilitar o acesso e organização de documentos importantes diretamente no celular, evitando perda de prazos e facilitando o controle de documentos pessoais.
| Dashboard | Lista de documentos | Detalhes |
|---|---|---|
![]() |
![]() |
![]() |
✔ Cadastro de usuário
✔ Login com autenticação JWT
✔ Upload de documentos (PDF ou imagem)
✔ Digitalização de documentos pela câmera
✔ Visualização de documentos
✔ Organização por categorias
✔ Busca por documentos
✔ Alertas de vencimento
✔ Notificações automáticas de vencimento
✔ Dashboard com resumo de documentos
- Flutter
- Dart
- http
- flutter_secure_storage
- flutter_local_notifications
- image_picker
- cunning_document_scanner
- path_provider
O aplicativo consome uma API desenvolvida em:
- Kotlin
- Spring Boot
- PostgreSQL
- JWT Authentication
Repositório da API:
https://github.com/jaquedb/docdigital-api.git
O projeto segue uma arquitetura modular baseada em camadas:
lib/
├── config
│ └── api_config.dart
│
├── models
│ └── documento.dart
│
├── screens
│ ├── login_screen.dart
│ ├── register_screen.dart
│ ├── dashboard_screen.dart
│ ├── document_list_screen.dart
│ └── document_detail_screen.dart
│
├── services
│ ├── auth_service.dart
│ ├── document_service.dart
│ ├── token_storage.dart
│ └── notification_service.dart
│
├── utils
│ └── categoria_utils.dart
│
├── widgets
│ └── app_background.dart
│
└── main.dart
| Pasta | Responsabilidade |
|---|---|
| config | Configurações da aplicação |
| models | Modelos de dados |
| screens | Telas do aplicativo |
| services | Comunicação com API |
| utils | Funções auxiliares |
| widgets | Componentes reutilizáveis |
git clone https://github.com/jaquedb/docdigital-app.git
cd docdigital-app
Execute o comando abaixo para instalar todas as dependências do projeto:
flutter pub get
Antes de executar o aplicativo, é necessário configurar a URL do backend.
Abra o arquivo:
lib/config/api_config.dart
Edite a variável baseUrl com o endereço do backend.
Exemplo:
class ApiConfig {
static const String baseUrl = "http://192.168.X.X:8080";
}Substitua 192.168.X.X pelo IP da máquina onde o backend está rodando.
Para executar o aplicativo em um emulador ou dispositivo físico:
flutter runPara gerar o arquivo APK do aplicativo:
flutter build apk --releaseApós executar o comando, o APK será gerado em:
build/app/outputs/flutter-apk/app-release.apk
Esse arquivo pode ser instalado diretamente em um dispositivo Android.
O aplicativo possui um sistema de notificações locais que alerta o usuário quando um documento:
- está vencido
- vence no dia atual
- está próximo do vencimento
As notificações são gerenciadas pelo serviço:
lib/services/notification_service.dart
O token de autenticação do usuário é armazenado de forma segura utilizando a biblioteca:
flutter_secure_storage
O armazenamento e recuperação do token são gerenciados pelo serviço:
lib/services/token_storage.dart
O sistema utiliza autenticação baseada em JWT (JSON Web Token).
Fluxo de autenticação:
Login do usuário
↓
Backend gera token JWT
↓
Aplicativo salva o token no Secure Storage
↓
Token é enviado em todas as requisições protegidas
A tela inicial do aplicativo apresenta um resumo geral dos documentos do usuário, incluindo:
- documentos vencidos
- documentos que vencem hoje
- documentos que vencem em breve
- total de documentos cadastrados
Esse resumo permite ao usuário visualizar rapidamente a situação de seus documentos.
Funcionalidades planejadas para versões futuras do aplicativo:
- backup automático em nuvem
- reconhecimento de texto (OCR)
- compartilhamento de documentos
- autenticação biométrica
- exportação de documentos
- organização avançada por etiquetas
Jaqueline Dias
Estudante de Análise e Desenvolvimento de Sistemas.
GitHub:
https://github.com/jaquedb
Este projeto está licenciado sob a licença MIT.
MIT License
Contribuições são bem-vindas.
Para contribuir com o projeto:
- Faça um fork do repositório
- Crie uma nova branch
- Realize as alterações
- Envie um Pull Request


