Skip to main content

🚀 Qodo PDV - Sistema Completo de Ponto de Venda

Python FastAPI MySQL License Version

A biblioteca Python que acelera o desenvolvimento de sistemas PDV

Documentação da API • Quick Start • Reportar Bug


📋 Índice


🎯 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:

  • FastAPI - Framework web moderno e rápido
  • Python - Linguagem principal
  • SQLModel - ORM moderno
  • TortoiseORM - ORM assíncrono
  • Pydantic - Validação de dados

Banco de Dados:

  • MySQL - Banco relacional principal
  • SQLite - Alternativa para desenvolvimento

Autenticação & Segurança:

  • JWT - Autenticação stateless
  • bcrypt - Hash de senhas
  • CORS - 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>

Metadata

Release files for qodo 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for qodo 0.1.0
File Size Uploaded
qodo-0.1.0.tar.gz 107.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for qodo 0.1.0
File Interpreter ABI Platform
qodo-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 257.4 kB

Release files / qodo-0.1.0.tar.gz

Download URL qodo-0.1.0.tar.gz
Size 107.9 kB
Tags Source
SHA-256 checksum
How to use checksums
bc3d39ad35c3896b7b10d3b30d3d825adcc4a4e569732f4f92abba5c5028ceba
BLAKE2b-256 checksum
How to use checksums
60c526b9f6a2a990a808f1fe4c30c305ffce8d4f1c61377e20f32c6d77fea804
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / qodo-0.1.0-py3-none-any.whl

Download URL qodo-0.1.0-py3-none-any.whl
Size 149.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
244c4848fbb82ef83ccbbad8f217a30ae4c3050ba4ecb988497ea628635e5238
BLAKE2b-256 checksum
How to use checksums
fb299e67ba292fbc72a405cfe4742e16b13e3b4974a903a372ab83d16e81ac06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page