DevFullStack — Plataforma Adaptativa
Desafio Técnico · V1 · 2025
Processo Seletivo · Etapa 2
Desafio Técnico
DevFullStack

Proposta de nova arquitetura para uma plataforma de e-learning baseada em aprendizado por projetos, com geração de cursos personalizados via IA e camada adaptativa de conteúdo.

Novo fluxo com IA Existente preservado Time pequeno · V1 Evolução incremental
Contexto do problema

A DevFullStack possui hoje ~1.200 aulas organizadas em formações fixas. O sistema atual funciona bem, mas é genérico — o aluno escolhe uma trilha pré-definida.

A proposta adiciona um novo modo por projetos: o aluno conversa com uma IA, define um projeto próprio e a plataforma monta um curso personalizado do zero ao deploy.

Regra central

Se já existe uma aula no catálogo → reutiliza. Se não existe → a IA gera e salva no catálogo para os próximos alunos.

O sistema de formações fixas continua funcionando sem alterações.

Fluxo principal MVP · V1
Frontend Web
interface existente
App Mobile
interface existente
API REST · Backend Serverless
ponto de entrada único — existente, sem alteração
novo fluxo
Serviços existentes
Formações fixas · aulas · LessonDone
intacto
Orquestrador IA — novo
Chat com IA
Aluno descreve o projeto desejado
Gerador de plano
Decompõe em tópicos necessários
Aula existe no catálogo?
Reutilizar
~70% dos casos
Gerar com IA
salva no catálogo
CoursePlan personalizado
mesmo modelo das formações fixas — type: custom
saída
Google Cloud SQL · Postgres
Lessons · Users · LessonDone
CoursePlan · CoursePlanLesson
ProjectConversation
S3 + Job assíncrono
Arquivos das aulas
Worker → LLM externo
Cloud Tasks / SQS
Camada adaptativa Evolução futura
Esta camada não é parte do MVP. A arquitetura atual já a suporta sem retrabalho — entra quando tivermos dados reais de uso.
Coleta de sinais — comportamento implícito
sem perguntar ao aluno · tudo observado passivamente
Tempo
duração · scroll
Replays
trechos revisitados
Quiz
acertos · tempo
Formato
vídeo/texto/H5P
LearnerProfile — perfil do aluno
preferência · retenção por formato · tópicos fracos · job periódico
Seletor de variante
regra simples V2 → recomendação ML no futuro
Vídeo
S3
Texto
markdown
H5P
interativo
Player de aula — Frontend
Entidades existentes são preservadas. Campos novos em + laranja. Entidades novas não quebram nenhuma query atual.
Lessonexistente
lessonIduuid PK
categorystring
subcategorystring
titlestring
descriptiontext
filePathstring
sourceexisting | ai_generated
Userexistente
userIduuid PK
namestring
LessonDoneexistente
userIduuid FK
lessonIduuid FK
datetimestamp
CoursePlanexistente
coursePlanIduuid PK
titlestring
userIduuid FK
projectDescriptiontext
typefixed | custom
statusdraft | active
CoursePlanLessonexistente
coursePlanLessonIduuid PK
coursePlanIduuid FK
lessonIduuid FK
topicstring
orderint
statuspending | done
ProjectConversationnova · MVP
conversationIduuid PK
userIduuid FK
coursePlanIduuid FK
messagesjson
createdAttimestamp
LessonVariantnova · futura
variantIduuid PK
lessonIduuid FK
formatvideo | text | h5p
filePathstring
statusready | generating
generatedByhuman | ai
LearnerProfilenova · futura
profileIduuid PK
userIduuid FK
preferredFormatstring
videoRetentionfloat
textRetentionfloat
h5pRetentionfloat
weakTopicsjson
updatedAttimestamp
LearnerEventnova · futura
eventIduuid PK
userIduuid FK
variantIduuid FK
eventTypeplay|pause|replay|complete|quiz
payloadjson
occurredAttimestamp
LessonDeliverynova · futura
deliveryIduuid PK
userIduuid FK
variantIduuid FK
reasonpreferred | default | fallback
deliveredAttimestamp
O desafio pede trade-offs explícitos — o que foi priorizado e o que foi deixado de fora, e por quê.
O que entra no MVP
Chat multi-turno com IA para definir o projeto
Gerador de plano que reutiliza as 1.200 aulas existentes
Job assíncrono para gerar aulas quando não existe no catálogo
Formações fixas continuam funcionando sem nenhuma alteração
Aulas geradas vão para o catálogo — reaproveitadas nos próximos alunos
CoursePlan com type: custom
O que fica fora do MVP
Revisão humana das aulas geradas — complexidade desnecessária
Variantes de formato (H5P, texto) — precisa de dados de uso
LearnerProfile adaptativo — precisa de volume que não temos
Busca semântica — categoria resolve 70%+ dos casos
Orquestrador como microsserviço — overhead desnecessário na V1
V1 — agora
Chat + gerador + job async. Medir adesão.
V2 — crescendo
Busca semântica + variantes de formato.
V3 — com dados
LearnerProfile + seletor adaptativo.
V4 — escala
Orquestrador como serviço. ML.
P1Volume inicial baixo. Sem filas robustas, sharding ou caches desde o início. Escala quando o volume exigir.
P2Geração assíncrona. Plano entregue com status: pending. Aula gerada em background enquanto o aluno começa pelas disponíveis.
P3Chat multi-turno. Uma mensagem raramente define bem um projeto. Histórico persistido em ProjectConversation.
P4Aulas geradas vão para o catálogo permanente. Reduz custo e latência ao longo do tempo.
P5Sem revisão humana na V1. Complexidade antes de medir o problema é over-engineering.
P6LLM externo via API. Claude API ou OpenAI — a ferramenta não muda a arquitetura.
P7Orquestrador começa como módulo interno. Pode ser extraído quando o volume exigir isolamento.
Existente Orquestrador IA Reutilização Entrega Novo / futura
1
Chat
2
Plano
3
Aula
4
Perfil
IA ativa
Sugestões de projeto

