Skip to content

guuszz/OFICINA

Repository files navigation

🔧 Oficina Mecânica

Sistema full-stack para gestão de oficina — API REST + interface web.
Full-stack mechanic-shop management system — REST API + web UI.

CI Code coverage Tested with Vitest Vercel deploy MIT License

Dashboard com clientes, veiculos e ordens

🌐 Demo ao vivo


💡 Sobre · About

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.

✨ Funcionalidades · Features

  • 👤 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

🛠️ Stack

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)

🚀 Como rodar

git clone https://github.com/guuszz/OFICINA.git
cd OFICINA
npm install

# sobe API (3001) + front (5173) ao mesmo tempo
npm run dev

📚 Endpoints

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

Exemplo · Example

curl -X POST http://localhost:3001/clientes \
  -H "Content-Type: application/json" \
  -d '{"nome":"João Silva","telefone":"11987654321","email":"joao@email.com"}'

📂 Estrutura

server/                 # Backend
├── index.js            # Entrypoint
├── routes/             # clientes, veiculos, ordens
└── storage/            # camada de dados
src/                    # Frontend React
├── components/
├── App.tsx
└── main.tsx

🧪 Testes

npm test              # roda todos os testes
npm run test:watch    # modo watch durante dev
npm run test:coverage # gera relatório de cobertura + HTML report

Stack 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.

🗺️ Roadmap

  • 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

📝 Licença

MIT © Gustavo Avelino Saraiva Oliveira

About

Sistema full-stack de gestão de oficina mecânica — API REST em Node.js/Express + front em React/Vite/Tailwind.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors