You are on page 1of 43

Eventbrite system analysis and design

Done by the students at the University of Texas at Dallas Fall 2013

Course: MIS 6308 Group 3

Team 3

Table of Contents
1. Title page team 3 ............................................................................................................................ 1 Table of Contents ...................................................................................................................... 2 Acknowledgement ................................................................................................................... 3 2. Source document ............................................................................................................................. 4 Executive summary ................................................................................................................. 4 Problem statement .................................................................................................................. 6 3. Existing system 3.1 Context diagram and Use Case diagram ................................................................... 7 3.2 Use Case descriptions ...................................................................................................... 8 3.3 Class diagram ...................................................................................................................10 3.4 Data dictionary ................................................................................................................11 3.5 Sequence diagram ...........................................................................................................12 4. Proposed system 4.1 Context diagram ..............................................................................................................14 4.2 Use Case diagram ............................................................................................................15 4.3 Use Case description ......................................................................................................16 4.4 Class diagram ....................................................................................................................19 4.5 Data dictionary .................................................................................................................20 4.6 Sequence diagram ..........................................................................................................21 4.7 Functional specification document .........................................................................24 4.8 Interface design ...............................................................................................................25 4.9 Database design ...............................................................................................................35 4.10 Complete class diagram .............................................................................................36 4.11 Software design .............................................................................................................37 4.12 Controls ............................................................................................................................41 5. Conclusion.........................................................................................................................................42 6. Reference page ..............................................................................................................................43

Team 3

Acknowledgement
We hereby take this opportunity to express our sincere regards and gratitude to all those who have contributed their valuable time and given us their precious suggestions. The project would be considered incomplete until we thank our Professor Srinivasan Raghunathan who took immense interest in our project and guided us from the beginning of the project. Despite his busy schedule and multiple responsibilities, he was always kind and patient to listen to our difficulties and indicated to us the right path. He has also been very forthcoming and supportive. We have been given constant guidance and have been shown the right path with the correct approach and a positive attitude to work on the project and gain maximum knowledge.

Team 3

2. Source document
Whats Eventbrite
The Eventbrite is an online self-service tool which allows event organizers to plan, organize ticket, manage events and publish them online. It also allows anyone to find and purchase tickets to these events through the system. The company generates revenue by charging organizers a fee of 2.5% of the ticket price plus ninety nine cents per ticket sold, but it does not charge any fee for free events.

Executive Summary
Currently, the Eventbrite website allows registered users to create and search for events, print tickets, and creating an event webpage. The system allows event hosts to keep track of tickets sold, attendees who accept the invitation and analyze events after they have been taken place. The eventbrite features finding events which are categorized into different types of events. This website serves as the middleman between event hosts and guests. 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

Team 3

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: Function 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 ten months approximately and optimistically. Function 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 would probably be completed in six months optimistically speaking.

Team 3

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

3. Existing system
3.1 Context diagram and Use Case diagram

Team 3

3.2 Use Case descriptions


Log In use case
Primary actor: Brief description: Normal flow: Host and eventbrite system Process user log in 1. User enters email address and password <trigger> 2. System verify credentials 3. System allows for access 4. System shows user main page 1.1 If user doesnt 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 users credentials do match with system, it requests to enter again.

Exceptions:

Register use case


Primary actor: Stakeholder: Extend: Brief description: Normal flow: Host Host and eventbrite system Log In Process user registration 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 2.1 System finds duplicate email address, requests host to re-enter information

Exceptions:

Create event use case


Primary actor: Stakeholder: Brief description: Normal flow: Host and eventbrite system Host and eventbrite system Process event creation 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 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

Exceptions:

Team 3

Edit event use case


Primary actor: Stakeholder: Brief description: Normal flow: Host Eventbrite system Process event edit 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 4.1 System resets any missing values to previous entry and displays event summary

Exceptions:

Team 3

10

3.3 Class diagram

Team 3

11

3.4 Data dictionary


Log in = email address + password User = name + userID + email address + password + payment info + billing info Event = name + eventID + organization name + data + time + location + ticket 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

12

3.5 Sequence diagram


1) Creating event

Team 3

13

2) Edit created events

Team 3

14

4. Proposed system
4.1 Context diagram

Team 3

15

4.2 Use Case diagram

Improvement: 1) The difference between the existing and new system is that we provide an option to the hosts to search for venues during event creation process. The search function takes in users input such as budget, distance and customer ratings as filters to search for venues. 2) Also, we propose another function for users to print flyers if they wish to have off-line promotion.

Team 3

16

4.3 Use Case description


Create event use case
Primary actor: Stakeholder: Brief description: Normal flow: Host and eventbrite system Host and eventbrite system Process event creation 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 4.1 If host doesnt 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

Exceptions:

Search venue use case


Primary actor: Stakeholder: Extend: Brief description: Normal flow: Host and eventbrite system Host and eventbrite system Create event use case Process venue searching based on user-set budget, distance range and filter result with customer feedback 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 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 2.1 A. If host doesnt wish to book venue through EB system B. Host clicks back, system directs host to creating event page

Sub flow:

Exceptions:

Team 3 2.2 A. If host doesnt find a desired venue B. Host clicks back, system directs host to creating event page

17

Book venue use case


