Sistema completo de PDV (Ponto de Venda) com múltiplos recursos e integrações
Project description
🚀 Qodo PDV - Sistema Completo de Ponto de Venda
A biblioteca Python que acelera o desenvolvimento de sistemas PDV
📋 Índice
- 🎯 O Porquê Desta Biblioteca
- ✨ Funcionalidades Principais
- 🛠️ Tecnologias
- ⚡ Instalação Rápida
- 🚀 Começando em 2 Minutos
- 📖 Documentação da API
- ⚙️ Configuração
- 🎯 Exemplos Práticos
- 🏗️ Estrutura do Projeto
- 🤝 Contribuindo
- 📄 Licença
- 📞 Contato
🎯 O Porquê Desta Biblioteca
Desenvolver um sistema de PDV do zero costuma ser trabalhoso: copiar e replicar código, corrigir bugs e lidar com tarefas repetitivas consomem tempo e diminuem a produtividade. Pensando nisso, a Qodo criou uma biblioteca para acelerar o desenvolvimento e reduzir a complexidade dessas etapas.
Assim nasceu o Qodo PDV, uma biblioteca Python com endpoints prontos, construída em FastAPI e MySQL, projetada para tornar o desenvolvimento de sistemas de PDV mais simples, rápido e eficiente.
💡 Problemas que Resolvemos
- ✅ Evita retrabalho - Endpoints prontos para funcionalidades comuns
- ✅ Padronização - Estrutura consistente para todos os projetos
- ✅ Manutenção simplificada - Atualizações centralizadas
- ✅ Documentação completa - APIs bem documentadas e exemplos práticos
- ✅ Comunidade - Soluções testadas e validadas pela comunidade
✨ Funcionalidades Principais
🛒 Vendas & Carrinho
- Gestão completa de vendas
- Carrinho dinâmico em tempo real
- Cancelamento de vendas
- Múltiplos métodos de pagamento
- Vendas parceladas
- Controle de troco
📦 Produtos & Estoque
- Cadastro e gestão de produtos
- Controle de inventário inteligente
- Upload de imagens
- Categorização e tickets
- Alertas de estoque baixo
- Validação de data de validade
👥 Clientes & Funcionários
- CRM integrado
- Gestão de equipe
- Controle de acesso multi-nível
- Sistema de crédito para clientes
- Histórico de compras
💳 Pagamentos
- Múltiplos métodos de pagamento
- PIX integrado com QR Code
- Pagamentos parcelados
- Controle de contas bancárias
- Reconciliação financeira
🚚 Delivery
- Gestão completa de entregas
- Rastreamento em tempo real
- Atribuição automática de entregadores
- Controle de status
- Relatórios de performance
📊 Dashboard & Analytics
- Relatórios em tempo real
- Métricas de performance
- Analytics de vendas
- Indicadores financeiros
- Gráficos e visualizações
🛠️ Tecnologias
Backend:
- Framework web moderno e rápido
- Linguagem principal
- ORM moderno
- ORM assíncrono
- Validação de dados
Banco de Dados:
- Banco relacional principal
- Alternativa para desenvolvimento
Autenticação & Segurança:
- Autenticação stateless
- Hash de senhas
- Cross-Origin Resource Sharing
⚡ Instalação Rápida
Método 1: Instalação via Pip
pip install qodo-pdv
Método 2: Instalação em Desenvolvimento
Bash
git clone [https://github.com/Gilderlan0101/qodo-pdv.git](https://github.com/Gilderlan0101/qodo-pdv.git)
cd qodo-pdv
pip install -e .
🚀 Começando em 2 Minutos
Exemplo 1: Uso como Biblioteca
Python
from qodo.controllers.user.create_account import CreateCompany
from qodo.conf.database import init_database, close_database
import asyncio
async def criar_minha_empresa():
await init_database()
empresa = CreateCompany(
full_name="Seu Nome",
email="seu@email.com",
password="senha123",
company_name="Sua Empresa LTDA"
)
resultado = await empresa.new_company()
print(f"✅ Empresa criada: {resultado['empresa']}")
await close_database()
# Execute
asyncio.run(criar_minha_empresa())
Exemplo 2: Servidor Completo
Python
# server.py
from qodo import main
if __name__ == "__main__":
main()
Execute:
Bash
python server.py
# Ou use o comando instalado
qodo-pdv
📖 Documentação da API
🔑 Autenticação
A API usa JWT (JSON Web Tokens) para autenticação. Inclua no header:
HTTP
Authorization: Bearer seu_token_jwt
📋 Endpoints Principais
Categoria Endpoint Método Descrição
Auth /api/v1/auth/login POST Login de usuário
Auth /api/v1/auth/register POST Cadastro de empresa
Produtos /api/v1/produtos/list GET Listar produtos
Vendas /api/v1/carrinho/adicionar POST Adicionar ao carrinho
Vendas /api/v1/carrinho/finalizar POST Finalizar venda
Clientes /api/v1/clientes/create POST Cadastrar cliente
🌐 Acesse a Documentação Interativa
Quando o servidor estiver rodando:
Swagger UI: http://localhost:8000/docs
ReDoc: http://localhost:8000/redoc
Health Check: http://localhost:8000/health
⚙️ Configuração
Variáveis de Ambiente (.env)
Snippet de código
DB_HOST=localhost
DB_PORT=3306
DB_NAME=qodo_pdv
DB_USER=seu_usuario
DB_PASS=sua_senha
JWT_SECRET_KEY=sua_chave_secreta_super_segura
ALGORITHM=HS256
DEBUG=True
Configuração do Banco
Python
from qodo.conf.database import init_database
# SQLite (Padrão - Desenvolvimento)
await init_database()
# MySQL (Produção)
from qodo.conf.database import DatabaseConfig
config = DatabaseConfig.get_mysql_config()
if config:
await init_database(config)
🎯 Exemplos Práticos
Sistema de Vendas Completo
Python
from qodo.controllers.user.create_account import CreateCompany
from qodo.controllers.products.products_infors import ProductController
import asyncio
async def configurar_sistema():
# 1. Criar empresa
empresa = CreateCompany(
full_name="Maria Santos",
email="maria@loja.com",
password="123456",
company_name="Super Mercado Maria"
)
await empresa.new_company()
# 2. Adicionar produtos
controller = ProductController()
await controller.create_product({
"name": "Arroz 5kg",
"product_code": "ARROZ001",
"stock": 100,
"sale_price": 25.90
})
# Adicione mais lógica aqui, como finalizar uma venda.
Integração com Frontend
JavaScript
// Exemplo React/Vue usando Fetch
const API_BASE = 'http://localhost:8000/api/v1';
// Login
async function login(email, password) {
const response = await fetch(`${API_BASE}/auth/login`, {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: `username=${email}&password=${password}`
});
return await response.json();
}
🏗️ Estrutura do Projeto
qodo-pdv/
├── 📁 src/qodo/
│ ├── 📁 auth/ # 🔐 Autenticação e Autorização
│ ├── 📁 controllers/ # 🎮 Lógica de Negócio (Services/Controllers)
│ ├── 📁 model/ # 🗃️ Modelos de Dados (Tortoise ORM)
│ ├── 📁 routes/ # 🛣️ Rotas API (Endpoints FastAPI)
│ ├── 📁 schemas/ # 📋 Schemas Pydantic (Validação de Entrada/Saída)
│ └── 📁 conf/ # ⚙️ Configurações (DB, Settings)
├── 📄 Main.py # 🚀 Ponto de Entrada Principal
└── 📄 setup.py # 📦 Configuração do Pacote (PyPI)
🤝 Contribuindo
Adoramos contribuições! Veja como ajudar:
Reportar Bugs: Abra uma issue detalhando o problema
Sugerir Funcionalidades: Compartilhe suas ideias
Enviar Pull Requests (PRs):
Fork o projeto
Crie uma branch: git checkout -b feature/nova-feature
Commit: git commit -m 'feat: Adiciona nova funcionalidade'
Push: git push origin feature/nova-feature
Abra um Pull Request
📄 Licença
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para detalhes.
📞 Contato
Desenvolvedor: Gilderlan Silva Email: dacruzgg01@gmail.com GitHub: @Gilderlan0101 Projeto: Qodo PDV
<div align="center">
🚀 Poupe semanas de desenvolvimento - Use Qodo PDV hoje!
Feito com ❤️ para a comunidade Python
⭐ Não esqueça de dar uma estrela no repositório!
</div>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file qodo-0.1.0.tar.gz.
File metadata
- Download URL: qodo-0.1.0.tar.gz
- Upload date:
- Size: 107.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc3d39ad35c3896b7b10d3b30d3d825adcc4a4e569732f4f92abba5c5028ceba
|
|
| MD5 |
ee1c82f05d0f5cc0c5ac27e02b713000
|
|
| BLAKE2b-256 |
60c526b9f6a2a990a808f1fe4c30c305ffce8d4f1c61377e20f32c6d77fea804
|
File details
Details for the file qodo-0.1.0-py3-none-any.whl.
File metadata
- Download URL: qodo-0.1.0-py3-none-any.whl
- Upload date:
- Size: 149.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
244c4848fbb82ef83ccbbad8f217a30ae4c3050ba4ecb988497ea628635e5238
|
|
| MD5 |
2a8093af6660113951d637e86056e98c
|
|
| BLAKE2b-256 |
fb299e67ba292fbc72a405cfe4742e16b13e3b4974a903a372ab83d16e81ac06
|