The Burger Joint corporate website allows clients of the Burger Joint restaurant to book table reservations and order food delivery in advance as well as as edit, delete or update their scheduled dine-in bookings or food deliveries should their plans change. A prerequisite to making a table booking or food delivery from the Burger Joint restaurant, the client must create or have a registered user account with the Burger Joint restaurant, otherwise, they will not be able to complete a table booking or order a food delivery from the restaurant.
Link to live site here.
Prior to initiating the project's development, user stories were created to give a high level understanding of what the platform's functional requirements will be and they were assigned labels based on their importance using the MoSCoW prioritization method.
The user stories were then placed into a kanban board in order to track the progress of the platform's development. The Agile development kanban board can be found here.
Once the user stories were completed, the next phase of the project was to complete the UX of all the expected pages and different CRUD functionalites in the platform. The wireframes were done with a focus on mobile and web; tablets were expected to be an enlarged version of the mobile experience.
After the wire-frames completion, a database schema was created to understand what information should be stored on the back-end database.
The Burger website consists of the following pages and features:
- Landing Page
- Menu with filtration options - web
- Menu with filtration options - mobile
- Create Table Booking Page
- View Bookings Page with options to edit or delete bookings
- Edit or Update Booking Page
- Create Food delivery order page
- View Food Deliveries Page with options to edit or delete delivery
- Edit or Update food delivery Page
- Pop-up to confirm deletion of table booking or food delivery
- Account Registration Page via username or google account
- Account Log-in Page via username or google account
- Account Log-out confirmation Page
All fucntional testing, user story testing, device compatibility testing and browswer compatibility testing can be found in the TestingMD file.
Deployment of the Burger Joint application was done from the very start of the project and continous deployment was performed after every feature implementation in order to avoid any unforeseen hurdles or blockers during the final deployment of the application. Upon implementing the django framework and PostgreSQL databse in the my local environment, in order to deploy the project, the following steps were taken:
-
I created a new application in Heroku by giving it an app name and selecting its region.
-
Then in Elephant SQL I created a new instance in order to host the database.
-
I copied the Elephant SQL Postgres URL which I then pasted into my env.py file and then added a few lines of code in my settings.py file to make my django project aware of it.
-
I completed migration of the database structure to the newly connected ElephantSQL database.
-
Once the database had been migrated to ElephantSQL and a Procfile for Heroku was created, in the application's Heroku interface I added a few config vars in the project's settings.
-
Finally in the app's Heroku interface in the deploy section, I connected the project's Github repository and initiated manual deployment.
-
The fav icon was generated by Favicon.io.
-
Online Converter was used to convert jpeg or png images into webp files.
-
Github for version control.
-
GoogleFonts for fonts selection.
-
FontAwesome for icons selection.
-
Django Framework for adminpanel, account authentication and other apps.
-
Heroku for front-end deployment.
-
ElephantSQL for database hosting.
-
Bootstrap for HTML and CSS code snippets.
-
The Code Academy Task Manager, To Do App, Code Star Blog walk-through projects for guidance during development.
-
Google API for account sign up and registration with a google mail account.
-
This tutorial on how to set up Google Authentication.
-
This StackOverflow post on how to exclude the sign up/sign in with google intermeidiary step/template.
-
The Habit Burger Grill for menu food items and menu images.
-
Cloudinary for image hosting.
-
Picusm for for placeholder images during development.
-
DrawSQL to create database schema.
-
Miro to create design wireframes.