StructLive é uma plataforma educacional para aprender Estruturas de Dados de forma:
- Visual - Animações e visualizações interativas
- Prática - Desafios de código e atividades hands-on
- Interativa - Feedback em tempo real e análise por IA
- Gamificada - Sistema de progresso e conquistas
Estudantes iniciantes têm dificuldade em "ver" como listas, filas ou árvores funcionam internamente. O StructLive oferece:
- Visualizações passo a passo de operações (inserir, remover, percorrer)
- Feedback inteligente via IA para análise de código
- Atividades práticas com diferentes níveis de dificuldade
- Sistema de registro de progresso
- Login via Google OAuth (NextAuth.js)
- Perfil de usuário personalizado
- Rastreamento de progresso individual
- Listas - Módulo completo com 5 tipos diferentes:
- LDSE (Lista Dinâmica Simplesmente Encadeada)
- LDDE (Lista Dinâmica Duplamente Encadeada)
- LEE (Lista Estática Encadeada)
- LES (Lista Estática Sequencial)
- LC (Lista Circular)
- Arquitetura baseada em registros de módulos e tipos
- Scripts de automação para criar novos módulos rapidamente
- Sistema de componentes reutilizáveis (teoria, visualização, atividade, desafio)
- Feedback contextualizado via Google Gemini
- Prompts RAG (Retrieval Augmented Generation) personalizados
- Processamento assíncrono via RabbitMQ
- Sistema de fallback com múltiplas API keys
- Persistência de dados via Supabase
- Sistema de filas (RabbitMQ) para processamento assíncrono
- API Routes para comunicação frontend-backend
- Workers dedicados para tarefas pesadas
graph TB
subgraph "Frontend - Next.js App Router"
A[Usuário/Navegador]
B[Páginas React]
C[Componentes UI shadcn/ui]
D[Contextos e Estado]
end
subgraph "Backend - Next.js API Routes"
E[/api/auth - Autenticação]
F[/api/atividades - Atividades]
G[/api/responder - Submissões]
H[/api/respostas - Feedback]
I[/api/logs - Logging]
end
subgraph "Serviços Externos"
J[(Supabase PostgreSQL)]
K[Google OAuth]
L[Google Gemini AI]
M{{RabbitMQ Filas}}
end
subgraph "Workers Assíncronos"
N[responderWorker.ts]
end
A --> B
B --> C
B --> D
B --> E
B --> F
B --> G
B --> H
E --> K
F --> J
G --> J
G --> M
H --> J
I --> J
M --> N
N --> L
N --> J
style A fill:#e1f5ff
style J fill:#ffe1e1
style K fill:#fff4e1
style L fill:#fff4e1
style M fill:#ffe1f5
style N fill:#e1ffe1
Usuário → Login Google → NextAuth → Sessão Criada → Acesso Liberado
Dashboard → Selecionar Módulo (ex: Listas) → Selecionar Tipo (ex: LDSE)
Teoria → Visualização → Atividade → Desafio
sequenceDiagram
participant U as Usuário
participant F as Frontend
participant API as API Routes
participant DB as Supabase
participant Q as RabbitMQ
participant W as Worker
participant IA as Gemini AI
U->>F: Submete código/resposta
F->>API: POST /api/responder
API->>DB: Salva resposta (status: pending)
API->>Q: Enfileira job de análise
API-->>F: 200 OK (resposta_id)
Q->>W: Processa job
W->>IA: Envia código + contexto RAG
IA-->>W: Retorna feedback
W->>DB: Atualiza resposta (status: completed)
F->>API: Poll GET /api/respostas/:id
API->>DB: Busca resposta atualizada
API-->>F: Retorna feedback
F-->>U: Exibe análise e sugestões
- Listas - 5 tipos completos:
- Lista Dinâmica Simplesmente Encadeada (LDSE)
- Lista Dinâmica Duplamente Encadeada (LDDE)
- Lista Estática Encadeada (LEE)
- Lista Estática Sequencial (LES)
- Lista Circular (LC)
- Pilhas (Estática, Dinâmica)
- Filas (Simples, Circular, Prioridade)
- Árvores (Binária, AVL, Red-Black)
- Grafos (Não Direcionado, Direcionado)
- Hash Tables
- Frontend: Next.js 15.2, React 19, TypeScript 5.8
- UI: Tailwind CSS 4, shadcn/ui, Lucide Icons
- Backend: Next.js API Routes, NextAuth.js
- Banco de Dados: Supabase (PostgreSQL)
- IA: Google Gemini AI
- Filas: RabbitMQ
- Testes: Vitest, Testing Library
O projeto inclui scripts TypeScript para agilizar desenvolvimento:
create-module.ts- Cria módulos completos automaticamentecreate-type.ts- Adiciona novos tipos a módulos existentes
Veja docs/modules.md e docs/scripts.md para detalhes.
- Registro automático de módulos e tipos
- Componentes padronizados (teoria, visualização, atividade, desafio)
- Sistema de configuração declarativo
- Visão Geral → Você está aqui! ✅
- Arquitetura → Estrutura detalhada do código
- Tech Stack → Tecnologias e versões
- Setup → Configure seu ambiente
- Criando Módulos → Use scripts de automação
- Deployment → Guia de produção
- Testing → Como testar
🎓 Meta: Tornar o aprendizado de estruturas de dados acessível, visual e divertido!