This project outlines the Minimum Viable Product (MVP) for a concert ticket sales application.
The application utilizes a n-tier architecture with the following components:
- Client: Web or mobile application for user interaction
- Web Server: Handles API requests and interacts with the database
- Database: Stores application data (users, concerts, tickets, etc.)
- Mobile Money API: Integrates with MTN Mobile Money for secure payments (https://momodeveloper.mtn.com/api-documentation)
The backend provides functionalities through a defined set of API endpoints:
Public User APIs:
- GET /api/v1/concerts: Lists concerts with optional filters (artist, date, venue)
- GET /api/v1/concerts/{concert_id}: Retrieves details for a specific concert
- GET /api/v1/users (requires authentication): Retrieves logged-in user information
- GET /api/v1/users/{user_id} (requires authentication and authorization): Retrieves specific user information
- GET /api/v1/tickets (requires authentication): Lists purchased tickets for a user
- GET /api/v1/tickets/{ticket_id}: Retrieves information for a specific ticket
- POST /tickets: Purchases concert tickets
- POST /users: Creates a new user account
- POST /login: Allows user login with credentials
Admin APIs:
- POST /admin/concerts: Creates a new concert entry
- PUT /admin/concerts/{concert_id}: Updates information for an existing concert
- PATCH /admin/concerts/{concert_id}/availability: Updates specific details (e.g., available seats)
- GET /admin/concerts: Retrieves a list of all concerts
- GET /admin/concerts/{concert_id}: Retrieves information for a specific concert
- DELETE /admin/concerts/{concert_id} (with restrictions): Deletes a concert
-
User Story 1: User Searches and Purchases Tickets (As a Music Fan)
- Users can search for concerts using filters.
- A list of available concerts with details is displayed.
- Users can view detailed information for each concert.
- Users can select and purchase tickets for a concert.
- The application integrates with Mobile Money for secure payments.
- Upon successful purchase, users receive confirmation and a ticket ID.
-
User Story 2: User Views Purchase History (As a Registered User)
- Users can register and create an account.
- Registered users can view their past concert ticket purchases.
- Purchase history lists concerts with details (date, venue, tickets purchased).
- Users can download or print tickets for each concert.
-
User Story 3: Browse Concerts by Genre or Interest (As a Music Fan)
- Users can browse concerts categorized by genre or other criteria.
- Users can optionally specify preferred genres or artists during registration/profile setup.
- The application recommends concerts or personalizes search results based on user preferences.
- Johanne ESSIERE