Um aplicativo de anotações completo similar ao Evernote, mas com hierarquia de 4 níveis (Spaces > Stacks > Notebooks > Notes) e integração com modelos de IA para edição assistida de texto.
Organize qualquer tipo de conteúdo: Medicina, Tecnologia, Idiomas, Projetos Pessoais, Fitness, Estudos, Trabalho, etc!
# 1. Instalar dependências
cd backend && npm install
cd ../frontend && npm install
# 2. Iniciar backend (terminal 1)
cd backend && npm run dev
# 3. Iniciar frontend (terminal 2)
cd frontend && npm run dev
# 4. Acessar
# Frontend: http://localhost:3000
# Backend: http://localhost:3001
# 5. (Opcional) Popular com dados de exemplo
./scripts/helper.sh populate_test_data- Hierarquia de 4 níveis: Spaces → Stacks → Notebooks → Notes
- Crie quantos Spaces quiser (Medicina, Tecnologia, Idiomas, etc.)
- Organize seus conteúdos em Stacks (categorias dentro de cada Space)
- Subdivida em Notebooks (tópicos específicos)
- Adicione Notes (suas anotações)
- Múltiplos cadernos: Não limitado a um assunto - organize tudo em um só lugar!
- Editor rico: Suporte a formatação de texto, tabelas, listas, imagens, código
- Diagramas Mermaid: Renderização automática de diagramas com linhas corretas
- Sistema de Fontes (similar ao NotebookLM):
- Upload de PDFs (artigos, livros, apostilas)
- Extração de conteúdo web
- Busca e importação do PubMed
- Busca e importação do SciELO
- IA usa fontes automaticamente como contexto
- Integração com IA:
- OpenAI (GPT-4, GPT-3.5)
- Anthropic Claude (com Extended Thinking)
- Google Gemini
- llama.cpp (modelos locais)
- Chatbox integrado: Edite o texto atual ou gere novo conteúdo usando IA
- Auto-save: Salve suas notas manualmente
- Interface limpa: Design inspirado no Evernote
/
├── backend/ # API REST (Node.js + Express + SQLite)
│ ├── src/
│ │ ├── db/ # Configuração do banco de dados
│ │ ├── models/ # Models (Space, Stack, Notebook, Note)
│ │ ├── routes/ # Rotas da API
│ │ └── services/ # Serviços de IA
│ └── package.json
├── frontend/ # React + TypeScript + Vite + TailwindCSS
│ ├── src/
│ │ ├── components/ # Componentes React
│ │ ├── pages/ # Páginas
│ │ ├── services/ # API client
│ │ └── types/ # TypeScript types
│ └── package.json
└── README.md
- Node.js 18+ e npm
- (Opcional) llama.cpp rodando em
http://localhost:8080para modelos locais
cd backend
npm install
cp .env.example .env
npm run devO backend estará rodando em http://localhost:3001
cd frontend
npm install
npm run devO frontend estará rodando em http://localhost:3000
Para facilitar o desenvolvimento, use o script auxiliar:
# Tornar executável (já está)
chmod +x scripts/helper.sh
# Executar menu interativo
./scripts/helper.sh
# Ou usar comandos diretos
./scripts/helper.sh setup_project # Setup completo
./scripts/helper.sh populate_test_data # Popular com dados de exemplo
./scripts/helper.sh health_check # Verificar status
./scripts/helper.sh db_stats # Ver estatísticasO helper script oferece:
- Setup automático do projeto
- Popular banco com dados de exemplo de múltiplos assuntos
- Testes de API e IA
- Backups e estatísticas do banco
- Health checks completos
- Criar Space: Clique em "Novo Space" na sidebar
- Criar Stack: Passe o mouse sobre um Space e clique no ícone
+ - Criar Notebook: Passe o mouse sobre um Stack e clique no ícone
+ - Criar Note: Passe o mouse sobre um Notebook e clique no ícone
+
Organize qualquer tipo de conteúdo:
📁 Medicina (Space)
📚 Anatomia (Stack)
📓 Geral (Notebook)
📄 Introdução (Note)
📓 Sistema Cardiovascular (Notebook)
📄 Anatomia do Coração (Note)
📚 Cardiologia (Stack)
📓 IAM (Notebook)
📄 IAMCEST (Note)
📄 IAMSEST (Note)
📓 Arritmias (Notebook)
📁 Tecnologia (Space)
📚 Programação (Stack)
📓 JavaScript (Notebook)
📄 ES6+ Features (Note)
📄 Async/Await (Note)
📓 React (Notebook)
📄 Hooks (Note)
📚 DevOps (Stack)
📓 Docker (Notebook)
📓 Kubernetes (Notebook)
📁 Idiomas (Space)
📚 Inglês (Stack)
📓 Vocabulário (Notebook)
📓 Gramática (Notebook)
📚 Espanhol (Stack)
📓 Básico (Notebook)
📁 Projetos Pessoais (Space)
📚 Casa (Stack)
📓 Reformas (Notebook)
📚 Viagens (Stack)
📓 Europa 2024 (Notebook)
O editor suporta:
- Formatação: Negrito, itálico, tachado, código inline
- Títulos: H1, H2
- Listas: Com marcadores e numeradas
- Tabelas: Inserir tabelas com cabeçalho
- Citações: Blockquotes
- Código: Blocos de código com syntax highlighting
Para criar um diagrama Mermaid, use blocos de código:
```mermaid graph TD A[Início] --> B[Processo] B --> C[Fim] ```
O diagrama será renderizado automaticamente com linhas corretas (não apenas A---------E).
Adicione materiais de referência às suas notas e a IA os usará automaticamente como contexto!
Tipos de fontes suportadas:
-
PDF 📄
- Faça upload de artigos, livros, apostilas
- Extração automática de texto
- Limite: 50MB
-
Web 🌐
- Extraia conteúdo de páginas web
- Artigos, blogs, notícias
- Remoção automática de anúncios e navegação
-
PubMed 🎓
- Busque artigos científicos
- Importação direta com metadados
- Ideal para medicina e pesquisa
-
SciELO 📚
- Busque artigos em português/espanhol
- Foco em literatura latino-americana
- Acesso a texto completo quando disponível
Como usar:
- Abra uma nota
- Clique no botão "Fontes" no topo
- Escolha o tipo de fonte (PDF, Web, PubMed ou SciELO)
- Adicione o material
- A IA usará automaticamente as fontes como referência!
Exemplo prático (Medicina/Revalida):
Nota: "IAMCEST - Tratamento"
Fontes adicionadas:
- PDF: Diretriz Brasileira de IAM (SBC)
- PubMed: "STEMI management 2024"
- SciELO: "Tratamento do infarto no Brasil"
Prompt para IA:
"Com base nas fontes, crie um protocolo de atendimento
ao IAMCEST focado nas diretrizes brasileiras"
Resultado: Protocolo detalhado baseado nas 3 fontes,
combinando evidências e práticas locais
Veja o guia completo: SOURCES_GUIDE.md
- Configurar: Clique no ícone de engrenagem no chatbox
- Selecionar Provider: Escolha entre OpenAI, Anthropic, Google ou llama.cpp
- Adicionar API Key: Cole sua chave de API (não necessário para llama.cpp)
- Habilitar Thinking: Para Claude, ative o Extended Thinking para ver o raciocínio
- Gerar: Digite um prompt e clique em "Gerar"
- Texto vazio: A IA gera novo conteúdo
- Texto existente: A IA edita/complementa o texto atual baseado no prompt
- "Resuma este texto em 3 pontos principais"
- "Adicione exemplos práticos sobre este tópico"
- "Transforme isto em uma lista de passos"
- "Corrija erros gramaticais"
Para usar modelos locais via llama.cpp:
- Instale e rode o llama.cpp server:
./server -m models/your-model.gguf --port 8080- No chatbox, selecione "llama.cpp (Local)" como provider
- Não é necessário API key
GET /api/spaces- Listar todosPOST /api/spaces- CriarPUT /api/spaces/:id- AtualizarDELETE /api/spaces/:id- Deletar
GET /api/stacks?space_id=:id- Listar por spacePOST /api/stacks- CriarPUT /api/stacks/:id- AtualizarDELETE /api/stacks/:id- Deletar
GET /api/notebooks?stack_id=:id- Listar por stackPOST /api/notebooks- CriarPUT /api/notebooks/:id- AtualizarDELETE /api/notebooks/:id- Deletar
GET /api/notes?notebook_id=:id- Listar por notebookPOST /api/notes- CriarPUT /api/notes/:id- AtualizarDELETE /api/notes/:id- Deletar
POST /api/ai/generate- Gerar texto com IAGET /api/ai/llama/health- Verificar status do llama.cpp
- Node.js + Express
- TypeScript
- SQLite (better-sqlite3)
- Axios (para chamadas de API de IA)
- React 18
- TypeScript
- Vite
- TailwindCSS
- TipTap (editor de texto rico)
- Mermaid (diagramas)
- Zustand (state management)
- Axios
{
id: number
name: string
color: string
created_at: string
updated_at: string
}{
id: number
name: string
space_id: number
created_at: string
updated_at: string
}{
id: number
name: string
stack_id: number
created_at: string
updated_at: string
}{
id: number
title: string
content: string (HTML)
notebook_id: number
created_at: string
updated_at: string
}cd backend
npm run dev # Modo desenvolvimento
npm run build # Build para produção
npm start # Iniciar produçãocd frontend
npm run dev # Modo desenvolvimento
npm run build # Build para produção
npm run preview # Preview da buildMIT License - veja LICENSE para detalhes.
Para problemas ou sugestões, abra uma issue no repositório.