Skip to content

ioott/InsightPop

Repository files navigation

InsightPop - Share and Relax

InsightPop Logo

🇧🇷 Português | 🇺🇸 English


🇧🇷 Português

🚀 Visão Geral

O InsightPop é um assistente de inteligência ativa que transforma fluxos de informação desestruturada (WhatsApp, emails, prints de tela, fotos, PDFs e áudios) em dados organizados e ações futuras. O app utiliza inteligência adaptativa no onboarding, onde a IA ajusta suas perguntas conforme as respostas que recebe e a realidade específica de cada usuário. Por isso, ele sabe o que é importante pra você e, quando processa o conteúdo compartilhado, identifica dados relevantes, gera insights personalizados e notificações. Útil tanto para o microempreendedor que precisa gerir leads, clientes e contratos, quanto para o indivíduo que deseja um “segundo cérebro” para não esquecer detalhes importantes da vida pessoal e familiar, sua inteligência preditiva é capaz de sugerir o próximo passo antes mesmo de você pensar nele, te ajudando a estar sempre um passo à frente.

Inteligência Ativa ➔ Adaptativa ➔ Preditiva

O projeto foi arquitetado como um motor agnóstico capaz de se adaptar a qualquer nicho de mercado através de uma estrutura de atributos dinâmicos. Ele cria "caixinhas" novas dependendo do que o usuário precisa.

📺 Demonstração

Documentação Completa

🗂️ Índice

O Problema: Excesso de Informação, Falta de Tempo e o Colapso da Organização Pessoal na Vida Moderna

Vivemos no auge da comunicação mas o cérebro humano não consegue processar e organizar a quantidade de informações que recebe:

  • Esquecimento de Leads: Perda de faturamento por não oferecer serviços no momento certo (ex: buffet para aniversário de 1 ano de um cliente que fez o chá de bebê meses atrás, retomar contato com um cliente que fez uma pausa nas negociações por motivo de viagem, etc).
  • Sobrecarga Pessoal: Detalhes de consultas médicas, compromissos acadêmicos, pedidos de familiares, calendário escolar ou planos futuros que morrem no histórico das conversas e prints na galeria do celular.
  • Fricção de Cadastro: A resistência em abrir um app várias vezes para cadastrar eventos, tarefas e lembretes, impede o registro de dados, por cansaço, procrastinação ou desorganização. Se a entrada não for automática e intuitiva, a informação é perdida.

A Solução: InsightPop - Seu Segundo Cérebro

A grande vantagem competitiva é a autonomia total do ecossistema: o usuário não precisa criar eventos, tarefas ou lembretes manualmente em uma agenda. O InsightPop é um app “Share-First” (focado no compartilhamento) que funciona assim:

  1. Entrada Versátil: O usuário compartilha diretamente para o app, um arquivo ZIP (ex: conversa exportada do Whatsapp), PDF (ex: o calendário escolar ou um contrato de serviço), um print (ex: um convite de aniversário), uma foto (ex: um aviso com informações importantes ou um documento), um áudio (ex: algo importante que você gravou pra não esquecer) ou um texto copiado (ex: de um e-mail ou uma página da internet).
  2. Processamento Multi-Modal: A IA identifica identidades, fatos relevantes, preferências e intenções futuras, considerando as regras definidas por ela na criação da conta, de acordo com o perfil que ela configurou junto com você, e as regras que você criou, que fazem com que ela saiba o que é importante pra você. Extrai tudo que é relevante no arquivo compartilhado e infere as ações importantes que você precisa realizar, com as respectivas datas (ex: lembrar da reunião da escola, de cobrar a 2ª parcela do pagamento do cliente ou de confirmar presença na festa de aniversário até a data limite).
  3. Organização por Contextos: Separação clara entre vida profissional e pessoal através de Workspaces isolados.
  4. Lembretes Proativos: Notificações para ações futuras, baseadas em "gatilhos" inferidos, eliminando a necessidade de agendamento manual.

