Sistema completo de gestão de estoque, desenvolvido com foco em Clean Architecture, SOLID, TDD, e boas práticas de engenharia de software moderna.
- Node.js com TypeScript
- Express (servidor HTTP)
- Prisma ORM com PostgreSQL
- Jest para testes (unitários e integração)
- Docker (opcional para banco de dados)
- ESLint/Prettier (padronização de código)
- Cadastro, edição, listagem e remoção de produtos.
- Controle de quantidade mínima, atual, para reposição e máxima.
- Status de produto ativo ou inativo.
- CRUD completo para categorização dos produtos.
- Registro de entradas com: produto, descrição, preço unitário e quantidade.
- Data de entrada registrada automaticamente.
- Histórico consultável.
- Registro de saídas do estoque com os mesmos campos de entrada.
- Gera um histórico de saídas.
- Quantidade atual por produto calculada com base nas entradas e saídas.
- Endpoint para consultar o estoque em tempo real.
O projeto segue os princípios de Clean Architecture, separando claramente:
- Entities (entidades do domínio)
- Usecases (regras de negócio puras)
- Repositories (acesso a dados com Prisma)
- Controllers (camada de apresentação e integração HTTP)
- Validation (validação de entradas)
- Factories (injeção de dependência)
- UseCases (casos de usos da aplicação)
Benefícios:
- Alta testabilidade.
- Baixo acoplamento.
- Alta manutenibilidade.
git clone git@github.com:LuigiFedele/stockAPI.git
cd stock-apinpm installO .env foi enviado de proposito para facilitar, ver a aplicação funcionando.
DATABASE_URL="postgresql://storage:admin@localhost:5432/storageStock?schema=public"
POSTGRES_USER = storage
POSTGRES_PASSWORD = admin
POSTGRES_DB_DEV = storageStockdocker compose upnpx prisma migrate dev --name initnpm run devO servidor estará disponível em: http://localhost:3000
| Comando | Descrição |
|---|---|
npm run dev |
Executa a API em modo desenvolvimento |
npm run test |
Roda todos os testes |
npm lint:fix |
Roda a identiação e correção c/ Eslint |
npm format |
Roda a formatação com o Prettier |
Cobertura de testes com Jest:
- Usecases 100% testados (via TDD)
- Controllers com testes unitários e mocks
- Testes de integração via
supertest
- Autenticação e RBAC (papéis de acesso)
- Painel de Admin com dashboards
- Gatilhos para alerta de estoque baixo
- Integração com fornecedores e pedidos
- Deploy automatizado (CI/CD com GitHub Actions)
Este projeto foi desenvolvido para demonstrar a aplicação de boas práticas modernas de engenharia de software.
Feito com dedicação por Luigi Fedele 🎯