Skip to content

Plataforma completa de venda de ingressos e gestão de eventos desenvolvida em ASP.NET Core. Inclui dashboard para organizadores, seleção visual de assentos, geração de ingressos em PDF/QR Code e controle de acesso via Identity.

License

Notifications You must be signed in to change notification settings

Louiz404/Ticket-Sales

Repository files navigation

🎫 TicketSales - Gestão de Eventos e Ingressos

NetVersion Status License

TicketSales é uma plataforma web completa para venda de ingressos e gestão de eventos. O sistema oferece fluxos distintos para Organizadores (gestão, dashboard financeiro) e Clientes (compra, escolha visual de assentos e carteira digital).

📸 Screenshots

Loja de Eventos Seleção de Assentos
Loja Assentos
Dashboard do Organizador Ingresso (PDF + QR Code)
Dashboard Ticket

🚀 Funcionalidades

👤 Área do Cliente

  • Compra de Ingressos: Fluxo seguro com validação de concorrência.
  • Mapa de Assentos: Seleção visual interativa (Livre/Ocupado/Selecionado).
  • Carteira Digital: Visualização dos ingressos adquiridos.
  • QR Code Dinâmico: Geração automática para entrada no evento.
  • Download em PDF: Geração de comprovante oficial para impressão.

🏢 Área do Organizador / Admin

  • Dashboard Analítico: Gráficos de vendas e faturamento em tempo real.
  • Gestão de Eventos: CRUD completo com upload de imagens e geolocalização.
  • Validação: Controle de lotação e status do evento.

🛠️ Tecnologias Utilizadas

  • Backend: ASP.NET Core MVC (C#)
  • Banco de Dados: SQL Server / Entity Framework Core
  • Autenticação: ASP.NET Core Identity (Roles: Admin, Organizador, Cliente)
  • Geração de PDF: Rotativa.AspNetCore (wkhtmltopdf)
  • QR Code: QRCoder
  • Mapas: Integração Leaflet + OpenStreetMap
  • Frontend: Razor Views, Bootstrap 5, JavaScript

📐 Arquitetura e Estrutura

O projeto segue o padrão MVC com uma camada de serviço robusta (TicketService) para isolar a regra de negócios dos controladores.

classDiagram
    class Cliente {
        +int Id
        +string UsuarioId
        +string Nome
        +int Idade
        +string Email
        +bool Ativo
    }

    class Evento {
        +int Id
        +string Nome
        +int QuantidadeLugares
        +int LugaresDisponiveis
        +decimal Valor
        +string OrganizadorId
        +string Local
        +double Latitude
        +double Longitude
    }

    class Assento {
        +int Id
        +string CodigoAssento
        +bool Ocupado
        +int EventoId
        +int? CompraId
    }

    class Compra {
        +int Id
        +DateTime DataCompra
        +decimal ValorTotal
        +TiposDePagamento MetodoPagamento
        +int ClienteId
        +int EventoId
    }

    class TiposDePagamento {
        <<enumeration>>
        Pix
        CartaoCredito
        CartaoDebito
        Boleto
    }

    %% Relacionamentos
    Evento "1" *-- "*" Assento : Contém (Composição)
    Compra "1" --> "1" Cliente : Pertence a
    Compra "1" --> "1" Evento : Refere-se a
    Compra "1" --> "*" Assento : Reserva
    Compra ..> TiposDePagamento : Usa
Loading

⚙️ Instalação e Execução

Pré-requisitos

  • .NET SDK (10)
  • SQL Server (LocalDB ou instância completa)

Passos

  1. Clone o repositório:

    git clone https://github.com/Louiz404/TicketSales.git
    cd TicketSales
    
  2. Configure o Banco de Dados:
    No arquivo appsettings.json, verifique se a string de conexão DefaultConnection está correta para o seu ambiente.

  3. Execute as Migrations:

    update-database
    
  4. Inicie a Aplicação:

    dotnet run
    

🔐 Acesso Inicial (Seed Data)

Ao rodar o projeto pela primeira vez, o sistema (SeedData.cs) criará automaticamente um usuário Administrador para testes:

Tipo E-mail Senha
Admin admin@ticket.com Teste123@

Nota: Você pode criar novas contas de "Organizador" ou "Cliente" diretamente pela tela de registro ("Criar Conta").


📄 Licença

Este projeto está sob a licença GNU.

About

Plataforma completa de venda de ingressos e gestão de eventos desenvolvida em ASP.NET Core. Inclui dashboard para organizadores, seleção visual de assentos, geração de ingressos em PDF/QR Code e controle de acesso via Identity.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages