TicketHive

🎫 TicketHive

Booking & Event Management API built with Clean Architecture in ASP.NET Core


🧩 Overview

TicketHive is a robust event ticketing API built with ASP.NET Core (Clean Architecture).
It provides secure authentication, ticket management, VNPay integration, and modular microservices-ready architecture.

Designed for scalability, reliability, and developer-friendly integrations.


🧠 Tech Stack

.NET Redis PostgreSQL RabbitMQ VNPay SMTP JWT Unit Test


🚀 Features

🔐 Authentication & Security

🎟️ Ticket & Event Management

💳 Payment Integration

⚙️ System Design


📖 API Documentation

Swagger Screenshot

🔗 View Live API Documentation

Resource URL Description
🏠 Main Docs GitHub Pages Complete API overview
🧪 Swagger UI Swagger UI Interactive testing interface
📄 OpenAPI Spec swagger.json Raw OpenAPI file
💡 Demo Page Demo Example endpoints

🏗️ Project Structure

TicketHive/
├── src/
│   ├── TicketHive.Api/              # API Layer (Controllers, Middleware)
│   ├── TicketHive.Application/      # Core Business Logic
│   ├── TicketHive.Domain/           # Entities, Enums, and Rules
│   └── TicketHive.Infrastructure/   # Database, Repositories, Integrations
│
├── tests/
│   └── TicketHive.Tests/            # Unit and Integration Tests
│
├── docs/
│   ├── swagger.json                 # OpenAPI Specification
│   └── swagger-ui/                  # Swagger UI Static Files
│
└── docker-compose.yml               # Docker Setup

🏗️ Getting Started

Prerequisites

Installation

  1. Clone the repository
    git clone https://github.com/hnagnurtme/TicketHive.git
    cd TicketHive
    
  2. Restore dependencies
    dotnet restore
    
  3. Update database connection string

    Edit src/TicketHive.Api/appsettings.json with your database connection string.

  4. Run database migrations
    dotnet ef database update --project src/TicketHive.Infrastructure
    
  5. Run the application
    dotnet run --project src/TicketHive.Api
    

Using Docker

docker-compose up -d

The API will be available at https://localhost:7043 or http://localhost:5043.

🧪 Testing

Run the test suite:

dotnet test

Generate test coverage report:

./Test.sh

Authentication

All protected endpoints require a Bearer token in the Authorization header:

Authorization: Bearer <your-jwt-token>

🤝 Contributing

We welcome contributions! Please see our Contributing Guidelines for details.

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes and commit: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.