moolleer / P4-m-nes-restaurant

Portfolio Project 4: Mönes Restaurant
https://mones-restaurant.herokuapp.com/
0 stars 1 forks source link

Mönes Restaurant

Responsive Mockup

Mönes restaurant is my fourth project and is a simple restaurant booking system. This will use languages such as HTML, CSS, JavaScript Python and Django.

This project will show the use of CRUD functionality (Create, Read, Update, Delete). The user will be able create, read, update and delete bookings.

The live website can be found here.

User Experience (UX)

A visitor to Mönes Restaurant probably is interested in food and to eat at restaurants. The user wants to know what kind of food the restaurant serves and the possibilities to book a visit.

This website provides an easy way to book a table at a restaurant.

Strategy Plan

Project Goals

The main goal of this project is to allow the user to sign up, log in/out, and create/read/update/delete a table booking in a simple and effective process.

User Goals

User Expectations

User Stories

The agile methodology were used throughout the project. I used the GitHub projects board to log all user stories as my project management tool. Creating epics and user storys for this project helped me to focus on the necessary tasks and a working environment the goals where easy to visualize.

Project

Scope

EPIC: Navigation & Information

Create templates, navigation and responsive design for the site.

User Stories

EPIC: Admin Account

Create an admin account with CRUD functionalities.

User Stories

EPIC: User Account

Allow Users to create/update/manage and delete user accounts.

User Stories

EPIC: Booking

Create a booking system so the user can make a booking for a table by choosing date, time and number of people.

User Stories

EPIC: Contact Form

Create a contact form so the site User can send message to the Admin

User Stories

EPIC: Error Pages

Create status error pages so users will now if there is a problem.

User Stories

Structure

Database Model

I used principles of Object-Oriented Programming throughout this project and Django’s Class-Based Generic Views. Django AllAuth was used for user authentication.

A custom booking model was made to implement CRUD functionality. This alloed loged in user to to add, read, edit or delete a booking. This can be done both from the live website and from the admin panel. The function in the booking model also looking for available tables on the date and time the user requests, and by the number of guests the booking is for.

The table model represents the table in the restaurant with the number of available seats.

Database model:

Model

Skeleton

Wireframes

Landing Page

Wireframes Wireframes

About Us

Wireframes Wireframes

Menu

Wireframes Wireframes

Login

Wireframes Wireframes

Logout

Wireframes Wireframes

My Account

Wireframes Wireframes

Sign Up

Wireframes Wireframes

Surface

Features

Design

Color Scheme

I used the color #de7a22 from the logo to generate the colors. logo

The color palette for the website was generated from My Color

Color

Existing Features

Header

Navigation bar

Footer

Home Page

About Page

User Accounts Pages

Django allauth was installed and used to create the Sign up, Log In and Log Out functionality and pages.

menu

bookings

Future Features

Testing

All testing information can be found here testing.md

Deployment

The following steps were taken to deploy the live website to Heroku from the GitHub repository: Before final deployment to Heroku:

The site was deployed using Heroku. The steps to deploy are as follows:

  1. Go to Heroku
  2. Go to 'New' and select 'Create a new app'
  3. Input your app name and create app.
  4. Navigate to 'Settings'
  5. On the Config Vars section, enter the following values:
    • SECRET_KEY: The Secret Key for your project
    • DATABASE_URL: The URL from your ElephantSQL dashboard
    • CLOUNDINARY_URL: The URL from your Cloudinary dashboard
    • PORT: 8000
  6. Navigate to the 'Deploy' section.
  7. Connect to GitHub, search for your repo and confirm.
  8. Choose branch to deploy.
  9. Your app should now be available to see. You can choose whether to have your app automatically redeploy with every push or to keep it manual.

Credits & Content

Media

Project Acknowledgements