Diferenciais Tecnológicos

  • Onboarding Conversacional (IA): O aplicativo entende quem é o usuário através de um bate-papo natural, definindo automaticamente regras e prioridades antes mesmo do primeiro uso.
  • Arquitetura de Contextos & Workspaces Isolados: Gestão flexível de diferentes áreas da vida em um único banco de dados, sem misturar informações.
  • Dicionário de Atributos Dinâmicos (EAV no NoSQL): Base de dados flexível que se adapta às necessidades de cada usuário, sem esquemas fixos.
  • Aprendizado por Confirmação: A IA sugere "gavetas" (atributos/regras) aguardando validação humana.
  • Consolidação de Memórias: Sistema que detecta duplicidades e sugere a unificação de registros fragmentados em um único histórico manual revisado pelo usuário.
  • Motor de Regras Dinâmicas: A IA aprende com regras personalizadas definidas pelo usuário para inferir oportunidades e ações futuras.
  • Leitura de Imagens (OCR): Capacidade de interpretar prints de conversas para extração imediata de dados.

Tecnologias Utilizadas (Stack)

  • Backend: Python com FastAPI (rodando em Docker)
  • Segurança: Autenticação robusta com Bcrypt.
  • Arquitetura: Monolito Modular em Camadas (Repository Pattern)
  • Banco de Dados: MongoDB (rodando em Docker)
  • Mobile: React Native
  • Testes: Suítes completas de testes unitários e de integração (Pytest e Jest).
  • Inteligência Artificial: Google Gemini
  • Notificações: Firebase Cloud Messaging (FCM) (Pós-MVP)

Como Rodar Localmente (Setup Inicial)

  1. Pré-requisitos: Certifique-se de ter o Docker instalado e em execução em sua máquina.

  2. Clonar o repositório:

    git clone https://github.com/ioott/insightpop.git
    cd insightpop
  3. Configurar o ambiente Docker:

    docker-compose up -d --build

    Isso irá construir a imagem do backend e iniciar os contêineres do backend e do MongoDB em segundo plano.

  4. Verificar o Backend:

    curl http://localhost:8000

    Você deverá ver: {"message": "InsightPop Backend is running!"}

  5. Acesso Externo (Mobile): Para acessar o app no celular fora da rede do servidor, utilize o ngrok:

    ngrok http --domain=tipsy-roomily-ricky.ngrok-free.dev 8000

Roadmap (Status de Desenvolvimento)

✅ Fase 1: Backend e Core da Inteligência (Concluído)

  • IA Resiliente e Multi-Key: Lógica de ranqueamento dinâmico, failover de modelos e suporte nativo à rotação de múltiplas chaves de API (evitando limites de cota). Nota: Este fluxo será retirado quando o app entrar em produção.
  • Endpoints da API: CRUD completo para Insights, Memórias, Regras de Usuário e Gestão de perfil.
  • Autenticação Segura: Criação de conta e login com criptografia bcrypt.
  • Banco de Dados: MongoDB com estrutura flexível e escalável.
  • Processamento Multi-Modal: Suporte para Texto, Arquivos ZIP (Histórico WhatsApp), PDF e Imagens.
  • Consolidação de Dados: Lógica inteligente para atualizar registros existentes em vez de duplicar.
  • Padronização e Testes: Código 100% aderente ao PEP 8 e internacionalização estrutural. Suíte de testes unitários cobrindo todos os fluxos críticos.

✅ Fase 2: Aplicativo Mobile e UX (Concluído)

  • Estrutura do App: Criação do app React Native (Android) com TypeScript e Tipagem Forte.
  • Onboarding com IA: Fluxo de chat interativo estilo "entrevista" para a IA decidir as perguntas necessárias de acordo com as respostas fornecidas, traçar o perfil do usuário e sugerir regras automáticas logo na criação da conta.
  • Navegação Estável: Sistema baseado em estado com Interceptor de segurança para dados não salvos.
  • Design System: Paleta de cores centralizada, semântica e zero CSS inline. Interface dos formulários 100% padronizada.
  • Telas Principais:
    • Login & Cadastro (AuthScreen/ProfileReviewScreen): Acesso com validações estritas de e-mail, telefone e nome.
    • Dashboard (HomeScreen): Listagem de insights com busca, filtro por workspace, pull-to-refresh e Unificação Manual de memórias.
    • Captura (UploadScreen): Tela para upload de arquivos com feedback de processamento.
    • Revisão (ConfirmScreen): Interface para ajuste fino dos dados extraídos pela IA.
    • Gestão de Regras (RulesScreen): CRUD completo para as regras que guiam a IA, incluindo aceitação de sugestões automáticas.
  • UI/UX: Design coeso com fontes customizadas e componentes reutilizáveis.
  • Feedback Unificado: Componente global de modais para comunicação clara com o usuário.
  • Testes Automatizados: Testes com Jest e Testing Library garantindo o funcionamento do Frontend (fluxos de Login e Profile).
  • Notificações Inteligentes: Push notifications pelo app via Notifee, permitindo adiar (snooze) ou excluir um insight diretamente da notificação.
  • Segurança e LGPD: Recuperação de senha (com e-mail) e Deep Linking para redefinição. Exclusão permanente de conta e dados em cascata.

