Desenvolver um sistema para gestão de estoque e vendas de mini mercados, garantindo segurança, controle de acesso e gestão eficiente de produtos e vendas.
Os mini mercados devem se cadastrar informando os seguintes campos:
- Nome
- CNPJ
- Celular
- Senha
- Status (Padrão: Inativo)
- Após o cadastro, um código de 4 dígitos é enviado via WhatsApp (Twilio) para o seller.
- O seller deve inserir o código recebido para ativar sua conta.
- Somente sellers ativados podem fazer login e gerenciar produtos.
- O sistema deve utilizar JWT ou OAuth para autenticação.
- Sellers inativados não podem fazer login.
Um seller autenticado pode:
- Cadastrar produtos com os seguintes campos:
- Nome
- Preço
- Quantidade
- Status (Ativo/Inativo)
- Imagem
- Listar produtos cadastrados
- Editar produto
- Ver detalhes de um produto
- Inativar produtos
Regras:
- O seller só pode visualizar e gerenciar seus próprios produtos.
- O seller pode realizar uma venda informando:
- Produto
- Quantidade
- As vendas devem ser armazenadas na tabela
Vendas, contendo:- ID do Produto
- Quantidade vendida
- Preço do produto no momento da venda
Regras:
- Não é possível vender mais do que a quantidade disponível em estoque.
- Produtos inativados não podem ser vendidos.
- Sellers inativos não podem realizar vendas.
- Criar Seller
curl -X POST "http://localhost:8080/api/sellers" \ -H "Content-Type: application/json" \ -d '{"nome": "Mini Mercado X", "cnpj": "00.000.000/0001-00", "email": "mercado@email.com", "celular": "+559999999999", "senha": "123456"}'
- Ativar Seller via WhatsApp (Twilio)
curl -X POST "http://localhost:8080/api/sellers/activate" \ -H "Content-Type: application/json" \ -d '{"celular": "+559999999999", "codigo": "1234"}'
- Login
curl -X POST "http://localhost:8080/api/auth/login" \ -H "Content-Type: application/json" \ -d '{"email": "mercado@email.com", "senha": "123456"}'
- Cadastrar Produto
curl -X POST "http://localhost:8080/api/products" \ -H "Authorization: Bearer SEU_TOKEN" \ -H "Content-Type: application/json" \ -d '{"nome": "Arroz", "preco": 10.50, "quantidade": 100, "status": "Ativo", "img": "url_da_imagem"}'
- Listar Produtos
curl -X GET "http://localhost:8080/api/products" \ -H "Authorization: Bearer SEU_TOKEN"
- Editar Produto
curl -X PUT "http://localhost:8080/api/products/1" \ -H "Authorization: Bearer SEU_TOKEN" \ -H "Content-Type: application/json" \ -d '{"nome": "Arroz Integral", "preco": 12.00, "quantidade": 50, "status": "Ativo"}'
- Ver Detalhes de um Produto
curl -X GET "http://localhost:8080/api/products/1" \ -H "Authorization: Bearer SEU_TOKEN"
- Inativar Produto
curl -X PATCH "http://localhost:8080/api/products/1/inactivate" \ -H "Authorization: Bearer SEU_TOKEN"
- Criar Venda
curl -X POST "http://localhost:8080/api/sales" \ -H "Authorization: Bearer SEU_TOKEN" \ -H "Content-Type: application/json" \ -d '{"produtoId": 1, "quantidade": 2}'
- Back-end: Kotlin + Spring Boot
- Front-end: React.js
- Banco de Dados: MySQL ou PostgreSQL
- Autenticação: JWT ou OAuth
- Mensageria: Twilio (para envio do código de ativação no WhatsApp)
- Implementação de um painel para exibição de relatórios e análise de vendas.
- Monitoramento de estoque em tempo real.
Este projeto fornece um sistema completo para mini mercados gerenciarem seus estoques e vendas com segurança e eficiência. 🚀