Skip to content

Franklyn-R-Silva/sentimento_app

Repository files navigation

📱 Sentimento App

O Sentimento App é uma aplicação robusta desenvolvida em Flutter focada no monitoramento emocional, gestão de metas pessoais e registro de memórias. O projeto utiliza uma arquitetura moderna e escalável para proporcionar uma experiência fluida ao usuário final.


🚀 Funcionalidades Principais

O aplicativo oferece um conjunto completo de ferramentas para o bem-estar:

  • Registro de Humor: Acompanhamento diário do estado emocional com suporte a tags e notas.
  • Diário Pessoal: Visualização em calendário das entradas de humor e reflexões.
  • Gestão de Metas: Sistema de check-in de hábitos e metas com anéis de progresso.
  • Fotos Anuais: Registro de momentos especiais com localização GPS e seleção de humor.
  • Estatísticas Detalhadas: Dashboards com gráficos de distribuição de humor e streaks de consistência.
  • Ferramentas de Apoio: Exercícios de respiração guiados e acesso rápido a contatos de emergência.
  • Notificações: Lembretes personalizados e notificações via Firebase Cloud Messaging.

🏗️ Arquitetura e Tecnologias

O projeto adota o padrão MVVM (Model-View-ViewModel) Pragmático, estruturado para facilitar a manutenção por desenvolvedores solo:

Tecnologias Utilizadas:

  • Framework: Flutter (SDK ^3.10.3).
  • Backend & Auth: Supabase (Database & Realtime).
  • Notificações & Core: Firebase (Cloud Messaging).
  • Gerência de Estado: Provider.
  • Navegação: GoRouter.
  • Banco de Dados Local: Shared Preferences.

🛠️ Stack Tecnológica

Skills

Core

  • Flutter & Dart: Framework e linguagem base para o desenvolvimento cross-platform.
  • MVVM Pragmático: Padrão de projeto focado em produtividade solo, separando View, ViewModel e Model.

Backend & Persistência

  • Supabase: Gerenciamento de banco de dados em tempo real, autenticação e armazenamento.
  • Firebase Messaging: Implementação de notificações push e comunicação na nuvem.
  • Shared Preferences: Armazenamento local de estados persistentes do app.
  • Flutter Dotenv: Gestão de variáveis de ambiente e segurança de chaves.

Gerenciamento de Estado e Navegação

  • Provider: Gerenciamento de estado reativo e injeção de dependência.
  • Get It: Localizador de serviços para desacoplamento de classes.
  • GoRouter: Navegação declarativa e robusta baseada em rotas.

UI & Experiência do Usuário

  • FL Chart: Gráficos estatísticos de humor e desempenho.
  • Flutter Animate: Adição de efeitos visuais e micro-interações fluidas.
  • Flutter Map & Geolocator: Integração de mapas e serviços de localização GPS.
  • Table Calendar: Calendário interativo para visualização do histórico emocional.

Qualidade e Testes

  • Mocktail: Criação de mocks para testes de unidade e integração sem dependência de internet.
  • Flutter Test: Garantia de integridade da lógica de negócio nos ViewModels.

Estrutura de Camadas:

  1. Model: Representação imutável dos dados (ex: lib/backend/tables).
  2. ViewModel: Lógica de negócio e gestão de estado da página (ex: lib/ui/pages/.../model.dart).
  3. View: Interface de usuário reativa (ex: lib/ui/pages/.../page.dart).
  4. Service/Manager: Singletons para serviços globais como autenticação e notificações.

⚙️ Configuração do Ambiente

Pré-requisitos

  • Flutter SDK instalado.
  • Conta no Supabase e Firebase configurada.

Instalação

  1. Clone o repositório:
git clone https://github.com/Franklyn-R-Silva/sentimento_app.git
  1. Instale as dependências:
flutter pub get
  1. Configure as variáveis de ambiente:
  • Renomeie o arquivo .env.exemple para .env.
  • Preencha com suas credenciais do Supabase e Firebase.

🧪 Testes

A estratégia de testes prioriza a lógica de negócio e integrações críticas:

  • Ferramentas: flutter_test e mocktail para simulação de dependências.
  • Execução:
flutter test

🛠️ Estrutura de Pastas

  • lib/auth: Gestão de sessão e provedores de autenticação Supabase.
  • lib/backend: Definições de tabelas e serviços de dados.
  • lib/core: Utilidades, temas, constantes e componentes base.
  • lib/services: Serviços de notificação e toasts.
  • lib/ui/pages: Páginas organizadas por funcionalidade (Home, Stats, Journal, Goals, etc).
  • lib/ui/shared: Componentes de UI reutilizáveis.

✒️ Autor

Franklyn R. Silva

About

Gestão de humor, metas e bem-estar mental com Flutter & Supabase. Inclui gráficos de evolução, exercícios de respiração e integração com WhatsApp.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors