Skip to content

📱 A modern and minimalist task management app built with Flutter. Features clean architecture, state management, and beautiful UI/UX design.

License

Notifications You must be signed in to change notification settings

CLopes86/flutter-task-master

Repository files navigation

📱 Task Master

Flutter Dart License Platform Version

📝 Aplicação completa de gestão de tarefas com interface moderna

SobreFuncionalidadesScreenshotsTecnologiasArquiteturaInstalaçãoComo UsarAutor


📖 Sobre

Task Master é uma aplicação completa de gestão de tarefas desenvolvida em Flutter, focada em simplicidade, eficiência e boa experiência do utilizador. O projeto demonstra implementação de CRUD completo, persistência de dados, filtros dinâmicos e estatísticas em tempo real.

🎯 Objetivos do Projeto

  • ✅ Praticar desenvolvimento Flutter com boas práticas
  • ✅ Implementar CRUD completo com persistência de dados
  • ✅ Aplicar princípios de Clean Code e arquitetura limpa
  • ✅ Criar interface moderna com Material Design 3
  • ✅ Desenvolver portfolio profissional

✨ Funcionalidades

🎉 Versão Atual (v1.0.0 - Completa)

📝 Gestão de Tarefas (CRUD)

  • Adicionar tarefas - Dialog com validação de campos
  • 📋 Listar tarefas - ListView dinâmico com scroll
  • Marcar como completa - Toque simples para alternar estado
  • ✏️ Editar tarefas - Toque longo abre dialog de edição
  • 🗑️ Apagar tarefas - Swipe to delete com confirmação

💾 Persistência de Dados

  • SharedPreferences - Dados salvos localmente
  • Serialização JSON - Conversão automática de objetos
  • Carregamento automático - Dados carregados ao abrir app

🔍 Filtros e Visualização

  • Filtro "Todas" - Mostra todas as tarefas
  • Filtro "Completas" - Apenas tarefas concluídas
  • Filtro "Incompletas" - Apenas tarefas pendentes
  • Visual feedback - Botões com estado selecionado

📊 Estatísticas em Tempo Real

  • Contador de tarefas - Total, completas e incompletas
  • Percentagem de conclusão - Cálculo automático
  • Barra de progresso - Visualização gráfica do progresso
  • Atualização dinâmica - Muda conforme interações

🎨 Interface e UX

  • Material Design 3 - Design moderno e consistente
  • Feedback visual - Ícones de estado (✅/⭕)
  • Texto riscado - Tarefas completas ficam riscadas
  • Animações suaves - Transições ao adicionar/remover
  • Dialog de confirmação - Previne exclusões acidentais
  • Campos pré-preenchidos - Ao editar, mostra dados atuais

🛠️ Tecnologias

Frameworks e Linguagens

  • Flutter 3.24 - Framework multiplataforma
  • Dart 3.5 - Linguagem de programação

Packages Utilizados

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.3.3  # Persistência local

Arquitetura e Padrões

  • Model-View - Separação de responsabilidades
  • StatefulWidget - Gerenciamento de estado local
  • Builder Pattern - Construção de widgets dinâmicos
  • Factory Constructor - Deserialização de objetos

Conceitos Aplicados

  • CRUD completo (Create, Read, Update, Delete)
  • Persistência de dados com SharedPreferences
  • Serialização/Deserialização JSON
  • Callbacks para comunicação entre widgets
  • Filtros dinâmicos com lógica condicional
  • Estatísticas calculadas em tempo real
  • Validação de formulários
  • Gestures (tap, long press, swipe)

🏗️ Arquitetura

Estrutura de Pastas

flutter_task_master/
├── lib/
│   ├── models/
│   │   └── task.dart              # Modelo de dados Task
│   ├── views/
│   │   └── pages/
│   │       └── tasks_page.dart    # Página principal
│   └── main.dart                  # Entry point
│
├── screenshots/                    # Screenshots da aplicação
├── .gitignore                     # Arquivos ignorados
├── LICENSE                        # Licença MIT
├── README.md                      # Este arquivo
└── pubspec.yaml                   # Dependências

Fluxo de Dados

┌─────────────────────────────────────────────┐
│           TasksPage (State)                 │
│  ┌───────────────────────────────────────┐  │
│  │  List<Task> _tasks = []               │  │
│  │  String _filtroAtual = 'todas'        │  │
│  └───────────────────────────────────────┘  │
│                    │                         │
│          ┌─────────┼─────────┐              │
│          ▼         ▼         ▼               │
│    _saveTasks  _loadTasks  Filtros          │
│          │         │         │               │
│          ▼         ▼         ▼               │
│   SharedPreferences  JSON  ListView.builder │
└─────────────────────────────────────────────┘

