Entrar como:FuncionalidadesDoc
Pular para o conteúdo
← Voltar para a visão geral
✅ ConcluídoCard #7e · M1.5

Upload de Trabalho + Refazer Exercício + Flags

Marco M1.5: Galeria Criativa & Portfólio (EAD Artes)

📅03 de agosto de 2026
👤Wellington Santiago (via ZCode)
🔧Commits: 66c53e6

📄 Documento de Execução — Card 7e: [M1.5] Upload de Trabalho + Refazer Exercício

Campo Valor
Card Trello [7e] [M1.5] Upload de Trabalho + Refazer Exercício
URL Trello https://trello.com/c/eFZRGWfG
Marco M1.5 (Galeria Criativa & Portfólio — EAD Artes)
Data execução 04/08/2026
Responsável Wellington Santiago (via ZCode)
Doc anterior Card 7d — Schema da Galeria
Próximo card Card 7f — Mural da Turma
Commits 66c53e6
Deploy DEV https://sistemaescolar.wellka.com.br

🎯 1. O que foi implementado

Implementadas as telas de upload de trabalhos artísticos e o fluxo de refazer exercício. O aluno pode subir sua arte (JPG/PNG/PDF com preview, PSD/AI/KRA só download), escrever sobre o processo, marcar flags ("Quero correção do Prof" / "Deixar privado") e publicar na galeria (sempre como PENDING para moderação). Quando o professor marca allowResubmit=true (tirou "A Melhorar"), o aluno vê um botão "Refazer exercício".

Procedures tRPC criadas (student.gallery)

  • createFromSubmission — cria GalleryPost a partir de entrega de tarefa (vincula taskId/submissionId/courseId/subjectId). Valida que aluno tem matrícula ativa. isPrivate=true não cria post.
  • create — cria post direto (sem tarefa, para posts espontâneos ou desafios).
  • myPosts — lista posts do próprio aluno (para aba "Meus Trabalhos").

Páginas criadas

  • /aluno/tarefas/[taskId]/enviar — formulário de upload com drag&drop de imagem, upload de PSD separado, textarea de descrição (char counter), checkboxes (wantsReview/isPrivate), botão PUBLICAR NA GALERIA. Cria GalleryPost status=PENDING.
  • /aluno/tarefas/[taskId]/refazer — mostra feedback anterior + formulário de nova entrega. Bloqueia se allowResubmit !== true. Usa a procedure submit existente (que já incrementa attemptNumber quando allowResubmit=true).

Página existente alterada

  • /aluno/tarefas/[taskId] (detalhe da tarefa) — adicionados 2 botões:
    • "Publicar na Galeria" (azul, aparece após entregar) → leva para /enviar
    • "Refazer exercício" (âmbar, aparece quando allowResubmit===true) → leva para /refazer

Procedure detail alterada

Retorno agora inclui allowResubmit e attemptNumber no objeto submission (necessário para o botão condicional de refazer).

i18n

39 chaves em student.galleryUpload adicionadas nos 3 idiomas (PT-BR, EN-US, ES-ES).

✅ Critérios de aceite validados

# Critério Status
1 Página de entrega com upload de imagem (JPG/PNG/PDF)
2 Upload de PSD (só download + preview obrigatório)
3 Textarea de descrição do processo
4 Checkbox 'Quero correção do Professor'
5 Checkbox 'Deixar privado'
6 Botão PUBLICAR NA GALERIA
7 Fluxo de refazer exercício (allowResubmit)
8 Build passa + deploy DEV funcional

📁 2. Arquivos criados/modificados

Criados

Arquivo Função
src/app/(dashboard)/aluno/tarefas/[taskId]/enviar/page.tsx Página de upload + PUBLICAR NA GALERIA
src/app/(dashboard)/aluno/tarefas/[taskId]/refazer/page.tsx Página de refazer exercício
src/styles/gallery-upload.module.css Estilos (upload drag&drop, checkboxes, botão publicar)

Modificados

Arquivo Mudança
src/server/trpc/routers/student.ts +sub-router gallery (create, createFromSubmission, myPosts); detail retorna allowResubmit+attemptNumber
src/app/(dashboard)/aluno/tarefas/[taskId]/page.tsx +botões "Publicar na Galeria" e "Refazer exercício"
messages/{pt-BR,en-US,es-ES}.json +seção student.galleryUpload (39 chaves cada)

🔌 3. Handoff para o próximo card (7f)

Procedures disponíveis

  • student.gallery.create / createFromSubmission — prontas para alimentar o feed (Card 7f)
  • student.gallery.myPosts — pronto para aba "Meus Trabalhos" (Card 7f)
  • Posts são criados com status=PENDING → o feed (7f) deve filtrar status=PUBLISHED

O que o próximo card (7f) precisa fazer

  • Página /aluno/galeria com feed principal (abas + filtros + PostCard)
  • Procedures student.gallery.feed, toggleLike, comment, toggleSave, museum
  • Componentes PostCard, PostGrid, CommentThread, LikeButton, TeacherCorrectionBadge

📋 4. Checklist do Trello — status

Entregas (7/7): ✅ todos concluídos Especificação Técnica (implementados): ✅ procedimentos + páginas + upload + flags + refazer + i18n + build Validar com Cliente (0/5): 5 perguntas permanecem pendentes (limite de tentativas, descrição obrigatória, editar PENDING, excluir post, notificar aprovação)

🚀 5. Deploy DEV

  • Build: ✓ Compiled successfully (local + VPS)
  • pm2 restart: genioon-dev --update-env — online
  • Smoke test: Health 200, Login 307, Aluno 307, Tarefas 307, Doc 200

🎯 6. Próximo card

Card 7f — Mural da Turma (Feed + Curtidas + Comentários + Museu + Desafios) O feed estilo Instagram onde os posts aprovados aparecem. Usa as procedures gallery.* criadas neste card.

← Voltar para a visão geral