Project repository link:
https://github.com/YinLam-Chan/Booking-MasterApplication demo video:
Project description:
The Booking Master platform is for people who want to find activities to go to in their city or while they are going away for holiday. The users can search for events that are held in their city, or on a specific date, or by event category. The users can create an account to book for the events they are interested in. For event organizers, they can create an account to post their events on the platform.
Technology used:
Using Django for the backend, with Python programming language, PostgreSQL for the database, and Bulma CSS for CSS library.
Application features:
- Conditional rendering
- Use of Objects and Models in Django
- Use pagination to manage large data sets
- Query and filter events objects based on requirements
- The users can be event organizer and also event attendees
- User-friendly UI
The items in the navigation bar will show differently depending on whether the user is logged in or not. For logged in user, the navigation bar will show "My Bookings" and "Logout", otherwise it will show "Register" and "Login". The logged in user can click on the events to see the event detail otherwise will be prompted to login first.
The built-in User object and Auth model in Django is used to handle user authentication, registration, login and logout functionalities. Custom models are created for Event, Category, and Booking, Django migrates the tables to the PostgreSQL database.
The pagination is done in the backend using Django's built-in Paginator class. It splits a list of objects into page objects to show a decided number of items per page, making it easier for users to browse through the events.
The filtering is done in the backend using Django's QuerySet API to query the database and return the filtered results. There are filtering sections in the events page and in the homepage, users can filter events by category, date, and location which makes it easier for them to find the events they are interested in. The featured events section in the homepage shows the top 5 events with the highest number of bookings and the event dates are happening in the future, allowing users to quickly identify popular events.
In the "My Bookings" page, the users can see the events they have booked as an attendee, and also the events they have posted as an organizer. For the events they have posted, they can only see the event details. If the users are not the event organizer, they will see a booking panel for them to book the event.
Whenever requires users' input in a form, there are input validation to ensure the data entered is valid. Using the message module in Django and Bulma CSS labels to provide feedback to users on their actions.