Projeto desenvolvido a partir de um desafio técnico da equipe do SME. É um sistema simples e eficiente para gerenciar turmas escolares, com backend em Fastify/TypeScript e frontend em Next.js/TailwindCSS.
O projeto está organizado em duas pastas principais:
backend/- API REST desenvolvida com Fastify e TypeScriptfrontend/- Interface web desenvolvida com Next.js e TailwindCSS
Cada pasta possui seu próprio README explicando as decisões que tomei, tecnologias utilizadas e como executar:
- README do Backend - Detalhes sobre a API, endpoints, arquitetura e decisões técnicas
- README do Frontend - Detalhes sobre a interface, componentes, funcionalidades e decisões de design
Busquei me aproximar ao máximo daquilo proposto no protótipo, mantendo fidelidade aos padrões de cores, layout responsivo e estética visual. Além disso, implementei funcionalidades adicionais para enriquecer a experiência do usuário que são comuns em sistemas CRUD:
- CRUD Completo de Turmas - Criar, visualizar, editar e excluir turmas
- Busca e Filtragem - Busca por nome, filtros por segmento, ano/série e tipo
- Paginação de Cards - Controle de itens por página (10, 20, 30, 50) com navegação
- Menu Mobile Responsivo - Sidebar adaptável para dispositivos móveis
- Toasts de Confirmação - Feedback visual para ações de Create, Update e Delete
- Cards Clicáveis - Encapsulamento do card como elemento interativo para melhor UX
- Tratamento de Rotas - Página 404 personalizada para rotas não encontradas
Criei uma documentação completa no Swagger para facilitar o entendimento e uso da API:
A documentação inclui todos os endpoints disponíveis, parâmetros de requisição, exemplos de requisições e respostas, facilitando a integração e testes na API.
Estrutura dos dados utilizada no sistema.
cd backend
npm install
npm run devO servidor estará disponível em http://localhost:3001
cd frontend
npm install
npm run devA aplicação estará disponível em http://localhost:3000
Os testes E2E estão configurados com Playwright. Para executar:
cd frontend
npx playwright testO workflow do GitHub Actions está configurado para executar os testes automaticamente em cada push e pull request.
Obrigado pela oportunidade de realizar esse desafio, foi uma experiência muito bacana!