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).
| Loja de Eventos | Seleção de Assentos |
|---|---|
![]() |
![]() |
| Dashboard do Organizador | Ingresso (PDF + QR Code) |
|---|---|
![]() |
![]() |
- 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.
- 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.
- 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
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
- .NET SDK (10)
- SQL Server (LocalDB ou instância completa)
-
Clone o repositório:
git clone https://github.com/Louiz404/TicketSales.git cd TicketSales -
Configure o Banco de Dados:
No arquivoappsettings.json, verifique se a string de conexãoDefaultConnectionestá correta para o seu ambiente. -
Execute as Migrations:
update-database
-
Inicie a Aplicação:
dotnet run
Ao rodar o projeto pela primeira vez, o sistema (SeedData.cs) criará automaticamente um usuário Administrador para testes:
| Tipo | Senha | |
|---|---|---|
| Admin | admin@ticket.com |
Teste123@ |
Nota: Você pode criar novas contas de "Organizador" ou "Cliente" diretamente pela tela de registro ("Criar Conta").
Este projeto está sob a licença GNU.



