📱 Sobre o Projeto
O Solon é um aplicativo de notas inteligentes que combina o poder da IA com uma interface móvel moderna. O aplicativo oferece uma experiência intuitiva para criar, organizar e gerenciar notas, com recursos avançados como reconhecimento de voz, processamento de texto baseado em IA e sincronização em nuvem.
🚀 Visão Geral da Arquitetura
O projeto é estruturado em três partes principais:
Frontend (Mobile)
- Desenvolvido com React Native e Expo
- Interface moderna com TailwindCSS
- Abordagem offline-first com AsyncStorage
- Reconhecimento e transcrição de voz
- Processamento de texto baseado em IA
Backend (API)
- Framework NestJS
- Integração com Firebase para autenticação e banco de dados
- Serviços do Google Cloud para recursos de IA
- Arquitetura de API RESTful
Core (Compartilhado)
- Tipos e interfaces compartilhados
- Utilitários e constantes comuns
- Lógica de negócios multiplataforma
🛠️ Tecnologias
Frontend
- Expo - Plataforma para desenvolvimento de apps React Native
- React Native - Framework de desenvolvimento móvel
- TypeScript - Linguagem de programação tipada
- TailwindCSS - Framework CSS para estilização
- React Navigation - Navegação entre telas
- AsyncStorage - Armazenamento local
- React Native Voice - Reconhecimento de voz
- Expo Router - Roteamento baseado em arquivos
Backend
- NestJS - Framework Node.js
- TypeScript - Linguagem de programação tipada
- Firebase - Plataforma de desenvolvimento
- Firestore - Banco de dados NoSQL
- Firebase Auth - Autenticação de usuários
- Google Cloud - Serviços em nuvem
- Google Speech-to-Text - API de transcrição de áudio
- Google Generative AI - Modelo Gemini 1.5 Flash
- Jest - Framework de testes
Core
- TypeScript - Tipos e interfaces compartilhados
- Jest - Utilitários de teste
🛠️ Principais Recursos
📝 Edição de Notas
- Suporte a reconhecimento de voz
- Tags e marcadores para buscas precisas
- Sincronização em tempo real
🗂️ Organização Inteligente
- Resumo: Gera resumos concisos mantendo as ideias principais
- Correção de Texto: Corrige automaticamente erros gramaticais e ortográficos
- Extração de Tópicos: Identifica e extrai os principais tópicos das notas
- Formalização de Texto: Transforma o texto para um tom mais formal quando necessário
📋 Mapeamento de Telas
Autenticação
- Autenticação segura com Firebase Auth
- Login com email e senha
- Processo de registro simples
Recursos Principais
- Dashboard com notas recentes
- Funcionalidade de busca inteligente
- Arquivo para organizar notas
- Perfil do usuário e configurações
🚀 Estrutura do Projeto
solon/
├── frontend/ # Aplicativo móvel
│ ├── app/ # Rotas e páginas principais
│ ├── components/ # Componentes reutilizáveis
│ ├── assets/ # Recursos estáticos
│ ├── context/ # Contextos React
│ ├── utils/ # Funções utilitárias
│ ├── constants/ # Constantes e configurações
│ └── functions/ # Funções de negócios
│
├── backend/ # Servidor API
│ ├── src/
│ │ ├── annotations/ # Módulo de notas
│ │ ├── auth/ # Autenticação
│ │ ├── config/ # Configurações globais
│ │ ├── firebase/ # Integração Firebase
│ │ ├── gemini/ # Processamento de IA
│ │ ├── roles/ # Gerenciamento de funções
│ │ ├── transcription/ # Serviços de voz
│ │ └── users/ # Gerenciamento de usuários
│
└── core/ # Código compartilhado
└── src/ # Tipos e utilitários compartilhados
🚀 Começando
Pré-requisitos
- Node.js (versão 18 ou superior)
- npm ou yarn
- Expo CLI
- Conta Firebase
- Conta Google Cloud
- Emulador Android/iOS ou dispositivo físico
Instalação
- Clone o repositório:
git clone [URL_DO_REPOSITORIO] cd solon
- Instale as dependências para cada parte:
# Frontend cd frontend npm install # Backend cd ../backend npm install # Core cd ../core npm install
- Configure as variáveis de ambiente:
# Backend .env APP_CREDENTIALS='{credenciais-google-cloud}' API_KEY='sua-chave-api' PROJECT_ID='seu-id-de-projeto' PROJECT_LOCATION='sua-localização' FB_CREDENTIALS='{credenciais-firebase}' FB_API_KEY='sua-chave-api-firebase'
- Inicie os servidores de desenvolvimento:
# Backend cd backend npm run start:dev # Frontend cd frontend npm start
🤝 Contribuindo
Contribuições são bem-vindas! Por favor, siga estes passos:
- Faça um fork do projeto
- Crie sua branch de feature (
git checkout -b feature/FeatureIncrivel) - Faça commit das suas alterações (
git commit -m 'Adiciona uma FeatureIncrivel') - Faça push para a branch (
git push origin feature/FeatureIncrivel) - Abra um Pull Request
📄 Licença
Este projeto está licenciado sob a Licença MIT. Veja o arquivo LICENSE para mais detalhes.