Primary actor: Stakeholder: Extend: Include: Brief description: Normal flow: Host and eventbrite system eventbrite system, venue hosts Search venue Make payment Process venue booking 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 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 cant find availability, host clicks back to query list B. Repeat search venue, if necessary

Exceptions:

Make payment use case


Primary actor: Stakeholder: Brief description: Normal flow: Host and eventbrite system eventbrite system and venue hosts Process payment 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 4.4 A. If credit card was declined, system displays error message and requests for another payment method

Exception:

Print flyer use case


Primary actor: Stakeholder: Extend: Brief description: Normal flow: Host and eventbrite system Host and printing company Create event use case Process flyer printing 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 4. System displays confirmation page with estimated date and printing company contact info 3.1 If host would like the flyer to be shipped, host enters shipping info (name, address) 3.2 Do step 4.

18

Exception:

Team 3

19

4.4 Class diagram

Improvement: In order for the two new functionalities to work, we have added two classes Venue and Flyer. 1) Venue class has attributes such as, customer reviews, distance, venue cost etc. which are used as filters when the user searches for venue. 2) Flyer class includes attributes such as, dimensions, price, printing company info etc. which allows host to choose flyer dimensions, and shows flyer pick up information.

Team 3

20

4.5 Data dictionary


User = name + userID + email address + password + payment info + billing info Event = name + eventID + organization name + data + time + location + ticket Venue = venueID + address + estimated cost + calculated distance +capacity +customer feedback Event registration = Event + {search venue} + {search result} + (Book venue) + Tickets 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 info = 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] Flyers = dimension + templates [user designed page | template1 | template 2 | template 3| template4] Printing company info = company name + address + phone number + operating hours Print flyers = template + 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 + customer name

Team 3

21

4.6 Sequence diagram


1) General

User/ Host Log into System Register new account

EB System

User

Venue

Payment

Ticket

Event

Flyer

Crete account System authorize Account Created Request re-enter Click Create event and fill out event details

Do venue search and booking

Search and book venue Venue searched and booked Request billing and payment info

Make payment Update payment Payment updated

Send confirmation email

Click Free ticket, Paid ticket, or/and Donation and fill out ticket details Publish event Update venue Venue updated Create ticket Ticket created Create event Event created Start to print flyer Update flyer Flyer updated Display confirmation page

Public space

EB space

System space

Team 3

22

2) Search and book and payment

User/ Host Click Book venue

EB System

Venue

Payment

Search venue

Venue searched Show venues list

Select venue Click Return Return to creating event page Get venue schedule

Display venue schedule Request another venue

Venue schedule got

Click Book Click Search result list Return to search result list page Update venue schedule Venue schedule updated Update payment

Request billing and payment info Enter info and click Pay

Send confirmation email Ask for other credit card info

Payment updated

Public space

EB space

System space

Team 3

23

3) Print flyer

User/ Host

EB System

Flyer

Click Print flyer Ask for template, quantity and dimension Summit template, quantity and dimension

Update flyer

Flyer updated Display confirmation page

Public space

EB space

System space

Team 3

24

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: hosts budget, distance range, and customer review. The budget is based on an estimated cost of using a certain venue and the hosts desired budget range. Distance range is the measurement between hosts 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 users preference. Similarly, the host could also choose not to print flyers at all.

Team 3

25

4.8 Interface design


1) Regular Web Flow Main Page & Log In

Team 3

26

Register

Team 3

27

Create Event & Edit Event Page

Team 3

28

2) New Functionalities Search Venue

This is where the user could search venues during creating events. Upon clicking Book Venue button on this page, the next page is pulled up. The different filter criteria are shown in the tabs on the next page.

Team 3

29

Search Results

Team 3

30

Book Venue

Team 3

31

Book Schedule

Team 3

32

Make payment

Team 3

33

Print flyer

Upon clicking Get Started, the host will be given the options to choose flyer templates. These templates resemble the web page created by host during event creation process.

Team 3

34

Print flyer shipping

The print flyer function will be useful when host wishes to promote his events off-line. This web page is where host would fill in shipping information if the host chooses to.

Team 3

35

4.9 Database design

Team 3

36

4.10 Complete Class diagram

Team 3

37

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 Arguments Received: Venue name

Team 3

38

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) 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 venue to reserve for a particular date. Post Condition: The user will receive a booking confirmation for the venue 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 () 9. Release the lock for that venue 10. End Session

Team 3

39

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 venue 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 2. Get payment confirmation

Team 3

40

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, date and time 5. Exit

Team 3

41

4.12 Controls
What we have designed in terms of system controls are preventive ones. 1) 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. 2) 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. 3) 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. 4) 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. 5) System allows customer to view the published event in account view. Customer has access to change, delete the existing event. System will update the account and event after edition.

Team 3

42

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 userfriendly 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 users 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 Eventbrites 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.

Team 3

43

6. Reference Page
The Eventbrite home page. Retrieved from: http://www.eventbrite.com/ About page, The Eventbrite. Retrieved from: http://www.eventbrite.com/about/ Search page, Expedia, Inc. Retrieved from: Hotels.com "Object-Oriented Systems Analysis and Design, Pearson Prentice-Hall, First Edition, 2009, Ashrafi, Noushin & Ashrafi, Hessam

You might also like