Skip to content

Next.js + Fastify application developed as part of a technical challenge from the Mackenzie Education System.

Notifications You must be signed in to change notification settings

R0chaa/macktest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MackTest

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.

Estrutura do Projeto

O projeto está organizado em duas pastas principais:

  • backend/ - API REST desenvolvida com Fastify e TypeScript
  • frontend/ - 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

Sobre o Desenvolvimento

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:

Funcionalidades

  • 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

Interface e Design

detalhes de cores System mobileScreen telas desk

Documentação da API

Criei uma documentação completa no Swagger para facilitar o entendimento e uso da API:

Acessar Documentação Swagger

image

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.

Schema dos Dados

image

Estrutura dos dados utilizada no sistema.

Como Executar

Backend

cd backend
npm install
npm run dev

O servidor estará disponível em http://localhost:3001

Frontend

cd frontend
npm install
npm run dev

A aplicação estará disponível em http://localhost:3000

Testes

Os testes E2E estão configurados com Playwright. Para executar:

cd frontend
npx playwright test

O workflow do GitHub Actions está configurado para executar os testes automaticamente em cada push e pull request.

Agradecimentos

Obrigado pela oportunidade de realizar esse desafio, foi uma experiência muito bacana!

About

Next.js + Fastify application developed as part of a technical challenge from the Mackenzie Education System.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published