Eventbook is an event marketplace template that helps you create platform like EventBrite for event organizers to list, manage and sell tickets for their events and for people to easily discover events around the world.
Robust searching with filtering by keywords, date, location & category and sorting by date or relevance.
Fully mobile responsive design for all pages.
Easy same-page editing for event organizers.
Ticket ordering system like EventBrite with multiple registrations on checkout.
Stripe payments with multi-currency support.
Event organiser profiles with user profiles as fallback.
Multiple ticket types (free, paid, donation).
Event manager/reports for sales.
Add to calendar buttons for Google and Yahoo.
Social sharing buttons for Facebook, Twitter & WhatsApp.
Post-ordering ticket/registration editing for user-buyers.
There are two search event search bars in the app. The first one is on the homepage and takes parameters sent to the
/events page and fetched by the search bar on that page. Searching on the
/events page is powered by the search & autocorrect plugin and a hidden repeating group named
search RG with 1px by 1px dimensions inside the group named Events Hold. This repeating group should not be deleted unless you know what you're doing.
Categories are setup as objects with each event having a field that is a list of categories. Each event will have the All category and another category set by the event organiser.
Organisers can manage/edit events using the event management sidepanel. This panel makes use of some custom CSS to support vertical scrolling and fixed position of normal groups. To have this kind of UI, the groups are set to a lesser height than the actual height required to show all contained elements. This cuts off the elements and with CSS, scrolling is automatically enabled for elements below to be visible.
The last button of the sidepanel menu links to a separate page
/manage which has a dashboard showing sales reports and a list of orders. This can be extended to show a list of all attendees/ticket registrations.
This template uses an EventBrite styled ordering system. This is made possible by creating ordered ticket objects and editing their quantity and amount upon changing of quantity field in the ordering popup. After a user clicks checkout, an API workflow creates a corresponding number of ticket registration objects and send the user to the checkout page to enter information and make payment if need be. There are also additional workflows to reserve tickets and cancel orders that aren't checked out before reservations expire. You can make improvements to this ordering system.
The payment system is setup in a simple way using Bubble's Stripe plugin. However, to enable multi-currency support for ticket sales, you would need to create multiple Stripe charging workflows for each currency you want your platform to support with conditions that check for event's currency and charges in the corresponding currency.
Users can create organiser profiles that can be used across all/any event they create. In the absence of an organiser profile, the user's profile is displayed on the event and checkout page as the organiser.
Overlapping elements: You will find overlapping elements in the following locations
Group ordered_ticket outer
Group event organiser links
Group event description mobile
Group event orders lists
Group sales by type lists
Group recent orders lists
Group registration form item
Group event price labels
Element ID attribute: Certain elements have IDs set for custom CSS. Most of them are in the sidepanel reusable element. You will also find them on PictureUploader elements (For better UI).
Make sure you enable the option to add ID attribute found in your Settings > General > General Appearance
This template makes use of database objects for certain functionality as stated below:
Multi-currency support: The
currency objects are used to for payments related actions and visuals. They contain iso-2 codes for Stripe use as well as symbols for display to users. You can add or remove depending on which currencies you want to support.