✅ Fase 3: Segurança, Escalabilidade e Clean Architecture (Concluído)

  • Arquitetura SOLID (Backend): Implementação de Clean Architecture separando Controller, Service e Repository, garantindo baixo acoplamento e permitindo testes isolados de regras de negócio.
  • Segurança e Proteção de Cota (API): Rate Limiting integrado (slowapi) para mitigação de ataques DDoS e economia de cotas da IA, aliado a um middleware CORS estrito e validação dinâmica de ambiente (Pydantic Settings).
  • Observabilidade e Resiliência: Substituição de saídas padrão por um sistema de Logging profissional estruturado e tratamento global de exceções com respostas HTTP padronizadas.
  • Estado Global Seguro (Mobile): Adoção do Zustand para gestão de estado centralizada, previsível e livre de prop-drilling, melhorando a escalabilidade e a performance de renderização.
  • Confiabilidade de UX (Mobile): Integração de formulários tipados de ponta a ponta com React Hook Form e Zod, garantindo validação síncrona sem overhead, e unificação do motor de rede nativo com instância protegida do axios.

🚀 Fase 4: Engajamento, Evolução da IA e Escalabilidade (Em Desenvolvimento)

  • Feedback Loop (IA): O modelo deverá comparar as sugestões geradas com o que o usuário efetivamente salvou/editou para aprender com o comportamento da pessoa.
  • Avaliação do App (Rating): Permitir que o usuário avalie (estrelas) a qualidade dos dados extraídos e insights sugeridos.
  • Recorrências de Notificação (Cron): IA sugere e usuário define datas de repetição (diário, semanal, anual) com UI de Picker/Dropdown.
  • Busca Semântica Avançada: Filtros naturais (ex: "clientes que têm filhos" ou "origem google").
  • Novas Funcionalidades Mobile: Substituir navegação manual por @react-navigation/native.
  • Multimídia: Adicionar processamento nativo de áudio (Speech-to-Text).
  • Otimização de UI: Carregar memórias sob demanda (Infinite Scroll) e "Theme Provider" (preparação para Dark Mode).
  • Segurança: Confirmação de email e telefone com código (OTP / 2FA).
  • Jurídico: Documentos de conformidade com LGPD, Termos de Uso e Políticas de Privacidade.
  • Crescimento: Integração via API à agenda do Google e tela de assinatura (Paywall).

🇺🇸 English

🚀 Overview

InsightPop is an active intelligence assistant that transforms unstructured information streams, including WhatsApp messages, emails, screenshots, photos, PDFs, and voice recordings, into organized data and future actions.

The app leverages adaptive intelligence during onboarding, where the AI dynamically adjusts its questions based on the user's responses and unique circumstances. As a result, it learns what matters to each user and, when processing shared content, identifies relevant information, generates personalized insights, and delivers timely notifications.

It is valuable both for small business owners, who need to manage leads, customers, and contracts, and for individual users seeking a "second brain" to avoid forgetting important personal and family details. Its predictive intelligence can recommend the next best action before the user even thinks about it, helping them stay one step ahead.

Active Intelligence → Adaptive Intelligence → Predictive Intelligence

The project has been architected as an agnostic engine capable of adapting to virtually any market niche through a dynamic attribute framework. Rather than relying on a fixed data model, it creates new "containers" or information categories on demand, according to each user's specific needs.

📺 Demonstration

Full Documentation

🗂️ Index

The Problem: Information Overload, Lack of Time, and the Collapse of Personal Organization in Modern Life

