Skip to content

Latest commit

 

History

History
128 lines (84 loc) · 5.64 KB

Planejamento.md

File metadata and controls

128 lines (84 loc) · 5.64 KB

Planejamento Completo do Projeto "Planify"

1. Objetivo do Projeto

Desenvolver um aplicativo chamado "Planify" para gerenciar rotinas, hábitos e hobbies de forma personalizada, com funcionalidades offline, gamificação, sincronização na nuvem e integração com calendários, visando motivar os usuários na organização de suas atividades diárias.

2. Requisitos do Projeto

2.1 Requisitos Funcionais

  1. Gerenciamento de Rotinas, Hábitos e Hobbies

    • RF01: Permitir ao usuário criar, editar e excluir rotinas, hábitos e hobbies.
    • RF02: Definir frequência (diária, semanal, mensal, anual) para cada atividade.
    • RF03: Visualizar o progresso em gráficos e relatórios semanais/mensais.
    • RF04: Organizar atividades por categorias (trabalho, pessoal, fitness, etc.).
  2. Gamificação

    • RF05: Implementar um sistema de pontos e recompensas por atividades concluídas.
    • RF06: Criar níveis e conquistas para motivar o uso contínuo.
    • RF07: Adicionar desafios semanais ou mensais com recompensas especiais.
  3. Notificações

    • RF08: Enviar lembretes para atividades programadas.
    • RF09: Permitir personalização das notificações (som, repetição, etc.).
  4. Funcionalidade Offline

    • RF10: Todas as funcionalidades principais devem estar disponíveis offline.
    • RF11: Salvar dados localmente usando SQLite através do Prisma.
  5. Sincronização na Nuvem

    • RF12: Sincronizar dados do app com um back-end quando o usuário estiver online.
    • RF13: Atualizar automaticamente as informações na nuvem sem intervenção do usuário.
  6. Integração com Calendário

    • RF14: Exportar rotinas e eventos para Google Calendar, Outlook, ou Apple Calendar.
    • RF15: Importar eventos do calendário do usuário para o app.
  7. Interface de Usuário Intuitiva

    • RF16: Tela inicial com visão geral do progresso diário.
    • RF17: Navegação simples e clara entre diferentes seções do app.
    • RF18: Suporte a temas claro e escuro.

2.2 Requisitos Não Funcionais

  1. Performance

    • RNF01: A interface deve ser responsiva com tempos de resposta inferiores a 300ms para ações comuns.
    • RNF02: A sincronização deve ser eficiente, minimizando o uso de recursos de rede.
  2. Usabilidade

    • RNF03: A interface deve ser intuitiva, com feedback visual claro para as ações do usuário.
    • RNF04: Deve suportar diferentes resoluções de tela, especialmente para mobile e desktop.
  3. Segurança

    • RNF05: Garantir criptografia de dados sensíveis armazenados localmente.
    • RNF06: Autenticação segura para a sincronização na nuvem.
  4. Escalabilidade

    • RNF07: O sistema deve permitir a adição fácil de novas funcionalidades.
    • RNF08: Estrutura modular para suportar futuras expansões, como integração com outras APIs.
  5. Portabilidade

    • RNF09: O app deve funcionar tanto em ambientes de desktop (via Electron) quanto em dispositivos móveis (via React Native).
    • RNF10: Consistência na experiência do usuário entre diferentes plataformas.
  6. Confiabilidade

    • RNF11: O app deve funcionar sem falhas mesmo sem conexão com a internet.
    • RNF12: A sincronização deve lidar com conflitos de dados de forma transparente.

3. Estrutura e Arquitetura do Projeto

  1. Front-end (Electron e React Native)

    • Uso de React para construção da interface.
    • Separação das páginas em componentes reutilizáveis (Dashboard, Configurações, Estatísticas).
    • Integração com a API local e futura API de sincronização.
  2. Back-end Local (Offline)

    • Express.js configurado como uma API local no Electron para gerenciamento dos dados.
    • Uso do Prisma para interagir com o SQLite.
    • Armazenamento local dos dados de atividades, pontuação e configurações do usuário.
  3. Back-end para Sincronização (Futuro)

    • Servidor Express.js com banco de dados em nuvem (PostgreSQL ou MongoDB).
    • APIs REST para sincronização de dados com autenticação.
    • Estrutura para gerenciar contas de usuários e sincronizar dados com o banco local.

4. Etapas de Desenvolvimento

Fase 1: Desenvolvimento Offline (MVP)

  1. Configuração do ambiente com Electron e React Native.
  2. Desenvolvimento do banco de dados local usando Prisma e SQLite.
  3. Implementação de funcionalidades básicas de CRUD para rotinas, hábitos e hobbies.
  4. Gamificação inicial (pontos e níveis).
  5. Testes unitários e ajustes baseados no feedback.

Fase 2: Sincronização e Integração com Calendário

  1. Criação de APIs no back-end para sincronização.
  2. Configuração de integração com Google Calendar e outras APIs de calendário.
  3. Sincronização de dados entre o app offline e o servidor.
  4. Implementação de autenticação para sincronização segura.

Fase 3: Expansão e Melhorias

  1. Expansão do sistema de gamificação com desafios e recompensas.
  2. Refinamento da interface com base no feedback dos usuários.
  3. Melhorias de desempenho e segurança.
  4. Implementação de funcionalidades avançadas, como relatórios detalhados e integrações adicionais.

5. Testes e Manutenção

  • Testes Funcionais: Garantir que todas as funcionalidades principais estejam operando corretamente.
  • Testes de Performance: Avaliar o desempenho do app, especialmente durante a sincronização.
  • Testes de Usabilidade: Coletar feedback de usuários reais para ajustar a experiência.
  • Manutenção: Atualizações regulares para corrigir bugs e melhorar a experiência.