Ir para o conteúdo principal

Visão Geral do Sistema de Gestão de Eventos Pretix

O Pretix é uma plataforma open source para gestão completa de eventos e venda de ingressos online. Ele é desenvolvido em Python/Django e possui arquitetura modular, com foco em flexibilidade, automação e integração com outros sistemas via API.

Na UFSC, o Pretix é utilizado de forma auto-hospedada em https://eventos.setic.ufsc.br como Sistema de Gestão de Eventos, permitindo que unidades acadêmicas, administrativas e projetos organizem eventos com controle institucional sobre dados, pagamentos e fluxos de check-in.


🧱 Componentes principais do Pretix

🧮 Backend administrativo (painel do organizador)

Interface web onde equipes de organização:

  • Criam organizadores, eventos e séries de eventos.
  • Configuram produtos, quotas, formulários de inscrição e métodos de pagamento.
  • Gerenciam pedidos, reembolsos, exportação de dados e relatórios.
  • Administram equipes, permissões e 2FA (autenticação em dois fatores).

Tudo isso é acessado via navegador, com controle de permissões por organizador.


🛒 Loja pública e widget de ingressos

A loja pública é a interface em que o participante:

  • Visualiza eventos disponíveis, datas e categorias de ingressos.
  • Preenche dados do comprador/participante.
  • Realiza o pagamento.
  • Recebe ingressos digitais (PDF, passbook, etc., dependendo da configuração e plugins).

Além da loja “normal”, o Pretix possui um widget embutível, que permite integrar a venda de ingressos diretamente em sites externos (por exemplo, site institucional da UFSC, páginas de projetos ou eventos).


🗄️ Banco de dados e camada de aplicação

Em instalações recomendadas, o Pretix utiliza:

  • Banco de dados: PostgreSQL (para produção) ou SQLite (cenários simples e desenvolvimento).
  • Aplicação web: Python + Django, rodando atrás de um servidor WSGI (como uWSGI ou Gunicorn) e normalmente exposta via Nginx/Apache.
  • Cache/filas: Redis (e/ou Memcached) para cache, lock e sessões, melhorando desempenho em cenários com grande volume de acessos.

📱 Aplicativos e ferramentas auxiliares

Além da interface web, o ecossistema Pretix inclui:

  • pretixSCAN: app de check-in (Android/iOS) para leitura de QR codes/códigos de barras na entrada/saída.
  • pretixPOS / caixa (box office): venda presencial e emissão de ingressos em balcão (com hardware compatível).
  • pretixKiosk (plugin/app): modos de quiosque para autoatendimento em locais físicos.
  • Plugins e integrações externas: ampliam funcionalidades (pagamentos, certificados, exportações específicas, etc.).

Nem todos os componentes vêm habilitados por padrão em todas as instalações; na UFSC, a SeTIC decide quais plugins/herramentas fazem sentido no contexto institucional.


🧠 Conceitos básicos

🧑‍💼 Organizadores

Um organizador é a entidade responsável por um conjunto de eventos (por exemplo, “UFSC – Eventos Institucionais” ou uma Pró-Reitoria, Centro ou Departamento).

  • Cada organizador tem:
    • Nome e slug (identificador curto usado na URL).
    • Times de usuários com permissões específicas.
    • Configurações “globais” herdadas pelos eventos (ex.: certos plugins, textos, padrões de faturamento).
  • Todo evento pertence a um único organizador.

Na UFSC, o conceito de organizador costuma ser mapeado para unidades ou grupos de gestão de eventos.


🎫 Eventos (simples)

Um evento é o núcleo principal do Pretix: algo que acontece em um lugar e período específicos (ou conjunto de datas, no caso de séries).

Em um evento simples (sem série):

  • Você configura:
    • Título, descrição, localização e idioma.
    • Período de vendas (início/fim).
    • Produtos/itens (tipos de ingresso) e quotas associadas.
    • Métodos de pagamento e canais de venda.
  • O evento possui sua própria URL pública.
  • Tudo gira em torno desse objeto: pedidos, tickets, check-in, relatórios etc.

📅 Séries de eventos (event series) e datas

