Skip to content

A Concert Ticket Sales System developed with Domain Driven Design (DDD) techniques. This system was designed to handle concert ticket sales, focusing on core domain elements, implementing essential DDD concepts such as entities, value objects, aggregates, and repositories.

Notifications You must be signed in to change notification settings

Solunska/e-commerce-lab4

Repository files navigation

🎫 Concert Ticket Sales System

This project is part of my EMT lab series, showcasing the use of Domain-Driven Design (DDD) techniques to build a system for managing concert ticket sales. The system is designed to handle core business logic with a focus on entities, value objects, aggregates, repositories, and services.

🛠️ Key Features

  • Domain-Driven Design (DDD): The system is built with a focus on core domain concepts, ensuring that the business logic is central and decoupled from technical concerns.

  • Concert Catalog: Manage the catalog of concerts, including artist information, venues, dates, and ticket prices.

  • Order Management: Handle the entire ticket purchasing process, from placing an order to confirming the reservation.

  • Shared Kernel: Reusable domain logic shared across bounded contexts like concert catalog and order management.

🧩 Architecture

The system is structured according to DDD principles, utilizing key concepts such as:

  • Entities: Represent core domain objects like Concert, Ticket, Order, and Customer.

  • Value Objects: Define small immutable objects such as TicketPrice and DateRange, which don't have a unique identity.

  • Aggregates: Control consistency within boundaries of related entities, ensuring proper domain logic across the system.

  • Repositories: Interface for interacting with the persistence layer, allowing us to retrieve or store domain objects like Concerts and Orders.

  • Services: Implement domain logic that cannot be naturally placed in entities or aggregates.

📂 Project Structure

  • concert-catalog: Handles the management of concerts, including adding new concerts, editing details, and listing available shows.

  • order-management: Handles the ticket sales process, including placing orders, managing payments, and ticket availability.

  • shared-kernel: Contains reusable domain logic and value objects shared across different bounded contexts.

About

A Concert Ticket Sales System developed with Domain Driven Design (DDD) techniques. This system was designed to handle concert ticket sales, focusing on core domain elements, implementing essential DDD concepts such as entities, value objects, aggregates, and repositories.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages