🔥
Application 🔥
Event Management
The project is an event management application that allows event organizers to create
and manage events, sell tickets, and track ticket sales analytics. Attendees can browse
and search for events, purchase tickets, and receive event updates and notifications.
The application includes features such as payment integration, customizable invitations,
event logistics management, and real-time analytics for event organizers to make
informed decisions about future events.
🎯 Product Backlog
Following User Stories are categorized with the perspective of experienced developer;
to you easy might be difficult or difficult might be easy. Consider difficulty as per your
discretion. You are free to change, difficulty level, given level is just a guide line.
You need to implement any 10 user stories to complete this project.
😝 Easy, 🙂 Moderate, 🙃 Difficult
Sr User Story Level
1 As an event organizer, I want to be able to create an event 😝
🔥 Event Management Application 🔥 1
page on the application so that I can provide information
about the event, such as date, time, location, and
description.
As an event organizer, I want to be able to sell tickets for
2 my event through the application so that attendees can 😝
easily purchase tickets online.
As an event organizer, I want to be able to integrate
3
payment systems into the application so that attendees can
securely purchase tickets with their preferred payment
😝
method.
As an event organizer, I want to be able to set up different
4 ticket types and prices for my event, such as early bird 😝
pricing, VIP tickets, and group discounts.
As an event organizer, I want to be able to manage ticket
5 sales and view real-time ticket sales analytics through the 😝
application.
As an event organizer, I want to be able to create and send
6
invitations to potential attendees through the application,
with options for customizing the invitation and tracking
😝
RSVPs.
As an event organizer, I want to be able to manage event
7 logistics, such as scheduling speakers and vendors, 🙂
through the application.
As an event organizer, I want to be able to create and
8 display an event agenda on the application, so that 🙂
attendees can view the schedule of events.
As an event organizer, I want to be able to send
9
notifications to attendees through the application, such as
reminders about upcoming events or updates to the event
🙂
schedule.
As an event attendee, I want to be able to browse and
10 search for events on the application, based on location, 🙂
date, and type of event.
As an event attendee, I want to be able to purchase tickets
11 for events through the application, with options for 🙂
selecting ticket types and making payments.
12 As an event attendee, I want to be able to receive tickets 🙂
🔥 Event Management Application 🔥 2
through the application and have them stored
electronically, for easy access at the event.
As an event attendee, I want to be able to view the event
13 schedule and details on the application, such as speakers, 🙃
vendors, and event logistics.
As an event attendee, I want to be able to receive
14 notifications about event updates, such as changes to the 🙃
schedule or location.
As an event organizer, I want to be able to view analytics
15
on event performance, such as ticket sales, attendance,
and engagement metrics, to help me make informed
🙃
decisions about future events.
🎯 General Architecture
You need to implement following things
🤜 Front End, create low fidelity screens, which should have complete functionality,
validations, screen navigations etc. You can use HTML5, CSS3, Bootstrap 5 and
Javascript. Front end needs to communicate with backed properly.
🤜 Backend, Write full-fledged backed in Spring Boot. Create REST Apis, create
Spring Data Entities along with proper validations.
🤜 Database Schema, Complete database schema, would be generated using
Java Entities and Spring Data. Use Spring Data Repositories for creating queries. If
required, you may write native sqls, but that too using Spring Data Repositories.
⚠ Hints given below are for understanding purpose only, you
might need to add/modify certain things, or you might need to do
every thing from scratch. Do not consider hints as final/polished
requirements, use your logic before you work on it. Hints might be
useless to you. Again remember, hints are just guidelines, use it
for understanding purpose only.
🎯 Hint for Database
Table: User
🔥 Event Management Application 🔥 3
Column Name Data Type Description
id INTEGER Primary key
name VARCHAR(255) User's name
email VARCHAR(255) User's email address
password VARCHAR(255) Hashed password for user authentication
Table: Event
Column Name Data Type Description
id INTEGER Primary key
name VARCHAR(255) Name of the event
description TEXT Description of the event
start_date DATE Start date of the event
end_date DATE End date of the event
location VARCHAR(255) Location of the event
organizer_id INTEGER Foreign key referencing User.id
Table: Ticket_Type
Column Name Data Type Description
id INTEGER Primary key
name VARCHAR(255) Name of the ticket type
description TEXT Description of the ticket type
Table: Ticket
Column Name Data Type Description
id INTEGER Primary key
ticket_type_id INTEGER Foreign key referencing Ticket_Type.id
event_id INTEGER Foreign key referencing Event.id
price DECIMAL(10,2) Price of the ticket
quantity_available INTEGER Quantity of available tickets
start_date DATE Start date of the ticket availability
end_date DATE End date of the ticket availability
🔥 Event Management Application 🔥 4
Table: Order
Column Name Data Type Description
id INTEGER Primary key
user_id INTEGER Foreign key referencing User.id
ticket_id INTEGER Foreign key referencing Ticket.id
quantity INTEGER Quantity of tickets ordered
order_date DATETIME Date and time of the order
Table: Invitation
Column Name Data Type Description
id INTEGER Primary key
event_id INTEGER Foreign key referencing Event.id
sender_id INTEGER Foreign key referencing User.id
recipient_id INTEGER Foreign key referencing User.id
message TEXT Invitation message
status ENUM('accepted', 'rejected', 'pending') Invitation status
Table: Schedule
Column Name Data Type Description
id INTEGER Primary key
event_id INTEGER Foreign key referencing Event.id
start_time DATETIME Start time of the scheduled event
end_time DATETIME End time of the scheduled event
speaker_id INTEGER Foreign key referencing User.id
topic VARCHAR(255) Topic of the scheduled event
description TEXT Description of the scheduled event
Table: Notification
Column Name Data Type Description
id INTEGER Primary key
🔥 Event Management Application 🔥 5
user_id INTEGER Foreign key referencing User.id
event_id INTEGER Foreign key referencing Event.id
message TEXT Notification message
created_date DATETIME Date and time the notification was created
Table: Analytics
Column Name Data Type Description
id INTEGER Primary key
event_id INTEGER Foreign key referencing Event.id
ticket_sales INTEGER Number of tickets sold for the event
attendance INTEGER Number of attendees for the event
Metrics for measuring attendee engagement at the
engagement_metrics TEXT
event
🎯 Hints for REST Apis
1. Create Event: POST /events
2. Get Event Details: GET /events/{eventId}
3. Update Event Details: PUT /events/{eventId}
4. Delete Event: DELETE /events/{eventId}
5. Get Ticket Types: GET /events/{eventId}/ticket-types
6. Create Ticket Type: POST /events/{eventId}/ticket-types
7. Update Ticket Type: PUT /events/{eventId}/ticket-types/{ticketTypeId}
8. Delete Ticket Type: DELETE /events/{eventId}/ticket-types/{ticketTypeId}
9. Get Attendee List: GET /events/{eventId}/attendees
10. Add Attendee: POST /events/{eventId}/attendees
11. Update Attendee: PUT /events/{eventId}/attendees/{attendeeId}
12. Delete Attendee: DELETE /events/{eventId}/attendees/{attendeeId}
13. Get Event Analytics: GET /events/{eventId}/analytics
🔥 Event Management Application 🔥 6
14. Get Event Agenda: GET /events/{eventId}/agenda
15. Send Invitation: POST /events/{eventId}/invitations
🎯 Hints for Screens
1. Home Screen - Displays a list of upcoming events and featured events.
2. Event Details Screen - Displays detailed information about a specific event, such as
event name, date, time, location, description, ticket types, and prices.
3. Ticket Selection Screen - Allows the user to select the number and type of tickets
they want to purchase for an event.
4. Payment Screen - Displays the total cost of tickets selected and prompts the user to
enter their payment details.
5. Ticket Confirmation Screen - Displays confirmation of the user's ticket purchase,
including a QR code for electronic ticket storage and access.
6. My Tickets Screen - Displays a list of all the tickets the user has purchased for
various events, with options for electronic ticket storage and event check-in.
7. Event Schedule Screen - Displays the schedule of events for a specific event,
including information about speakers, vendors, and event logistics.
8. My Events Screen - Displays a list of all the events the user has purchased tickets
for, along with the event details and electronic ticket storage options.
9. Event Creation Screen - Allows event organizers to create a new event and enter all
the necessary details, such as event name, date, time, location, description, and
ticket types and prices.
10. Event Management Screen - Allows event organizers to manage their events,
including ticket sales, attendee information, and event logistics.
11. Invitation Creation Screen - Allows event organizers to create and send invitations
to potential attendees, with options for customization and RSVP tracking.
12. Analytics Screen - Displays event performance analytics, such as ticket sales,
attendance, and engagement metrics, to help event organizers make informed
decisions about future events.
🔥 Event Management Application 🔥 7
🔥 Event Management Application 🔥 8