Um sistema de gerenciamento de inventário moderno e completo, desenvolvido com Laravel no backend e React no frontend. Aplicação ideal para controlar estoque, clientes, pedidos e gerar relatórios.
- Autenticação JWT - Segurança com tokens JWT
- Gerenciamento de Estoque - Controle completo de produtos
- Gestão de Clientes - Cadastro e acompanhamento de clientes
- Gerenciamento de Pedidos - Criação e rastreamento de pedidos
- Geração de Relatórios - Exportar dados em PDF
- Dashboard - Visualização rápida de informações
- Interface Responsiva - Desenvolvida com Ant Design
- Laravel 12 - Framework PHP moderno
- PHP 8.2+ - Linguagem de programação
- JWT Auth - Autenticação baseada em tokens
- DomPDF - Geração de relatórios em PDF
- Pest - Framework de testes
- Vite - Bundler para assets
- React 19 - Biblioteca JavaScript para UI
- React Router DOM 7 - Roteamento de páginas
- Ant Design 5 - Componentes de interface de usuário
- Vite - Ferramenta de build rápida
- ESLint - Linter para qualidade de código
InventSync/
├── backend/ # API Laravel
│ ├── app/
│ │ ├── Http/Controllers/ # Controllers da aplicação
│ │ │ ├── AuthController.php
│ │ │ ├── ProductController.php
│ │ │ ├── CustomerController.php
│ │ │ ├── OrdersController.php
│ │ │ └── ReportController.php
│ │ └── Models/ # Modelos Eloquent
│ │ ├── User.php
│ │ ├── Product.php
│ │ ├── Customer.php
│ │ └── Order.php
│ ├── routes/ # Rotas da API
│ ├── database/ # Migrations e seeders
│ └── composer.json # Dependências PHP
│
├── frontend/ # Aplicação React
│ ├── src/
│ │ ├── components/ # Componentes reutilizáveis
│ │ │ ├── AppForm.jsx
│ │ │ ├── AppTable.jsx
│ │ │ ├── Sidebar.jsx
│ │ │ ├── PrivateRoute.jsx
│ │ │ └── PublicRoute.jsx
│ │ ├── views/ # Páginas da aplicação
│ │ │ ├── Login.jsx
│ │ │ ├── Sign.jsx
│ │ │ ├── Dashboard.jsx
│ │ │ ├── Stock.jsx
│ │ │ ├── Customer.jsx
│ │ │ ├── Orders.jsx
│ │ │ └── Configurations.jsx
│ │ ├── router/ # Configuração de rotas
│ │ │ └── index.jsx
│ │ ├── config/ # Configurações (API, etc)
│ │ ├── App.jsx
│ │ └── main.jsx
│ └── package.json # Dependências Node
│
├── shell.nix # Configuração Nix (Dev Environment)
├── .envrc # Configuração direnv
└── README.md # Este arquivo
- PHP 8.2+ com Composer
- Node.js 18+ com npm
- SQLite ou outro banco de dados suportado por Laravel
git clone https://github.com/viitorags/InventSync.git
cd InventSynccd backend
# Instalar dependências PHP
composer install
# Copiar arquivo de ambiente
cp .env.example .env
# Nota: Verifique o .env. Se estiver usando SQLite, altere DB_CONNECTION para sqlite
# e DB_DATABASE para o caminho do arquivo (ex: database/database.sqlite)
# Gerar chave da aplicação
php artisan key:generate
# Criar banco de dados
touch database/database.sqlite
# Executar migrations
php artisan migrate
# Instalar dependências Node (para assets)
npm installcd ../frontend
# Instalar dependências
npm install
# Criar arquivo .env se necessário
cp .env.example .envcd backend
composer run devEste comando iniciará simultaneamente:
- Servidor Laravel (http://localhost:8000)
- Fila de Jobs (queue listener)
- Logs em tempo real (pail)
- Compilação de Assets do Backend (Vite)
Nota: O frontend (React) deve ser iniciado em um terminal separado.
Terminal 1 - Backend:
cd backend
php artisan serveTerminal 2 - Fila de Jobs (opcional):
cd backend
php artisan queue:listen --tries=1Terminal 3 - Frontend:
cd frontend
npm run devcd backend
composer testcd frontend
npm run buildOs arquivos compilados estarão em frontend/dist/
cd backend
npm run build- Registro de novos usuários
- Login com email e senha
- Autenticação baseada em JWT
- Logout seguro
- Cadastro de produtos
- Atualização de quantidades
- Listagem de produtos
- Controle de preços
- Registro de clientes
- Atualização de informações
- Listagem de clientes
- Criação de novos pedidos
- Adição de produtos ao pedido
- Acompanhamento de status
- Relatório de vendas em PDF/Excel
- Exportação de dados em PDF/Excel
- Relatórios de vendas
- Relatórios de produtos
- Relatórios de clientes
APP_NAME=InventSync
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000
DB_CONNECTION=sqlite
DB_DATABASE=database/database.sqlite
JWT_SECRET=seu-secret-aquiVITE_API_BASE_URL=http://localhost:8000/apiAs principais rotas disponíveis incluem:
POST /api/auth/login- AutenticaçãoPOST /api/auth/register- RegistroGET/POST /api/products- Gerenciamento de produtosGET/POST /api/customers- Gerenciamento de clientesGET/POST /api/orders- Gerenciamento de pedidosGET /api/reports/{format}/{type}- Geração de relatórios (vendas, produtos, clientes)
Componente genérico para formulários com validação
Componente de tabela com ordenação e paginação
Menu lateral com navegação da aplicação
Proteção de rotas autenticadas
Controle de rotas públicas (login, registro)
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.