Clone do iFood

Delivery com catálogo, pedidos e pagamento

Clone do Netflix

Streaming com auth e player de vídeo

CRM Completo

Gestão de clientes e pipeline de vendas

SaaS com IA

Plataforma com LLM e billing

Meus projetos

Nenhum ainda

Comece uma conversa acima

Definir meu projeto

A IA vai entender seu projeto e montar o plano ideal
AI
Olá! Vou te ajudar a montar um curso personalizado baseado no projeto que você quer construir.

Me conta: qual projeto você quer criar? Pode ser qualquer coisa — um clone de app, uma ferramenta interna, um SaaS.
plano personalizado · gerado por IA
Clone do iFood — Full Stack
32 aulas · estimativa de 6–8 semanas · do zero ao deploy
Fundamentos & Setup
01
Node.js — fundamentos e event loop
Backend · 42min
V
T
H
catálogo
02
Express.js — criando sua primeira API REST
Backend · 38min
V
T
H
catálogo
03
PostgreSQL — modelando cardápios e pedidos
Banco de dados · 28min · gerada para este projeto
T
H
IA gerou
Frontend com React
04
React — componentes, estado e props
Frontend · 55min
V
T
H
catálogo
05
Montando a tela de cardápio do iFood em React
Frontend · 44min · específica para seu projeto
V
H
IA gerou
06
React Query — data fetching e cache
Frontend · 36min
V
gerando...
Pagamentos & Deploy
07
Stripe — integrando pagamentos
Pagamentos · 41min
V
T
H
catálogo
08
Deploy no Railway — iFood em produção
Deploy · 32min · específica para seu projeto
T
H
IA gerou
Total de aulas
32aulas
Do catálogo
22reutilizadas
Geradas pela IA
10novas aulas
Cobertura estimada
~94%
Legenda
Aula do catálogo Gerada pela IA Variante gerando
formato adaptado: vídeo
Node.js — fundamentos e event loop
▶ reproduzindo...
0:00 / 8:45
0:00 / 8:45
Node.js — fundamentos e event loop
Aula 01 de 32 · 42 min · Backend · do catálogo
Perfil de aprendizado
60%
Aluno #4821
preferência: vídeo
4 aulas concluídas
Retenção por formato
Vídeo
78%
H5P
65%
Texto
42%
Baseado em 4 aulas · última atualização há 2min
Eventos registrados
Aula 01 iniciada — vídeo
há 3min
Aula 04 concluída — 94% retenção
há 22min
Replay em 2:14 — event loop
há 24min
Próxima aula
Em seguida
Express.js — criando sua primeira API REST
38min · formato sugerido: vídeo
Aula concluída!
Node.js — fundamentos e event loop
1
aula hoje
31
restantes
78%
retenção vídeo
42min
estudo hoje
Como você aprende melhor
Vídeo
78%
H5P
65%
Texto
42%
Perfil calculado com base em 5 aulas
Tópicos para reforçar:
event loop I/O não-bloqueante
Próxima aula
Express.js — criando sua primeira API REST
38min · formato sugerido: vídeo
Ver plano completo
24
alunos ativos
18
projetos em andamento
847
aulas reutilizadas
134
aulas geradas pela IA
89%
taxa média de conclusão
Tipo de formato preferido — 24 alunos
24 alunos
Vídeo54% · 13
H5P29% · 7
Texto17% · 4
baseado em LearnerProfile.preferredFormat
Retenção média por formato
Média de todos os alunos com ≥ 3 aulas por formato
Vídeo
76%
H5P
68%
Texto
51%
Atividade recente
AlunoProjetoÚltima aulaFormatoRetençãoStatus
João SilvaiFood cloneNode.js fundamentosvídeo82%destaque
Ana CostaNetflix cloneReact hooks avançadoH5P71%ativo
Pedro LemosCRM completoPostgreSQL joinstexto44%baixo
Mariana SouzaiFood cloneExpress middlewaresvídeo89%destaque
Carlos MendesSaaS com IAAutenticação JWTH5P77%ativo
Julia FerreiraInstagram cloneCSS Grid avançadotexto38%baixo
Rafael NunesiFood cloneStripe webhooksvídeo91%destaque
Beatriz LimaCRM completoReact QueryH5P65%ativo
JS
João Silva
iFood clone
vídeo
Vídeo
82%
H5P
58%
Texto
35%
callbacksasync/await
12
aulas
82%
conclusão
destaque
AC
Ana Costa
Netflix clone
H5P
Vídeo
62%
H5P
71%
Texto
40%
React Router
9
aulas
71%
conclusão
ativo
PL
Pedro Lemos
CRM completo
texto
Vídeo
48%
H5P
52%
Texto
44%
joinssubqueriesíndices
7
aulas
44%
conclusão
baixo
MS
Mariana Souza
iFood clone
vídeo
Vídeo
89%
H5P
72%
Texto
55%
15
aulas
89%
conclusão
destaque
Cobertura por categoria
React 280 aulas
243 do catálogo37 geradas por IA
Node.js 210 aulas
191 do catálogo19 geradas por IA
PostgreSQL 180 aulas
133 do catálogo47 geradas por IA
DevOps 165 aulas
157 do catálogo8 geradas por IA
Stripe / Pagamentos 95 aulas
58 do catálogo37 geradas por IA
Deploy / Infra 120 aulas
99 do catálogo21 geradas por IA
Top desempenho (IA gerou)
AulaAlunosRetenção
PostgreSQL — cardápios e pedidos1481%
Stripe webhooks para delivery1178%
React tela de cardápio — iFood1476%
Deploy Railway — app fullstack1074%
Precisam atenção
AulaAlunosRetenção
CSS avançado — animações341%
GraphQL subscriptions248%
Aulas com retenção < 55% geradas por IA. Considere revisão ou novas variantes de formato.
Reutilizações do catálogo
847
cada uma evitou uma chamada ao LLM
Novas aulas geradas
134
permanentes — não serão geradas de novo
Já disponíveis para futuros alunos
134
cada aula nova beneficia todos os próximos projetos
Timeline de geração
PostgreSQL — modelando cardápios e pedidos
● prontaaula nova
PostgreSQL · iFood cloneGerado em 18s via Claude API · há 3 dias14 alunos
81%
Stripe webhooks para apps de delivery
● prontaaula nova
Stripe · iFood cloneGerado em 34s via Claude API · há 3 dias11 alunos
78%
Variante H5P — React hooks avançado
● prontavariante H5P
React · gerada por demanda de formatoGerado em 41s · há 2 dias7 alunos
83%
Autenticação JWT com refresh token — SaaS
● prontaaula nova
Node.js · SaaS com IAGerado em 27s · há 2 dias6 alunos
71%
Variante vídeo — Express middlewares
◌ gerando...variante vídeo
Node.js · gerada por demandaEm geração há 4min...
CSS avançado — animações para feed Instagram
● prontaaula nova
CSS · Instagram cloneGerado em 19s · hoje3 alunos
41% ⚠
Pipeline CI/CD — GitHub Actions + Railway
◌ gerando...aula nova
DevOps · iFood cloneEm geração há 2min...
JS
João Silva
iFood clone · 12 aulas concluídas
Perfil carregando...
Variante entregue vs motivo
AulaVarianteMotivo
Node.js fundamentosVídeopreferred_format
Express REST APIVídeopreferred_format
PostgreSQL cardápiosTextofallback (vídeo gerando)
React componentesVídeopreferred_format
iFood tela ReactH5Pnew_user_default
Fórmula do perfil
retentionScore(formato) =
  (conclusao_media × 0.5) +
  (acerto_quiz_media × 0.3) +
  (sem_replays_excessivos × 0.2)

Calculado por job periódico.
Mínimo 3 aulas por formato para ativar.