Done by students at The University of Texas MIS 6308 Team 3

41
Eventbrite system analysis and design 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

Eventbrite system analysis and design

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 6

3. Existing system

3.1 Existing Context diagram and Use Case diagram

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 9

3.3 Existing Class diagram

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 11

3.5 Sequence diagram for existing system

1) Creating event

Team 3 12

2) Edit created events

Team 3 13

4. Proposed system

4.1 Context diagram

Team 3 14

4.2 Use case diagram

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 18

4.4 Class diagram

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 24

4.8 Interface design

1. Regular Web Flow

Main Page & Log In

Team 3 25

Register

Team 3 26

Create Event & Edit Event Page

Team 3 27

2. New Functionalities

Search Venue

Team 3 28

Search Results

Team 3 29

Book Venue

Team 3 30

Book Schedule

Team 3 31

Make payment

Team 3 32

Print flyer

Team 3 33

Print flyer shipping

Team 3 34

4.9 Database design

Team 3 35

4.10 Complete class diagram

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.