Sistema full-stack para gestão de oficina — API REST + interface web.
Full-stack mechanic-shop management system — REST API + web UI.
Sistema completo para gestão de oficina mecânica: cadastro de clientes, controle de veículos, abertura e acompanhamento de ordens de serviço, com dashboard de estatísticas em tempo real.
Complete mechanic-shop management system: customer registration, vehicle tracking, work-order lifecycle, and a live stats dashboard.
- 👤 Clientes — cadastro, listagem e busca
- 🚗 Veículos — vinculados ao cliente
- 📋 Ordens de serviço — abertura, atualização de status, histórico
- 📊 Dashboard — métricas em tempo real
- 🌐 Frontend integrado — interface React com Tailwind
Backend
- Node.js + Express 4
- CORS, ES modules
- Storage em memória (fácil migrar para banco real)
Frontend
- React 18 + TypeScript 5.5
- Vite 5 + Tailwind 3
- Lucide React (ícones)
git clone https://github.com/guuszz/OFICINA.git
cd OFICINA
npm install
# sobe API (3001) + front (5173) ao mesmo tempo
npm run dev- Frontend: http://localhost:5173
- API: http://localhost:3001
- Health: http://localhost:3001/health
| Método | Rota | Descrição |
|---|---|---|
| GET | /clientes |
Lista clientes |
| POST | /clientes |
Cadastra cliente |
| GET | /clientes/:id |
Busca cliente por ID |
| GET | /veiculos |
Lista veículos |
| POST | /veiculos |
Cadastra veículo |
| GET | /veiculos/:id |
Busca veículo por ID |
| GET | /ordens |
Lista ordens de serviço |
| POST | /ordens |
Cria nova ordem |
| PUT | /ordens/:id/status |
Atualiza status da ordem |
| GET | /health |
Status da API |
curl -X POST http://localhost:3001/clientes \
-H "Content-Type: application/json" \
-d '{"nome":"João Silva","telefone":"11987654321","email":"joao@email.com"}'server/ # Backend
├── index.js # Entrypoint
├── routes/ # clientes, veiculos, ordens
└── storage/ # camada de dados
src/ # Frontend React
├── components/
├── App.tsx
└── main.tsx
npm test # roda todos os testes
npm run test:watch # modo watch durante dev
npm run test:coverage # gera relatório de cobertura + HTML reportStack de testes:
- Vitest — runner rápido, compatível com Jest API
- @testing-library/react — testa componentes pela perspectiva do usuário
- jsdom — DOM virtual para hooks e components
- v8 coverage — relatórios em
coverage/index.html
38 testes cobrindo: cn helper, hooks (useNumberTicker, useTheme), e componentes (StatusBadge, CarSilhouette, PageHeader) — todos a 100% de cobertura nas unidades testadas.
- Persistência real (PostgreSQL via Neon + Prisma)
- Autenticação JWT
- Geração de PDF da OS
- Testes unitários (Vitest)
- Documentação OpenAPI/Swagger
- Testes E2E (Playwright) pros CRUDs
- PWA installable
