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 APIQuick StartReportar 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>

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qodo-0.1.0.tar.gz (107.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qodo-0.1.0-py3-none-any.whl (149.5 kB view details)

Uploaded Python 3

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

Hashes for qodo-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bc3d39ad35c3896b7b10d3b30d3d825adcc4a4e569732f4f92abba5c5028ceba
MD5 ee1c82f05d0f5cc0c5ac27e02b713000
BLAKE2b-256 60c526b9f6a2a990a808f1fe4c30c305ffce8d4f1c61377e20f32c6d77fea804

See more details on using hashes here.

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

Hashes for qodo-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 244c4848fbb82ef83ccbbad8f217a30ae4c3050ba4ecb988497ea628635e5238
MD5 2a8093af6660113951d637e86056e98c
BLAKE2b-256 fb299e67ba292fbc72a405cfe4742e16b13e3b4974a903a372ab83d16e81ac06

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page