Done by students at The University of Texas MIS 6308 Team 3
Transcript of Done by students at The University of Texas MIS 6308 Team 3
Team 3 2
Table of Contents 1. Title page team 3 ...................................................................................................................... 1
1.1 Table of Contents ............................................................................................................................. 2
2. Executive summary .................................................................................................................. 3
2.1 Problem statement ......................................................................................................................... 4
3. Existing system
3.1 Existing Context diagram and Use Case diagram ................................................................ 5
3.2 Use Case description ...................................................................................................................... 6
3.3 Class diagram ................................................................................................................................... 8
3.4 Data dictionary ................................................................................................................................ 9
3.5 Sequence diagram ........................................................................................................... 10
4. Proposed system
4.1 Context diagram .............................................................................................................................12
4.2 Use Case diagram...........................................................................................................................13
4.3 Use Case description ....................................................................................................................14
4.4 Class diagram ..................................................................................................................................17
4.5 Data dictionary ...............................................................................................................................18
4.6 Sequence diagram ........................................................................................................................19
4.7 Functional specification document .......................................................................................21
4.8 Interface design ..............................................................................................................................22
4.9 Database design .............................................................................................................................23
4.10 Complete class diagram............................................................................................................24
4.11 Software design ...........................................................................................................................25
4.12 Controls ..........................................................................................................................................26
5. Conclusion ................................................................................................................................ 27
Team 3 3
Executive Summary
Eventbrite is an interesting web tool that is used to organize events, keep track of attendance, sell tickets, and manage invitations. It has a worldwide presence. In order to enhance event creation experience for event hosts while increasing revenue, our team recommends adding two new functionalities to the event registration system:
1) Enable hosts to search and book venues through the Eventbrite system 2) Enable a flyer printing function as an option after an event has been created
The first option involves with the host creating an event. While the event is being created, the web page will have option for the host allowing them to search venues based on budget limit, distance range, and customer feedback. Once the host has entered the search criteria and clicked the Search button, a list of results will appear. The host can further filtering the search results according to customer feedback or distance range. After the host has decided on and selected the desired venue, the Eventbrite system will direct the host to the booking schedule and ask for approximate attendees, event dates, and schedule time. Once host clicks “Book,” the system will ask the user for a booking fee. This fee contains the transaction fee and the venue fee. This transaction will be done by the Eventbrite payment system. After the payment has been processed, the system directs the host back to event creation page and continues the creating process. The existing address entering process will still be in place. This proposed venue searching functionality is optional. If host has a place in mind, he or she could simply enter the street address of the venue and skip searching and booking process.
The second function enables the host to print flyers. This printing function gives the host an incentive to print flyer with the same design as the event web site. It is also convenient for those who want the event to be published not only online but offline as well. After host has created an event, the Eventbrite web page will display the option of printing flyers. The host can choose a flyer layout from the Eventbrite system templates, and the system will save the template along with quantity needed and dimension of the flyers. Once the host clicks “Print,” the system will submit all the printing details to an external printing company. Simultaneously, the system will display to the host, printing company information, date and the location to pick up flyer. In the case where the host wants the flyers to be shipped, the shipping address is collected at the time when the user picks template. Charges of printing and shipping will be made through the external printing company.
This improvement will require two distinct projects:
Functionality 1: Creating event venue booking system. The module of this project will include customer reviews (star ratings and written reviews), distance calculations (distance between venue and host), and data integration (gathering venue data). This project will require 2 functional resources, 4 developers, 1 DBA, 1 PM, and 1 project coordinator. The total cost will be $360,000, which includes the salary for the resources as well as the hardware and software requirements. It can be completed in six months, which means the completion date will be May 1, 2014.
Team 3 4
Functionality 2: Providing flyer printing service. This project will be completed by May 1st, 2014. The module of this project will include implementation of flyer template (template and integration with event information) and data integration (link to third-party printing service). It will require 1 functional resource, 2 developers, 1 PM, and 1 project coordinator. The total cost will be $200,000 which includes the salary for the resources as well as the hardware and software requirements. This project can be completed in six months, which means the completion date will be May 1, 2014.
Team 3 5
Problem Statement
1) Current system does not allow user to search for or book venues 2) No option to print flyer
The objectives:
1) Improve customer service 2) Enhance customer experience in creating events 3) Enable customer to access venue information, including availability, customer
ratings, and estimated cost of using the venue 4) Enable customer to print flyers with many template selections which is inn
consistent with event web page
Team 3 7
3.2 Existing Use case description
Log In use case
Primary actor: Host and eventbrite system Brief description: Process user log in Normal flow: 1. User enters email address and password <trigger>
2. System verify credentials 3. System allows for access 4. System shows user main page
Exceptions: 1.1 If user doesn’t have an account, execute Register use case. 1.2 If user forget log in information, system requests for email address and
sends reset link to host 2.1 If user’s credentials do match with system, it requests to enter again.
Register use case
Primary actor: Host Stakeholder: Host and eventbrite system Extend: Log In Brief description: Process user registration Normal flow: 1. Host clicks register account <trigger>
2. System displays registration form, and host enters email address, password, name
3. System verify email address, no duplications 4. System creates account for the hosts 5. System directs host to user main page
Exceptions: 2.1 System finds duplicate email address, requests host to re-enter information
Create event use case
Primary actor: Host and eventbrite system Stakeholder: Host and eventbrite system Brief description: Process event creation Normal flow: 1. Host clicks create event <trigger>
2. System asks host to fill out event info namely name of event, description, specific location, ticket info, categories, privacy settings
3. Host clicks publish event 4. System validates form and shows event summary
Exceptions: 2.1 User enters event details and selects design page option 2.2 When host finishes designing, Do step 3 3.1 If user did not enter event name, stop creation process and inform user
to enter title 3.2 If user did not enter event date and time, stop creation process and
inform user to enter date and time 3.3 Do step 3
Team 3 8
Edit event use case
Primary actor: Host Stakeholder: Eventbrite system Brief description: Process event edit Normal flow: 1. When host clicks edit event <trigger>
2. System directs host to event dash board 3. Host edits event details such as number of tickets and or the ticket
price and or create more tickets and submits form 4. System validates new form displays new event summary
Exceptions: 4.1 System resets any missing values to previous entry and displays event summary
Team 3 10
3.4 Data dictionary for existing system
Log in = email address + password
Host = name + password + company info + email address
Event registration = Event Details + Tickets + Event Setting
Event details = Event Tittle + (Location) + Date& Time + (Event Logo) + Event Description +
(Organizer name) + (Organizer description) + Links to Facebook and Twitter?
Tickets = Ticket Name + {Quantity} + ticket type [Donation | Free | Paid] + (setting)
Ticket setting = ticket description + sales channel +tickets sales start + tickets sales end + ticket
visibility [hidden| shown] + tickets allow per order minimum + maximum
Sales channel = online sales? + At the door sales?
Event setting = listing privacy [public |private] + primary event category [Business + Classes +
Conference + Endurance + Food + Outdoors + Others] + secondary category [Comedy + Fundraiser
+ Performing Arts + Religion + Movies] + show remaining tickets?
Privacy private = [Attendees can share this event on Facebook, Twitter, and LinkedIn? |
Invite-Only | Password protected + password]
Team 3 15
4.3 Use case description
Create event use case
Primary actor: Host and eventbrite system Stakeholder: Host and eventbrite system Brief description: Process event creation Normal flow: 1. After host logged in, host clicks Create Event <trigger>
2. System asks host to fill out name of event, description, specific location, ticket info
3.1 If user would like to search a venue, system executes search venue use case
3.2 If user would like to book a venue, system executes book venue use case
4. After booking a venue, system directs host back to create event page 5. Host creates tickets (ticket name, quantity, type) 6. Host publishes event
Exceptions: 4.1 If host doesn’t wish to book venue through eventbrite, host clicks return
4.2 System directs host back to creating event page 4.3 Go to step 5
Search venue use case
Primary actor: Host and eventbrite system Stakeholder: Host and eventbrite system Extend: Create event use case Brief description: Process venue searching based on user-set budget, distance range and filter
result with customer feedback Normal flow: 1. While creating event, host clicks Book venue <trigger>
2.1 If host wants to search based on budget range, see sub flow 2.1 2.2 If host wants to search using distance range, see sub flow 2.2 2.3 If host wants to display customer feedback, see sub flow 2.3 3. When host selects one venue, system executes book venue use case
Sub flow: 2.1 A. Host clicks Price tab B. System asks for min budget and max budget C. Host clicks search D. System displays venue name, location, estimated cost E. Do step 3
2.2 A. Host clicks Distance tab B. System asks for desired distance range and an address C. Host clicks search D. System displays venue name, location, distance E. Do step 3
2.3 A. Host clicks Guest rating tab B. System displays customer comments, rating and stars C. Do step 3
Exceptions: 2.1 A. If host doesn’t wish to book venue through EB system B. Host clicks back, system directs host to creating event page
Team 3 16
2.2 A. If host doesn’t find a desired venue B. Host clicks back, system directs host to creating event page
Book venue use case
Primary actor: Host and eventbrite system Stakeholder: eventbrite system, venue hosts Extend: Search venue Include: Make payment Brief description: Process venue booking Normal flow: 1. When host selects one venue from query result, clicks Book <trigger>
2. System displays the booking schedule with selected venue name and available dates and time slot and room capacity
3. Host selects desired date and time, approximate number of attendees. 4. Host clicks Book 5. System executes payment use case
Exceptions: 2.1 A. If estimated attendee is greater than capacity of the venue, system shows warning message and request host to select another venue
2.2 A. If host can’t find availability, host clicks back to query list B. Repeat search venue, if necessary
Make payment use case
Primary actor: Host and eventbrite system Stakeholder: eventbrite system and venue hosts Brief description: Process payment Normal flow: 1. Once host clicks Book, system directs host to payment page <trigger>
2. System requests for billing info (name, card type, credit card #, expiration date) and payment info (name, billing address)
3. Host enters information and clicks Pay 4. System display confirmation message with venue name, date, time, and
payment info. System sends receipt to host. 5. Host clicks back to creating event page
Exception: 4.4 A. If credit card was declined, system displays error message and requests for another payment method
Print flyer use case
Primary actor: Host and eventbrite system Stakeholder: Host and printing company Extend: Create event use case Brief description: Process flyer printing Normal flow: 1. Once event has been created, system shows the option of printing flyer
when host clicks Get Started <trigger> 2. System displays the templates and asks for quantity and dimension.
Price is shown 3. Host selects desired templates, quantity, and dimensions. Clicks Submit
Team 3 17
4. System displays confirmation page with estimated date and printing company contact info
Exception: 3.1 If host would like the flyer to be shipped, host enters shipping info (name, address)
3.2 Do step 4.
Team 3 19
4.5 Data dictionary
Log in = email address + password
Event registration = Event Details + {search venue} + {search result} + (Book venue) + Tickets +
event setting
Search venue = (distance range min {miles} max) + Address [Street | State | City| Zip code] +
(budget min {price} max)
Search result = venue name + type + phone + address + max capacity + estimated cost + picture
gallery + customer feedback
Customer feedback = customer name + comments + stars
Book venue = reservation detail + booking summary + payment method + confirmation
Reservation detail = venue name + address + event time [time] + event date [calendar]
Booking summary = venue name + address + event time + event date + booking fee + transaction
fee + payment method
Payment method = Card holder name + card type [VISA | Master | American Express| Discover] +
card number + expiration date + security code + billing address
Confirmation = confirm message + venue name + event time + event date + payment method
Tickets = Ticket Name + {Quantity} + ticket type [Donation | Free | Paid] + (ticket setting)
Ticket setting = ticket description + sales channel +tickets sales start + tickets sales end + ticket
visibility [hidden| shown] + tickets allow per order minimum + maximum
Sales channel = online sales? + At the door sales?
Event setting = listing privacy [public |private] + primary event category [Business + Classes +
Conference + Endurance + Food + Outdoors + Others] + secondary category [Comedy + Fundraiser
+ Performing Arts + Religion + Movies] + show remaining tickets?
Privacy Private = [Attendees can share this event on Facebook, Twitter, and LinkedIn? | Invite-Only
| Password protected + password]
Print flyers = template [user designed page | template1 | template 2 | template 3| template4] + flyer
size [8.50” * 10.98” | 3.74” * 8.27”] + paper color [red | green | yellow |white] + printed side [front |
front and back] +quantity + price +shipping address
Shipping address = Street + city + state + zip code + Name
Team 3 20
4.6 Sequence diagram
Sequence diagrams of proposed system
1) General
User/
Host
EB
System Venue
Log into System
Public
space
EB
spaceSystem
space
Payment
Click “Create event” and fill
out event details
System authorize
Do venue search and booking
Search and book venue
Venue searched and booked
Request billing and payment info
Make payment
Update
payment
Payment
updatedSend confirmation email
Publish event
Update venue
Venue updated
Flyer
Start to print flyer
Update flyer
Flyer updated
Display confirmation page
Register new account
User
Crete account
Account Created
Request re-enter
Ticket
Click “Free ticket”, “Paid ticket”,
or/and “Donation” and fill out ticket
details
Create ticket
Ticket created
Event
Create
event
Event
created
Team 3 21
2) Search and book and payment
User/
Host
EB
System Venue
Click “Book venue”
Click “Return”
Click “Search result list”
Get venue
schedule
Public
space
EB
space
System
space
Payment
Show venues list
Return to creating event page
Enter info and click “Pay”
Search venue
Venue searched
Select venue
Venue schedule
got
Display venue schedule
Click “Book”
Return to search result list page
Update venue
schedule
Venue schedule
updatedRequest billing and payment info
Request another venue
Update
payment
Payment
updated
Ask for other credit card info
Send confirmation email
Team 3 22
3) Print flyer
User/
Host
EB
System
Public
space
EB
space
System
space
Flyer
Click “Print” flyer
Ask for template, quantity and
dimension
Summit template, quantity and
dimension
Flyer updated
Update flyer
Display confirmation page
Team 3 23
4.7 Functional specification document
New functional specification:
Venue search and book function:
1) The Eventbrite system will allow the host to search for venues using any of the
following three options: host’s budget, distance range, and customer review. The
budget is based on an estimated cost of using a certain venue and the host’s desired
budget range. Distance range is the measurement between host’s designated
address and user-desired number of perimeter miles around it. Customer review is
another filter where the host can see the ratings and comments from the general
public of a specific venue.
2) This search function is optional. Therefore, if the host does not wish to search a
venue using the Eventbrite system, he or she could simply enter a physical address
while creating the event.
3) Another new function is the option to book venue if user chooses to. The system will
then charge user for booking fee. This function is also optional. The host could
search a venue and not book it.
Print flyer function:
1) After the event has been created, the system will give the host the option to print
flyers. The information about the flyer will be sent to a third-party company
electronically and the user will either receive the flyers in mail or pick them up in
person, depending on the user’s preference. Similarly, the host could also choose not
to print flyers at all.
Team 3 36
4.11 Software design
1) Method Name: Search_venue() Class Name: Venue Clients (Consumers): Eventbrite registered users
Associated Use Cases: Search, Book, and Make Payment use cases
Description of Responsibilities: To return a list of venues according to the selected
criteria
Arguments Received: Budget amount, Distance range, and customer review flag
Type of Value Returned: List of venues
Pre-Conditions: System should include a list of all the available venues, the cost and
location of those venues. The list of venues must be updated periodically to reflect the
reservations that are made within and outside of the Eventbrite event location booking
system.
Post Condition: The user receives a list of venues based on the specified criteria
Pseudo Code:
The system checks for the customers criteria for searching through the arguments passed
Switch (option_Value)
CASE budget amount:
1. Retrieve the list of all available venues
2. Retrieve the cost of all the available venues
3. Compare the cost of available venues with the budget amount
4. Show the venue only if the cost is lesser than or equal to the budget amount
CASE Distance Range:
1. Retrieve the list of all available venues
2. Retrieve the location of all the available venues
3. Get user input address
4. Calculate the distance between available venues and the user
5. Show the venue only if the distance is lesser than or equal to the distance range
specified by the customer
Case Customer Review:
1. Retrieve the list of all available venues
2. get_reviews() for all the listed venues
3. Sort the list based on review and then display.
2) Method Name: get_reviews() Class Name: Venue Clients (Consumers): Eventbrite registered users
Associated Use Cases: Search, Book, and Make Payment use cases
Description of Responsibilities: To return a list of reviews for the selected venue
Team 3 37
Arguments Received: Venue name
Type of Value Returned: List of reviews
Pre-Conditions: System provides an option to submit feedback of previous event
organizers who have used the listed venue with or without the Eventbrite booking system.
The feedback includes a ranking system in the scale of 0-5, and comments.
Post Condition: The function returns a list of reviews from Eventbrite system and from
external sources.
Pseudo Code:
1. Retrieve all the feedback (rankings in the scale of 0-5) of prior event organizers,
event attendees from the Eventbrite system for the particular venue
2. Retrieve all the posts, comments in Facebook tagged with the keyword (venue name)
3. Retrieve all the tweets in twitter tagged with the key word (venue name)
4. Retrieve all the posts/Images in Google+ tagged with the key word (venue name)
5. Retrieve all the images posted in Instagram with the name or location of the Venue
6. Display available comments, posts etc. from external sources and the average of all
the retrieved feedback rankings.
3) Method Name: Book_venue() Class Name: Venue Clients (Consumers): Eventbrite registered users
Associated Use Cases: Search, Book and Make Payment use cases
Description of Responsibilities: To book venue
Arguments Received: Venue name, date
Type of Value Returned: Venue booking confirmation
Pre-Conditions: The user will have access to a list of all the available venues and selects
one or more venues to reserve for a particular date.
Post Condition: The user will receive a booking confirmation for the venue/venues
selected.
Pseudo Code:
1. Initialize a session.
2. Get the particular venue for the particular date and time
3. Get the schedules of selected venue for the whole week upon receiving the user
requested date
4. If there are bookings with less than 12 hours of time, break between the requested
times
5. Then return error message saying venue not available
6. Else
7. Update Payment ()
8. Update Venue ()
Team 3 38
9. Release the lock for that venue
10. End Session
11. Exit
4) Method Name: Make_payment() Class Name: Payment Clients (Consumers): Eventbrite registered users
Associated Use Cases: Search, Book, and Make Payment use cases
Description of Responsibilities: To accept payment for a particular booking
Arguments Received: Venue name, date, credit card info, billing address, user info
Type of Value Returned: Payment confirmation
Pre-Conditions: The user will select one or more venues to reserve for a particular date
and initiates payment.
Post Condition: The method will return a payment confirmation to book_venue method.
Pseudo Code:
1. Initialize a session
2. Get the user info (user name, billing address)
3. Get credit card info
4. Use external APIs to enable payment (APIs from financial institutions to enable fee
payment)
5. Verify credit card info
6. If the Institution rejects the user credentials
7. Return error message ‘ invalid credentials with alternative payment options’
8. Else
9. Return successful payment
10. End Session
11. Exit
5) Method Name: Update_Venue() Class Name: Venue Clients (Consumers): Eventbrite registered users
Associated Use Cases: Search, Book, and Make payment use cases
Description of Responsibilities: To update list of available venues after booking
Arguments Received: Venue name, date, payment confirmation
Type of Value Returned: Updated list of available venues
Pre-Conditions: The user must successfully complete the payment for the selected venue
Post Condition: The method will update the list of available venues and send a
confirmation to the user
Pseudo Code:
1. Get the Venue info, date, user name, and billing address
Team 3 39
2. Get payment confirmation
3. Remove the venue name from the available venue list for that particular date and
time (The actual implementation of the venue list can be in the form of linked list,
doubly linked list stacks etc.)
4. Send confirmation to the user for the selected venue, and the selected date and time
5. Exit
Team 3 40
4.12 Controls
The control mechanism we have designed is a preventive one; this should be implemented externally as well as internally. Customer who has an account with the Eventbrite system is allowed to login by providing the correct combination of username and password. Only registered user could use the Eventbrite system to create event, book venue, make payment, and print flyers. Non-registered users could only browse for events, buy tickets, or write reviews. For internal implementation we create a session and place a lock on a venue for a particular time that was requested by the user when the user initializes the booking. During this booking session the selected venue will not be available for the selected time. At the end of the booking session the available venue list will be updated upon successful payment. If the payment is not successful the venue list will not be updated and the lock on the venue will be released as soon the session is closed by the user. For external implementation we create a special account for the management of each venue when the venue manager manually reserves (external to Eventbrite system) a particular venue for a particular date he can update the status for that reservation in the system using the login. This login will provide access to only the venue managed by that venue manager thus reducing the chances for false reservation. Although we have implemented the control there is a possibility of multiple users reserving a venue simultaneously, one through Eventbrite system and the other manually through venue manager. In such case, the date and time of the reservation is noted and the reservation is provided based on first come first serve. If the user is not able to reserve a venue even after successful payment through the Eventbrite system, the user will be refunded.
Team 3 41
5. Conclusion
In our in depth analysis of the Eventbrite system, we believe that the added new
functionalities will enhance user experience and improve customer service. While, the
Eventbrite has already done a good job in assisting users to create events, there is always
room for improvements.
These two functions make the event creation process more convenient and user-
friendly for the customers. When creating events, the user has the option to search and/or
book a venue. The unique search criteria that our team is proposing will allow the user to
filter the result to meet his specific needs. After selecting the desired venue, the user does
not have to go through the hassle to call and book the venue. Instead, booking is done right
in the same system where searching takes place. It saves the user time and it improves the
efficiency of the system. With the upgraded system, searching and booking can be done in a
few clicks.
It is even better that these two functionalities are optional steps. We understand
that unexpected things happen sometimes; therefore, the user can always return to the
event-creating page without going through the entire searching and booking process.
After creating an event, the option to print flyers is the final step. The Eventbrite
system will provide the templates for the user to choose form. The system will submit the
detailed flyers, along with the customer selected layout to the printing company. This is
another convenient mechanism which is based on the user’s preferences. The most
important part is that the design of event page will be matched with the flyer. This
maintains consistency and discourages the user from printing flyers elsewhere.
Upgrading the system is not cost free. This improved system could enhance
Eventbrite’s reputation and system efficiency, thus bringing in a higher return on
investment. In the long run, this improved system would bring in a stable user base, which
in turn will generate more revenue. Therefore, upgrading the improved system could bring
in steady customer flow, generate more revenue, and sustain customer loyalty.