1

Pitch: Athena: um aplicativo local para monitoramento de estudos, sono, humor e localização

Estou desenvolvendo o Athena, um aplicativo Android focado em centralizar dados de estudo, organização pessoal e acompanhamento da rotina.

Repositório: https://github.com/juanoprogramador/Athena

A ideia surgiu de um problema simples: eu utilizo vários aplicativos diferentes, cada um responsável por uma pequena parte da minha rotina, mas nenhum deles me permite unificar os dados de uma forma que possibilite análises mais profundas posteriormente.

O Athena busca resolver isso oferecendo uma plataforma única, local e voltada para a preservação dos dados ao longo do tempo.


Contexto do desenvolvimento

Existe um detalhe que torna este projeto um pouco diferente:

Estou desenvolvendo todo o projeto pelo celular utilizando GitHub Codespaces, porque atualmente não tenho acesso a um computador.

Essa limitação me levou a investir muito mais tempo no planejamento e na arquitetura antes de sair implementando funcionalidades.

Por isso, o repositório já possui diversos documentos de apoio, incluindo:

  • README
  • Planejamento do Projeto
  • Especificação Técnica
  • DER (Diagrama Entidade-Relacionamento)
  • Wireframes
  • Relatórios de Progresso
  • Decisões Arquiteturais

A intenção é construir uma base sólida antes de expandir o projeto.


Filosofia do projeto

O Athena foi construído em torno de uma ideia simples:

Os dados dos estudantes pertencem aos estudantes.

O aplicativo não deve aprisionar informações.

Tudo o que for registrado deve permanecer acessível e exportável, permitindo que o usuário:

  • Analise os dados em planilhas
  • Utilize ferramentas de IA
  • Crie dashboards próprios
  • Desenvolva relatórios personalizados
  • Migre para outros sistemas quando desejar

O objetivo do Athena é organizar e preservar informações, não controlar o acesso a elas.


Funcionalidades planejadas

Estudos

A área de estudos é o núcleo do projeto.

Funcionalidades previstas:

  • Estrutura hierárquica ilimitada
  • Pastas e subpastas
  • Projetos
  • Sessões de estudo
  • Timer integrado
  • Registro manual de sessões
  • Tarefas e subtarefas
  • Conclusão e restauração de itens
  • Estatísticas e análises

Exemplo:

Vestibular
├── Matemática
│   ├── Matemática 1
│   ├── Matemática 2
│   └── Matemática 3
│
├── Física
└── Química

Um dos objetivos principais é permitir agregação de tempo em qualquer nível da árvore.

Por exemplo:

Matemática
├── M1 = 10h
├── M2 = 15h
└── M3 = 20h

Automaticamente:

Matemática = 45h

Essa é uma funcionalidade que eu não encontrei implementada da forma que gostaria nos aplicativos que conheço.


Sono

Fluxo simples:

  • Vou dormir
  • Acordei
  • Perdi o sono

O aplicativo calcula automaticamente:

  • Duração do sono
  • Média semanal
  • Média mensal

Humor

Registro rápido do estado emocional.

Suporte para:

  • Humor principal
  • Múltiplas tags
  • Observações opcionais

Exemplos de tags:

  • Motivado
  • Cansado
  • Ansioso
  • Estressado
  • Sonolento

Localização

Monitoramento automático por geofence.

Exemplos de locais:

  • Casa
  • Cursinho
  • Biblioteca

Eventos registrados:

07:02 Saiu de Casa

07:51 Chegou ao Cursinho

12:31 Saiu do Cursinho

13:10 Chegou em Casa

Agenda

Suporte para:

  • Datas de vencimento
  • Itens sem prazo definido
  • Próximas entregas
  • Itens atrasados

Exportação de dados

Formatos planejados:

  • Excel (.xlsx)
  • CSV
  • Backup completo do banco SQLite

Arquitetura

Stack atual:

  • Flutter
  • Riverpod
  • GoRouter
  • Drift
  • SQLite
  • Geolocator
  • fl_chart

O banco de dados está sendo planejado com foco em migrações e compatibilidade de longo prazo.

Uma exigência importante do projeto é que atualizações futuras não destruam o histórico acumulado pelo usuário.


Progresso atual

A fundação do projeto já está implementada.

Concluído até agora:

  • Projeto Flutter criado
  • Riverpod integrado
  • GoRouter configurado
  • Drift configurado
  • SQLite configurado
  • Tabela nodes criada
  • Tabela study_sessions criada
  • Modelo da árvore de estudos implementado
  • Repositório de nós implementado
  • Criação e edição de nós
  • Conclusão e restauração de nós
  • Implementação inicial do timer de estudo
  • Suporte para sessões de estudo ativas

Atualmente o aplicativo já consegue realizar o fluxo básico de criação e gerenciamento da árvore de estudos e registrar sessões de estudo.


Próximos passos

Prioridade atual:

  • Histórico de sessões por nó
  • Notas em sessões de estudo
  • Melhor visualização da sessão ativa
  • Relatórios de tempo acumulado
  • Tarefas e subtarefas
  • Filtros para itens ativos, concluídos e arquivados
  • Visualização de prazos
  • Tela de estatísticas

Próximas fases:

  • Módulo de sono
  • Módulo de humor
  • Módulo de localização
  • Exportação de dados
  • Estratégia de migração do banco
  • Melhorias de UX

Gostaria de ouvir opiniões

Como o projeto ainda está em uma fase relativamente inicial, eu gostaria muito de ouvir opiniões de pessoas com mais experiência em Flutter do que eu.

Principalmente sobre:

  • Modelagem de estruturas hierárquicas
  • Estratégias de migração em SQLite
  • Localização em segundo plano no Android
  • Exportação para Excel
  • Arquitetura Flutter
  • Organização de interfaces com muitas camadas hierárquicas
  • Qualquer decisão que possa evitar dívida técnica no futuro

Contribuições

Se alguém tiver interesse em revisar a arquitetura, sugerir melhorias ou até mesmo abrir um Pull Request, eu ficaria muito feliz.

Como estou desenvolvendo tudo pelo celular através do GitHub Codespaces, qualquer orientação de desenvolvedores mais experientes pode ter um impacto enorme na qualidade do projeto.

Mesmo sugestões pequenas já são extremamente bem-vindas.


Repositório

GitHub: https://github.com/juanoprogramador/Athena

O projeto ainda está no começo, mas a proposta é clara:

Construir uma plataforma local, extensível e voltada para estudantes, permitindo que eles acompanhem e analisem a própria rotina ao longo dos anos, mantendo total controle sobre seus dados.

Carregando publicação patrocinada...