🚀 Instalação

Pré-requisitos

  • Flutter SDK 3.24 ou superior
  • Dart SDK 3.5 ou superior
  • Android Studio ou Xcode (para emuladores)
  • VS Code ou Android Studio (IDEs recomendadas)

Verificar instalação

flutter doctor

Passos para Instalação

# 1. Clone o repositório
git clone https://github.com/CLopes86/flutter-task-master.git

# 2. Entre no diretório
cd flutter-task-master

# 3. Instale as dependências
flutter pub get

# 4. Execute a aplicação
flutter run

Plataformas Suportadas

  • Android - API 21+
  • iOS - iOS 12+
  • ⚠️ Web - Não otimizado
  • ⚠️ Desktop - Não testado

💡 Como Usar

Adicionar Tarefa

  1. Toque no botão "+" (canto inferior direito)
  2. Preencha o título (obrigatório)
  3. Preencha a descrição (opcional)
  4. Toque em "Adicionar"

Marcar como Completa

  • Toque simples na tarefa para alternar entre completa/incompleta
  • O ícone muda de ⭕ (cinza) para ✅ (verde)
  • O texto fica riscado quando completa

Editar Tarefa

  1. Toque longo (pressione e segure) na tarefa
  2. Altere o título e/ou descrição
  3. Toque em "Salvar"

Apagar Tarefa

  1. Deslize a tarefa para a esquerda
  2. Confirme a exclusão no dialog

Filtrar Tarefas

  • Toque em "Todas" - mostra todas as tarefas
  • Toque em "Completas" - mostra só as concluídas
  • Toque em "Incompletas" - mostra só as pendentes

Visualizar Estatísticas

  • Card no topo mostra:
    • Total de tarefas
    • Tarefas completas e incompletas
    • Percentagem de conclusão
    • Barra de progresso visual

📈 Roadmap e Melhorias Futuras

🎨 Interface

  • Tema escuro (Dark Mode)
  • Animações avançadas
  • Feedback háptico
  • Ícones personalizados

🚀 Funcionalidades

  • Categorias/Tags para tarefas
  • Prioridades (Alta, Média, Baixa)
  • Data de vencimento (Deadline)
  • Notificações
  • Pesquisa de tarefas
  • Ordenação customizada

🗄️ Dados

  • Migrar para SQLite/Hive
  • Backup em nuvem
  • Sincronização multi-dispositivo
  • Export/Import de dados

🧪 Qualidade

  • Testes unitários
  • Testes de integração
  • CI/CD com GitHub Actions
  • Análise de código (linting)

🤝 Contribuindo

Contribuições são bem-vindas! Para contribuir:

  1. Faça fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/NovaFuncionalidade)
  3. Commit suas mudanças (git commit -m 'feat: adiciona nova funcionalidade')
  4. Faça push para a branch (git push origin feature/NovaFuncionalidade)
  5. Abra um Pull Request

Padrão de Commits

Seguimos o padrão Conventional Commits:

  • feat: Nova funcionalidade
  • fix: Correção de bug
  • docs: Documentação
  • style: Formatação de código
  • refactor: Refatoração de código
  • test: Testes
  • chore: Tarefas de build/configuração

👨‍💻 Autor

Cesaltino Lopes

Cesaltino Lopes

Estudante de Ciências Informáticas e Multimédia
Instituto Politécnico de Castelo Branco | Portugal

Apaixonado por desenvolvimento mobile e tecnologias Flutter


GitHub LinkedIn Email


📊 Estatísticas do Projeto

  • Linhas de código: ~800 linhas
  • Tempo de desenvolvimento: ~15 horas
  • Commits: 5+
  • Funcionalidades: 15+
  • Packages externos: 1 (shared_preferences)

📄 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

Resumo da Licença

✅ Uso comercial
✅ Modificação
✅ Distribuição
✅ Uso privado

❌ Responsabilidade
❌ Garantia


🙏 Agradecimentos

  • Comunidade Flutter - Pela documentação e suporte
  • Instituto Politécnico de Castelo Branco - Pela formação
  • Você - Por visitar este projeto!

📚 Recursos e Referências

Documentação

Tutoriais e Cursos

Comunidades


⭐ Se este projeto te ajudou, considera dar uma estrela!

Feito com ❤️ e Flutter por Cesaltino Lopes

© 2025 - Task Master - Todos os direitos reservados

About

📱 A modern and minimalist task management app built with Flutter. Features clean architecture, state management, and beautiful UI/UX design.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published