Uma série de eventos é um evento especial com a opção de “Event series or time slot booking” habilitada. Em vez de um único evento pontual, você passa a ter várias datas internas (sub-events), que podem representar:

  • Sessões diárias de visita guiada.
  • Várias turmas de um mesmo curso ou oficina.
  • Várias sessões em dias/horários diferentes de um mesmo formato de evento (ex.: visitas a museu, escape room, teatro com várias apresentações).

Características importantes:

  • A série tem configuração compartilhada (organizador, configurações gerais, formulários, plugins, etc.).
  • Cada data/sessão pode ter:
    • Título/descrição adaptados.
    • Data/hora próprios.
    • Localização específica.
    • Preços, quotas, regras de check-in e mapa de assentos próprios.

É justamente esse recurso que permite na UFSC criar, por exemplo, um evento do tipo “Visita guiada” com diversas datas/horários ao longo de um semestre, com ingressos específicos para cada dia/horário e possibilidade de compra de múltiplas datas num único pedido.


🧾 Produtos (itens) e variações

Os produtos representam os tipos de ingressos ou itens vendidos:

  • Exemplos:
    • “Ingresso inteiro”
    • “Ingresso meia-entrada”
    • “Visita guiada – Manhã”
    • “Crachá extra”
    • “Camiseta do evento”
  • Um produto pode ter variações, como:
    • Camiseta (P/M/G)
    • Ingresso com diferentes modalidades.

Cada produto é vinculado a uma ou mais quotas, que controlam o estoque.


📦 Quotas (estoque de vagas/ingressos)

Quotas são unidades de controle de capacidade:

  • Definem quantas vezes um item pode ser vendido (por evento ou por data da série).
  • Podem englobar:
    • Um ou vários produtos.
    • Uma ou várias variações.
    • Uma data específica (em séries de eventos).
  • Permitem comportamento avançado, como:
    • Fechar quota quando esgotar.
    • Reabrir capacidade quando alguém faz check-out (saída) em controladores de acesso configurados para isso.
    • Ignorar quota para cálculo de “esgotado” no calendário (útil para produtos complementares que não devem bloquear o evento).

Na prática, a quota é o “estoque lógico” por trás da disponibilidade de vendas.


👥 Pedidos, participantes e dados coletados

Quando alguém compra ingressos:

  • Cria-se um pedido (order) que contém:
    • Situação do pagamento (pendente, pago, cancelado, reembolsado).
    • Itens (posições de pedido) com informações do produto e da data.
    • Dados do comprador e, opcionalmente, de cada participante (nome, CPF, e-mail, etc., conforme formulários configurados).
  • O Pretix permite:
    • Envio automático de e-mails com ingressos e comprovantes.
    • Reemissão de documentos (notas fiscais/invoices, recibos, etc.).
    • Exportação de dados em diversos formatos.

🔁 Fluxo geral de venda – do catálogo ao check-in

Abaixo, um resumo do fluxo típico no Pretix, do ponto de vista da UFSC:

  1. Definição do organizador

    • Criar (ou usar) um organizador UFSC apropriado (por exemplo, uma pró-reitoria, centro ou projeto) e configurar equipes/permissões.
  2. Criação do evento ou série de eventos

    • No painel do organizador, criar:
      • Evento único, ou
      • Série de eventos (event series / time slot booking), quando for necessário trabalhar com várias datas/horários.
  3. Configuração de produtos e quotas

    • Definir os tipos de ingressos (produtos) e, se necessário, suas variações.
    • Criar quotas para controlar a capacidade por produto, por sala, por data, etc.
  4. Configuração de formulários e dados obrigatórios

    • Ajustar quais campos são coletados:
      • Do comprador (ex.: nome, e-mail institucional).
      • De cada participante (ex.: nome completo, número de matrícula, CPF, curso, etc.).
    • Definir obrigatoriedade e validações conforme normas internas da UFSC.
  5. Configuração de pagamentos e canais de venda

    • Selecionar métodos de pagamento disponíveis (por exemplo, integrações via gateway, pagamento manual/depósito, PIX via plugin, etc.).
    • Habilitar canais de venda:
      • Web (loja online).
      • POS/caixa (venda presencial, quando disponível).
      • Outros canais internos (revendedores, integrações customizadas).
  6. Publicação do evento

    • Trocar o evento do estado de rascunho para “live”.
    • Verificar:
      • Períodos de venda.
      • Links da loja pública e widget.
      • Textos, imagens e informações obrigatórias (impressum, política de privacidade, etc.).
  7. Venda de ingressos e automação

    • Participantes acessam eventos.setic.ufsc.br (ou site integrado com o widget).
    • Selecionam datas, produtos e preenchem o formulário.
    • Realizam o pagamento conforme método disponível.
  8. Emissão de ingressos, invoices e comprovantes

    • Pretix emite:
      • Ingressos em PDF (com QR code / código de barras).
      • Documentos de cobrança (invoices/notas) conforme configuração.
    • Plugins podem adicionar formatos extras (ex.: Passbook/Apple Wallet, certificados de participação, etc.).
  9. Check-in / controle de acesso

    • No dia do evento:
      • Uso de pretixSCAN (app) ou interfaces web para controlar entrada/saída.
      • Possibilidade de configurar reentrada, listas específicas e filtros por produto/dia.
    • As estatísticas de presença ajudam na geração de relatórios pós-evento.