We live at the peak of digital communication, yet the human brain is unable to process and organize the sheer volume of information it receives.

  • Lost Leads: Revenue is lost because services are not offered at the right moment (e.g., offering a birthday party package for a client whose baby shower was organized months earlier, or reconnecting with a customer who paused negotiations due to travel).
  • Personal Overload: Medical appointments, academic commitments, family requests, school calendars, and future plans end up buried in chat histories and screenshots stored in the phone's gallery.
  • Data Entry Friction: The need to repeatedly open an app to manually create events, tasks, and reminders discourages users from recording information due to fatigue, procrastination, or disorganization. If data entry is not automatic and intuitive, valuable information is lost.

The Solution: InsightPop, Your Second Brain

The platform's greatest competitive advantage is its fully autonomous ecosystem: users never need to manually create events, tasks, or reminders in a calendar. InsightPop is a Share-First application that works as follows:

  1. Versatile Input: Users simply share content directly with the app, including a ZIP file (e.g., an exported WhatsApp conversation), a PDF (e.g., a school calendar or service contract), a screenshot (e.g., a birthday invitation), a photo (e.g., an important notice or document), an audio recording (e.g., something important recorded to avoid forgetting), or copied text (e.g., from an email or web page).
  2. Multimodal Processing: The AI identifies people, relevant facts, preferences, and future intentions, taking into account the rules it established during account creation based on the profile it built together with the user, as well as the custom rules defined by the user, which enable it to understand what truly matters to them. It extracts all relevant information from the shared content and infers the important actions that need to be taken, along with their corresponding dates (e.g., remembering a school meeting, collecting the second installment of a client's payment, or confirming attendance at a birthday party before the RSVP deadline).
  3. Context-Based Organization: A clear separation between professional and personal life through isolated Workspaces.
  4. Proactive Reminders: Notifications for future actions based on inferred triggers, eliminating the need for manual scheduling.

Technological Differentiators

  • Conversational AI Onboarding: The application learns who the user is through a natural conversation, automatically defining priorities and rules before the first use.
  • Context Architecture & Isolated Workspaces: Flexible management of different areas of life within a single database without mixing information.
  • Dynamic Attribute Dictionary (EAV on NoSQL): A flexible data model that adapts to each user's needs instead of relying on fixed schemas.
  • Confirmation-Based Learning: The AI proposes new "drawers" (attributes and rules) while awaiting human validation.
  • Memory Consolidation: A system that detects duplicate information and suggests merging fragmented records into a single user-reviewed history.
  • Dynamic Rules Engine: The AI learns from user-defined custom rules to infer future opportunities and recommended actions.
  • Image Reading (OCR): The ability to interpret screenshots and images to extract relevant information automatically.

Technology Stack

  • Backend: Python with FastAPI (running in Docker)
  • Security: Robust authentication powered by Bcrypt.
  • Architecture: Layered Modular Monolith (Repository Pattern)
  • Database: MongoDB (running in Docker)
  • Mobile: React Native
  • Testing: Comprehensive unit and integration test suites (Pytest and Jest).
  • Artificial Intelligence: Google Gemini
  • Notifications: Firebase Cloud Messaging (FCM) (Post-MVP)

How to Run Locally (Initial Setup)

  1. Prerequisites: Make sure that Docker is installed and running on the machine.

  2. Clone the repository:

    git clone https://github.com/ioott/insightpop.git
    cd insightpop
  3. Set up the Docker environment:

    docker-compose up -d --build

    This command will build the backend image and start both the backend and MongoDB containers in the background.

  4. Verify the Backend:

    curl http://localhost:8000

    The expected response is: {"message": "InsightPop Backend is running!"}

  5. External Access (Mobile): To access the app from a mobile device outside the server's local network, use ngrok:

    ngrok http --domain=tipsy-roomily-ricky.ngrok-free.dev 8000

Roadmap (Development Status)

✅ Phase 1: Backend and AI Core (Completed)

  • Resilient Multi-Key AI: Dynamic model ranking logic, model failover, and native support for rotating multiple API keys to avoid quota limits. Note: This workflow will be removed once the application enters production.
  • API Endpoints: Full CRUD implementation for Insights, Memories, User Rules, and Profile Management.
  • Secure Authentication: Account creation and login protected with bcrypt encryption.
  • Database: MongoDB with a flexible and scalable structure.
  • Multimodal Processing: Support for Text, ZIP files (WhatsApp chat history), PDFs, and Images.
  • Data Consolidation: Intelligent logic that updates existing records instead of creating duplicates.
  • Standardization and Testing: Codebase fully compliant with PEP 8 and structurally internationalized. Comprehensive unit test suite covering all critical workflows.

✅ Phase 2: Mobile Application and UX (Completed)

  • App Foundation: React Native (Android) application built with TypeScript and strong typing.

  • AI-Powered Onboarding: Interactive interview-style chat flow in which the AI determines the necessary questions based on previous answers, builds the user's profile, and suggests automatic rules during account creation.

  • Stable Navigation: State-driven navigation system with a safety interceptor to prevent accidental loss of unsaved data.

  • Design System: Centralized semantic color palette with zero inline CSS. Form interfaces are fully standardized.

  • Core Screens:

    • Login & Registration (AuthScreen/ProfileReviewScreen): Access protected by strict validation of email addresses, phone numbers, and names.
    • Dashboard (HomeScreen): Insight listing with search, workspace filtering, pull-to-refresh, and manual memory consolidation.
    • Capture (UploadScreen): File upload interface with processing feedback.
    • Review (ConfirmScreen): Fine-tuning interface for AI-extracted data before confirmation.
    • Rule Management (RulesScreen): Full CRUD interface for the rules that guide the AI, including acceptance of automatically suggested rules.
  • UI/UX: Cohesive design featuring custom fonts and reusable components.

  • Unified Feedback: Global modal component providing clear and consistent communication with users.

  • Automated Testing: Jest and Testing Library test suites ensuring frontend reliability, including Login and Profile flows.

  • Smart Notifications: Push notifications powered by Notifee, allowing users to snooze or delete an insight directly from the notification.

  • Security and GDPR Compliance: Password recovery via email with Deep Linking support for resets, plus permanent account and cascading data deletion.

✅ Phase 3: Security, Scalability, and Clean Architecture (Completed)

  • SOLID Architecture (Backend): Clean Architecture implementation separating Controllers, Services, and Repositories to ensure low coupling and enable isolated business logic testing.
  • Security and API Quota Protection: Integrated rate limiting (slowapi) to mitigate DDoS attacks and reduce AI quota consumption, combined with strict CORS middleware and dynamic environment validation using Pydantic Settings.
  • Observability and Resilience: Replacement of standard output with a structured professional logging system and global exception handling that provides standardized HTTP responses.
  • Secure Global State (Mobile): Adoption of Zustand for centralized, predictable state management without prop drilling, improving scalability and rendering performance.
  • Reliable UX (Mobile): End-to-end typed forms integrated with React Hook Form and Zod, providing synchronous validation with minimal overhead, along with a unified networking layer built around a protected axios instance.

🚀 Phase 4: Engagement, AI Evolution, and Scalability (In Development)

  • AI Feedback Loop: The model should compare generated suggestions with what the user actually saved/edited to learn from their behavior.
  • App Rating: Allow users to rate (stars) the quality of extracted data and suggested insights.
  • Recurring Notifications (Cron): AI suggests, and users define repetition dates (daily, weekly, yearly) with a Picker/Dropdown UI.
  • Advanced Semantic Search: Natural filters (e.g., "clients with children" or "Google leads").
  • New Mobile Features: Replace manual navigation with @react-navigation/native.
  • Multimedia: Add native audio processing (Speech-to-Text).
  • UI Optimization: Load memories on demand (Infinite Scroll) and "Theme Provider" (preparing for Dark Mode).
  • Security: Email and phone confirmation with code (OTP / 2FA).
  • Legal: Compliance documents for GDPR/LGPD, Terms of Use, and Privacy Policies.
  • Growth: Integration via API with Google Calendar and subscription screen (Paywall).

Contato / Contact

Desenvolvido por / Developed by Vania Ioott. Linkedin | Whatsapp

About

Assistente de inteligência ativa que transforma fluxos de informação desestruturada (WhatsApp, emails, prints de tela, fotos, PDFs e áudios) em dados organizados e ações futuras. Utiliza inteligência adaptativa no onboarding, processa o conteúdo que recebe, identifica dados relevantes, gera insights personalizados e notificações.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors