Repositório apenas do frontend do sistema Tech Week da UniCesumar Londrina. O backend (API REST) vive noutro projeto (ex.: Rust/Axum).
- Next.js 16 (App Router), TypeScript, Tailwind CSS 4, shadcn/ui
- Animações: motion, scroll suave (Lenis), efeitos em canvas 2D; Three.js via React Three Fiber onde usado
- Dados estáticos do evento (agenda, patrocinadores, textos da home):
src/lib/event-data.ts - Integração HTTP no servidor (Server Actions +
src/lib/api-server.ts) → verCONTRACT.mdpara payloads, códigos HTTP e erros (error)
- Homepage com hero, secções do evento e efeitos visuais
/registrations— inscrição de participantes (POST /registrationsvia Server Action)/projects— submissão de projetos (POST /projectsvia Server Action)/checkin— check-in por RA (POST /checkinvia Server Action)/admin/login+/admin/dashboard— JWT em cookie httpOnly; listagens carregadas no servidor comAuthorization: Bearer/faq— perguntas frequentes
| Caminho | Descrição |
|---|---|
src/app/ |
Rotas e páginas (App Router) |
src/app/actions/ |
Server Actions (formulários públicos e admin) |
src/components/ |
Componentes partilhados (fora de ui/) |
src/components/ui/ |
shadcn/ui — não editar à mão |
src/lib/api-server.ts |
Cliente fetch para o backend (só no servidor) |
src/lib/validation.ts |
Validação server-side dos formulários |
src/lib/types.ts |
Tipos alinhados ao CONTRACT.md |
src/lib/event-data.ts |
Conteúdo editorial do site (agenda, patrocinadores, datas) |
CONTRACT.md |
Contrato oficial da API com o frontend |
- Node.js 20+
- npm
- API acessível na URL configurada em
API_URL(recomendado) ouNEXT_PUBLIC_API_URL
npm install
npm run devAbrir http://localhost:3000 (porta padrão do Next).
Crie .env.local (não commitar segredos):
API_URL=http://127.0.0.1:8080
NEXT_PUBLIC_API_URL=http://127.0.0.1:8080Use uma porta diferente da do Next se ambos correrem na mesma máquina. O fallback em código é http://localhost:3000.
| Rota | Função |
|---|---|
/ |
Homepage |
/registrations |
Inscrição |
/projects |
Submissão de projetos |
/checkin |
Check-in |
/admin/login |
Login admin |
/admin/dashboard |
Painel (requer sessão) |
/faq |
FAQ |
Detalhe completo em CONTRACT.md. Resumo:
POST /registrations,POST /projects,POST /checkin,POST /admin/loginGET /registrations,GET /projects— JWT obrigatórioDELETE /registrations/{ra},DELETE /checkin/{ra}— JWT obrigatório (admin)
- Backend: repositório separado (https://github.com/guilhermegouve4/tech-week-api).
- Vercel (ou similar): definir
API_URL(e opcionalmenteNEXT_PUBLIC_API_URL) nas variáveis de ambiente; buildnpm run build, startnpm run start.
- Não editar
src/components/ui/nemsrc/lib/utils.ts(shadcn). - Cores de marca: variável
--brande tokens emsrc/app/globals.css. - Commits em inglês, Conventional Commits (
feat:,fix:,chore:,perf:, etc.).