🔒 Segurança, licença e extensibilidade

🔐 Segurança

  • Suporte a autenticação em dois fatores (2FA) para usuários do backend.
  • Controle granular de permissões via equipes (teams) por organizador.
  • Recursos de segurança de aplicação herdados do Django (proteção CSRF, XSS, etc.) e recomendações para uso de HTTPS.

📜 Licença

  • A maior parte do código do Pretix é distribuída sob AGPLv3 (com termos adicionais definidos no repositório oficial).
  • Isso permite:
    • Uso em produção, inclusive institucional.
    • Auditoria de código.
    • Customização e criação de plugins, respeitando os termos da licença.

🔌 Plugins e integrações

  • O Pretix possui uma arquitetura de plugins:
    • Métodos de pagamento (Stripe, PayPal, gateways regionais, etc.).
    • Recursos avançados (certificados de participação, digital content, badges, passbook, entre outros).
    • Integrações com ferramentas externas, exportadores específicos, relatórios customizados.
  • Plugins podem ser:
    • Mantidos pela própria equipe do Pretix.
    • Mantidos por terceiros (comunidade, empresas, organizadores) e publicados no Pretix Marketplace.
  • Em uma instalação auto-hospedada (como na UFSC), a equipe técnica pode:
    • Instalar apenas plugins confiáveis.
    • Desenvolver plugins próprios (como integrações de pagamento específicas, SSO, etc.).

🧭 Mapa mental rápido dos conceitos

  • Organizador: “Dono” dos eventos, onde se definem equipes, permissões e configurações globais.
  • Evento: Unidade principal de configuração (único ou série).
  • Série de eventos (event series): Evento com várias datas internas, útil para sessões recorrentes e agendamento de horários.
  • Produtos/itens: Tipos de ingressos ou itens vendidos.
  • Quotas: Estoques lógicos que limitam quantos ingressos podem ser vendidos.
  • Pedidos: Conjunto de ingressos comprados de uma vez, com status de pagamento.
  • Participantes: Pessoas que efetivamente vão ao evento; podem ser diferentes do comprador.
  • Plugins: Extensões que adicionam novos recursos e integrações.

🔗 Referências

  • Site oficial Pretix:
    • https://pretix.eu
  • Código-fonte:
    • https://github.com/pretix/pretix
  • Documentação oficial (conceitos, tutoriais e API):
    • Organizers: https://docs.pretix.eu/dev/api/resources/organizers.html
    • Events: https://docs.pretix.eu/dev/api/resources/events.html
    • Event series / Sub-events: https://docs.pretix.eu/guides/event-series/
    • Quotas: https://docs.pretix.eu/dev/api/resources/quotas.html
    • Conceitos gerais: https://docs.pretix.eu/dev/development/concepts.html
    • Self-hosting e configuração: https://docs.pretix.eu/self-hosting/config/
  • Marketplace de plugins (extensões oficiais e de terceiros):
    • https://marketplace.pretix.eu