O StockMaster é um sistema completo de gerenciamento de estoque e vendas desenvolvido com FastAPI e Python. Este projeto foi criado como uma solução para o desafio do instituto IBBI , voltado para o treinamento de Conhecimentos de Gabriel B. - Dev . PL
-
O sistema oferece:
-
Autenticação segura via JWT
-
CRUD completo para produtos
-
Registro de vendas com cálculo automático de valores
-
Dashboard analítico em tempo real
-
Histórico completo de alterações
-
WebSocket para atualizações instantâneas
-
Cache com Redis para alta performance
-
Sincronização entre estoque principal e dashboard
- FastAPI: Framework moderno e rápido para construção de APIs
- SQLAlchemy: ORM poderoso para interação com banco de dados
- Redis: Sistema de cache para melhorar performance
- JWT: Autenticação segura com JSON Web Tokens
- WebSocket: Comunicação em tempo real entre servidor e clientes
- PostgreSQL/SQLite: Bancos de dados suportados
- Pydantic: Validação de dados eficiente
Para instalar e executar o StockFlow API, siga estas etapas:
- Clone o repositório:
git clone https://github.com/seu-usuario/stockflow-api.git
- Entre no diretório do projeto:
cd stockMaster-api
- Crie e ative um ambiente virtual (recomendado):
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
- Instale as dependências:
pip install -r requirements.txt
- Configure as variáveis de ambiente (crie um arquivo
.env
):
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0
SECRET_KEY=sua_chave_secreta_aqui
- Execute o servidor:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
O servidor estará disponível em http://localhost:8000
e a documentação interativa (Swagger UI) em http://localhost:8000/docs
.
- Primeiro, faça login para obter seu token:
curl -X POST "http://localhost:8000/auth/login" \
-H "Content-Type: application/json" \
-d '{"username": "user@example.com", "password": "secret"}'
- Use o token retornado nas requisições subsequentes:
curl -X GET "http://localhost:8000/products/" \
-H "Authorization: Bearer <seu_token_aqui>"
-
Produtos:
GET /products/
- Lista todos os produtosPOST /products/
- Cria um novo produtoPUT /products/{id}
- Atualiza um produtoDELETE /products/{id}
- Remove um produto
-
Vendas:
POST /products/purchase/
- Registra uma nova vendaGET /sales-history/
- Histórico de vendas
-
Dashboard:
GET /dashboard/products/
- Produtos para o dashboardGET /top-products/
- Produtos mais vendidosGET /sales-by-category/
- Vendas por categoria
-
Configuração:
POST /update_dollar_rate/
- Atualiza taxa de câmbio
Criar um novo produto:
curl -X POST "http://localhost:8000/products/" \
-H "Authorization: Bearer <seu_token_aqui>" \
-H "Content-Type: application/json" \
-d '{
"description": "Notebook Dell Inspiron",
"image_url": "https://example.com/notebook.jpg",
"quantity": 15,
"suggested_quantity": 10,
"price": 4500.00,
"categories": ["Eletrônicos", "Informática"]
}'
Claro! Aqui está a versão formatada e organizada do seu conteúdo, ideal para ser usada em um README.md
no GitHub, na seção "Preto no Branco para DEVs":
-
Clone o repositório:
git clone <URL-do-repositório>
-
Instale as dependências do backend:
pip install -r requirements.txt
-
Inicie o backend:
No terminal:
cd backend uvicorn main:app --reload
-
Inicie o frontend:
Em outro terminal:
cd src npm install # (caso ainda não tenha instalado os pacotes) npm run dev
-
Acesse a aplicação no navegador:
http://localhost:3000/
- Usuário:
user@example.com
- Senha:
secret
Tipo | Rota | Descrição |
---|---|---|
Produtos | /produtos |
Listagem de produtos |
Cadastro | /cadastro |
Cadastro de novos produtos/usuário |
Dashboard | /dashboard |
Visualização geral da aplicação |
Para dúvidas ou sugestões, entre em contato:
- Eu deixei um Video no youtube, e uma documentação em PDF do meu codigo completo de forma bem explicada!
- PDF :
- Video :