EventRight is a full-stack web application inspired by EventBrite with a Kickstarter flair. This app allow its users to organize and/or contribute to an existing campaign to bring their favorite artists to their city. EventRight utilizes Ruby on Rails on the backend, a PostgreSQL database, and React.js with a Flux architectural framework on the frontend.
Special thanks to Steven Cheong for implementing Google Maps API and Google Places API. Users are now able to create events by inputting the venue name instead of the venue address. In addition, the event location is visualized when viewing an event.
EventRight is a single-page web application that delivers all it's content on one static page. All communication to the server is accomplished with API calls.
On the database side, events are called 'gatherings' to avoid conflict with reserved words in Javascript. Gatherings is stored in one table in the database containing a column for organizer_id
. This column links the user who created the event as the organizer for the event. The gatherings table has an artist
and location
column which will reveal the campaign's targeted artist and location. The start_date
and end_date
columns in the database are the campaign's start and end fund date, respectively. The start_date
is set to the date that the event form is submitted to begin the campaign immediately. The end_date
has custom validations on the model level in the back end to ensure that is is a future date. Each gatherig also has a description
, image
, tix_price
, fund
, goal
, and status
column. The description
and image
will inform other users about the campaign. The tix_price
is the price for one general admission ticket and the goal
is the amount of funds
needed to bring the artist to the music venue in the location
column. In addition, there is a category_id
column in the gatherings table because every gathering belongs to a category (genre) and will be sorted by the genre corresponding to the event's artist.
To represent the top genress, a categories table was implemented in the database with three columns: title
, description
, and image
. These columns serve as descriptors for the categories.
Bookmarks are stored in the database through a join table with columns: user_id
and gathering_id
. Bookmarks belong to a gathering and a registered user. Bookmarks are maintained on the front end in the BookmarkStore
. Signed in users may add and delete bookmarks from the front-end.
Tickets are stored in the database through a join table with columns: attendee_id
and gathering_id
. Tickets belong to a gathering and a registered user. Tickets are maintained on the front end in the TicketStore
. Signed in users may choose to fund an event by purchasing a ticket but they are not allowed to remove funding from an event.
In addition to the features already implemented, I plan to continue work on this project. The next steps for EventRight are outlined below.
Searching notes is a standard feature of EventRight. This search will look go through categories and gathering artist names and by venues.
I also plan to allow users to search events based on venues via Google Maps Api.