Frontend React integrado com API Django para Warehouse Management System
Este é o frontend React do sistema WMS, integrado com o backend Django + Neo4j.
✅ Dashboard de Warehouses com estatísticas em tempo real
✅ Gerenciamento completo de produtos e estoque
✅ Visualizador de rotas ótimas de picking
✅ Histórico de movimentações de estoque
✅ Autenticação via Firebase
✅ API REST integrada com React Query
- Node.js 18+ e npm
- Backend rodando em http://localhost:8000 (veja aqui)
- Projeto Firebase configurado
# Clone o repositório
git clone https://github.com/JoaoFlavio11/data-warehouse.git
cd data-warehouse
# Instale as dependências
npm install
# Configure as variáveis de ambiente
cp docs/.env.example .env.local
# Edite .env.local com suas credenciais
# Inicie o servidor de desenvolvimento
npm run devAcesse: http://localhost:5173
Frontend (React)
├── Components
│ ├── WarehouseDashboard
│ ├── ProductsList
│ ├── StockManager
│ └── PickingRouteVisualizer
│
├── Services/API
│ ├── warehouse.ts ──────────> Backend API
│ ├── inventory.ts ──────────> /api/inventory/*
│ └── routing.ts ────────────> /api/routing/*
│
├── Hooks (React Query)
│ ├── useWarehouse
│ ├── useInventory
│ └── useRouting
│
└── Types (TypeScript)
├── warehouse.ts
├── inventory.ts
└── routing.ts
src/
├── components/ # Componentes React
│ ├── warehouse/ # Componentes de warehouse
│ ├── inventory/ # Componentes de inventário
│ ├── routing/ # Componentes de roteamento
│ └── ui/ # Componentes UI (shadcn)
│
├── services/
│ └── api/ # Clients da API
│ ├── client.ts # Axios configurado
│ ├── warehouse.ts # Warehouse endpoints
│ ├── inventory.ts # Inventory endpoints
│ └── routing.ts # Routing endpoints
│
├── hooks/ # Custom hooks
│ ├── useWarehouse.ts
│ ├── useInventory.ts
│ └── useRouting.ts
│
├── types/ # TypeScript types
│ ├── warehouse.ts
│ ├── inventory.ts
│ └── routing.ts
│
├── pages/ # Páginas
│ ├── Index.tsx
│ └── NotFound.tsx
│
└── lib/ # Utilitários
└── utils.ts
- React 18.3.1 - UI Library
- TypeScript - Type Safety
- NextJS 15 - Build Tool & Dev Server
- TailwindCSS - Utility-first CSS
- shadcn/ui - Componentes UI
- Lucide React - Ícones
- React Query (TanStack Query) - Server state management
- Axios - HTTP client
- React Hook Form - Formulários performáticos
- Zod - Schema validation
- Firebase SDK - Autenticação
Todas as chamadas de API são gerenciadas através do Axios client configurado:
// src/services/api/client.ts
import axios from 'axios';
const apiClient = axios.create({
baseURL: import.meta.env.VITE_API_BASE_URL,
timeout: 30000,
});
// Interceptor para adicionar token Firebase
apiClient.interceptors.request.use(async (config) => {
const token = localStorage.getItem('firebaseToken');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
});// Usando hook customizado
import { useWarehouses } from '@/hooks/useWarehouse';
function Dashboard() {
const { data: warehouses, isLoading, error } = useWarehouses();
if (isLoading) return <Skeleton />;
if (error) return <Error />;
return (
<div>
{warehouses.map(warehouse => (
<WarehouseCard key={warehouse.uid} warehouse={warehouse} />
))}
</div>
);
}O sistema usa Firebase Authentication. Configure as credenciais em .env.local:
# Desenvolvimento
npm run dev # Inicia servidor de desenvolvimento
# Build
npm run build # Build para produção
npm run preview # Preview do build
# Qualidade de Código
npm run lint # Verifica problemas no código
npm run type-check # Verifica tipos TypeScript- Backend API: warehouse-api
- Frontend: data-warehouse (este repo)
Este projeto está sob a licença MIT.
João Flávio
- GitHub: @JoaoFlavio11
- ✅ Dashboard de warehouses
- ✅ Gerenciamento de produtos
- ✅ Controle de estoque
- ✅ Rotas de picking
- 🚧 Sistema de pedidos
- 🚧 Analytics dashboard
- 🚧 Mobile app (React Native)
- ✅ Real-time updates
- 🚧 Relatórios em PDF
Legenda: ✅ Implementado | 🚧 Em desenvolvimento | 📅 Planejado
Última atualização: Outubro 2025