Skip to content

Um aplicativo inovador focado em auxiliar usuários no monitoramento e prevenção de recaídas, promovendo bem-estar e progresso contínuo.

Notifications You must be signed in to change notification settings

diegodromer/MindClear

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 

Repository files navigation

🧠 Mind Clear

Bem-vindo ao Mind Clear, um aplicativo inovador focado em ajudar usuários no combate a recaídas, com funcionalidades robustas e suporte à sincronização em tempo real. Este repositório está dividido em duas branches separadas, cada uma contendo um dos projetos principais:

  • Frontend: Localizado na branch mind-clear-frontend.
  • Backend: Localizado na branch mind-clear-backend.

📑 Índice


🚀 Proposta Tecnológica

O Mind Clear é um aplicativo mobile focado em ajudar pessoas a monitorar e evitar recaídas em seus processos de recuperação. Ele oferece:

  • Atualização em tempo real: Os dados são sincronizados automaticamente com o backend, permitindo que o progresso do usuário seja salvo constantemente.
  • Troca de dispositivos sem perda de progresso: Toda a lógica de persistência é gerenciada no backend, garantindo que o usuário possa continuar de onde parou, mesmo trocando de celular.
  • Acessibilidade e Usabilidade: O design foi pensado para ser intuitivo e acessível, permitindo que qualquer pessoa utilize o aplicativo com facilidade.

🛠️ Arquitetura do Projeto

O Mind Clear foi desenvolvido com uma arquitetura moderna e bem estruturada, garantindo escalabilidade, organização e facilidade de manutenção. A arquitetura está dividida em dois principais componentes: Frontend e Backend. Aqui está uma visão geral:

🔷 Frontend

  • Framework e Ferramentas: O frontend foi desenvolvido utilizando React Native, com o suporte do Expo para simplificar o processo de desenvolvimento e deploy. Isso garante compatibilidade entre plataformas (iOS e Android), além de acelerar o desenvolvimento.
  • Organização de Pastas:
    • src/components: Componentes reutilizáveis para a interface do usuário.
    • src/screens: Telas principais do aplicativo, como Login, Home e Configurações.
    • src/store: Lógica de gerenciamento de estado global utilizando Redux Toolkit.
    • src/utils: Funções auxiliares e manipulação de dados.
    • assets/: Recursos estáticos, como imagens e ícones.
  • Fluxo de Dados: O gerenciamento de estado global é feito com Redux Toolkit, garantindo que os dados sejam compartilhados de forma eficiente entre os componentes. As requisições ao backend são feitas utilizando Axios.

🟢 Backend

  • Framework e Ferramentas: O backend foi desenvolvido utilizando NestJS, um framework modular que facilita a criação de APIs escaláveis e organizadas.
  • Organização de Pastas:
    • src/users/modules: Cada funcionalidade do sistema (como autenticação, gerenciamento de usuários, etc.) é organizada em módulos separados.
    • prisma/schema.prisma: Definições de entidades do banco de dados utilizando Prisma ORM.
    • src/users/controllers: Controladores que gerenciam as requisições e respostas da API.
    • src/users/services: Serviços que contêm a lógica de negócio.
    • src/users/dtos: Objetos de transferência de dados (DTOs) para validação e manipulação de entradas.
  • Banco de Dados: Utilizamos SQLite durante o desenvolvimento e testes, pela sua simplicidade e portabilidade. Em produção, o sistema pode ser facilmente adaptado para outros bancos de dados, como PostgreSQL ou MySQL.

Comunicação entre Frontend e Backend

  • O frontend e o backend se comunicam por meio de REST APIs bem definidas e documentadas. Todas as requisições são feitas utilizando Axios no frontend, com respostas otimizadas e compactadas pelo backend utilizando Compression.

📚 Tecnologias Utilizadas

🔷 Frontend

🟢 Backend

  • NestJS: Framework modular e escalável para construção de APIs.
  • Prisma ORM: ORM avançado para manipulação de banco de dados.
  • SQLite: Banco de dados leve e eficiente.
  • JWT (jsonwebtoken): Autenticação baseada em tokens.
  • Bcrypt: Criptografia de senhas.
  • Class-validator: Validação de dados para DTOs.
  • Swagger: Documentação interativa da API.

✨ Funcionalidades

O Mind Clear foi projetado para ser uma ferramenta poderosa e intuitiva, ajudando usuários a manter o foco em suas jornadas de recuperação. Aqui estão algumas das principais funcionalidades que tornam o aplicativo único:

  • Monitoramento de Progresso: Acompanhe suas metas e veja seu progresso diário, semanal e mensal.
  • Sistema de Alertas Personalizados: Receba lembretes e notificações para manter-se no caminho certo, evitando recaídas.
  • Sincronização em Tempo Real: Todos os dados são atualizados automaticamente entre dispositivos.
  • Personalização: Ajuste o aplicativo de acordo com suas necessidades, incluindo temas, notificações e metas personalizadas.

📦 Instruções de Instalação

⚙️ Pré-requisitos

  • Node.js: Versão 16 ou superior.
  • Expo CLI: Para executar o frontend.
  • SQLite: Banco de dados para o backend.

📥 Clonando o Repositório

  1. Clone este repositório:
    git clone https://github.com/diegodromer/MindClear.git
    cd MindClear

🔧 Instalando e Executando o Backend

  1. Acesse a branch do backend:
    git checkout mind-clear-backend
  2. Instale as dependências:
    npm install
  3. Execute o servidor:
    npm run start:dev

📱 Instalando e Executando o Frontend

  1. Acesse a branch do frontend:
    git checkout mind-clear-frontend
  2. Instale as dependências:
    npm install
  3. Inicie o Expo:
    npx expo start  

🖼️ Telas do Aplicativo

Tela Inicial

Tela inicial

Tela de Login

Tela de Login

Tela Home

Tela Home

Tela de Definições

Tela de Definições

👥 Usuários de Teste e Visualização de Dados

O backend do Mind Clear já contém usuários prontos para testes. Esses usuários são gerenciados pelo Prisma ORM, que facilita a manipulação e visualização dos dados no banco de dados.

  • As credenciais (como e-mails e senhas) dos usuários de teste estão disponíveis no arquivo seed.ts, localizado na pasta de configuração do backend. Certifique-se de verificar este arquivo para acessar os dados necessários durante os testes.

🤔 Decisões Técnicas

Durante o desenvolvimento do Mind Clear, foram tomadas decisões técnicas estratégicas para garantir que o projeto fosse escalável, eficiente e fácil de manter. Aqui estão os principais pontos que guiaram nossas escolhas:

  • Arquitetura Modular: Backend com NestJS, permitindo separação de responsabilidades.
  • Prisma ORM: Para consultas rápidas e seguras ao banco de dados.
  • Segurança e Autenticação: Uso de JWT e Bcrypt.
  • Frontend com Expo: Para acelerar o desenvolvimento mobile.

📜 Licença

Este projeto está sob a licença MIT.

Releases

No releases published

Packages

No packages published