Giter VIP home page Giter VIP logo

hearty-dove-restaurant's Introduction

Hearty Dove Restaurant

Hearty Dove Cuisine is a website designed to reduce no-shows by providing a reservation system that allows customers easily make and manage reservations at Hearty Dove Cuisine. It is useful for friends and families who like to dine and socialise out knowing that their reservation is confirmed.

Responsive Mockup

UX

Strategy

User Goals

The two users groups are the:

  • restaurant owner would like to be able to accept online reservations.
  • the customers visiting the restaurants - wants to make a table reservation for a specific date and time.

User stories

  • Customer's goals:

    • As a user, I am able to find the information I am looking for with ease.
    • As a user, I can view the menu the restarant has to offer.
    • As a user, I can make enquiry from the website by filling out a contact form.
    • As a user, book reservation at the restaurant's website for a number of people at a specific date and time.
    • As a user, I can make a reservation as a guest user
    • As a user, I am prompted to create an account during or after making a reservation so I can manage my reservation
    • As a user, I can get feedback about my reservation after completing the reservation.
    • As a user, I can register an account so that i can easily modify or cancel my reservation
    • As a regsitered user, I can sigin to my account and update my customer details
    • As a logged in user, I can view my past or upcoming reservations.
  • Admin User's goals:

  • As an admin user, I can easily login and logout

  • As an admin user, I can login in order to access the admin dashboard

  • As an admin user, I can update the menu item from the backend

  • As an admin user, I can add and update dining hours

  • As an admin user, I can add or modify a table so that it would be easy to assign customers to tables

  • As an admin user, I can view list of reservations

  • As an admin user, I can approve or decline a reservation

  • As an admin user, I can allocate confirmed reservations to tables so consumers don't keep making bookings when there are no available tables for their party size, date and time.

Scope

The following features will be implemented, in order to achieve the user and business goals:

  • Responsive navigation links and a landing page for the restaurant
  • Reservation form
  • Registration to allow users to register and sign in
  • User's profile that lists previous and upcoming reservations
  • manage reservation page where logged in users can update thier reservation
  • Reservation confirmation via email
  • contact form for making enquiries
  • Admin login and logout
  • updating option on the Admin Dashboard for adding and modifying menu items
  • Reservation mangaement page from the Admin dashboard for assigning tables to a reservations
  • prevent user from double booking

The following features are nice to have but would not be included in this release

  • Appointment reminders
  • Push notifications for each booked table

Structure

Skeleton

Wireframes for the restaurant website can be viewed here

User story board

Database

Entity Relationship Diagram

Features

[list main features of the app - home page, menu, table, reservation...]

Technologies Used

  • Django - used to build the over project and its apps.
  • Python - the core programming language used to write all of the code in this application to make it fully functional.
  • Bootstrap - used for creating responsive design.
  • GitHub - used to store code for the project after being pushed.
  • Git - for version control by utilizing the Gitpod terminal to commit to Git and Push to GitHub..
  • Gitpod - used as the development environment.
  • Heroku - used to deploy application.
  • Lucid - used to designing the data model for the project.
  • Cloudinary - used to store all of my static files and images.
  • Favicon.io - used to create favicon's for my website
  • SQLite - used as the database on environment other than the production environment.
  • PostgreSQL - used for the production database on Heroku.
  • PhoneNumber

Testing

Bugs and fixes

  • deployment error Failed to build backports.zoneinfo: - added a runtime.txt file to specify the Python version

Deployment

Clone GitHub repository

  1. Log in to GitHub and locate the GitHub Repository
  2. Click the Code dropdown arrow button just above the list of files.
  3. To clone the repository using HTTPS, under "Clone with HTTPS", copy the link.
  4. Open a terminal on your computer
  5. Change the current working directory to the location where you want the cloned directory to be made.
  6. Type git clone, and then paste the URL you copied in Step 3.
$ git clone https://github.com/valerieoni/hearty-dove-restaurant
  1. Press Enter. Your local clone will be created.
  2. Create creds.json file in the root directory and save Google credentials in the file
  3. Rename .env.example to .env and update the file with your Nutritionix API ID and KEY values

Heroku

The project was deployed to Heroku.

Prerequisites:

  • you forked or copied this project into your repository on GitHub.
  • Heroku requires these files to deploy successfully, they are both in the root folder of the project:
    • requirements.txt
    • Procfile
  • you already have a Heroku account, or you need to register one.

Create a Heroku App

Follow these steps to deploy the app from GitHub to Heroku:

  • Sign in to Heroku. Signup if you do not have an account.
  • From the Heroku dashboard, click on Create New App, give it a platform-unique name
  • choose region, click on Create app button
  • Click on settings tab
    • click on Reveal config vars button
    • add environment variables. The required variables are in the env_example.py file
  • Click on the Deploy tab and select GitHub as the deployment method and click Connect to GitHub button
  • In the GitHub authorization popup window login into GitHub with your GitHub username and click on Authorize Heroku button
  • Type in your repo name and click search. It lists your repos. Choose the one and click on connect next to it.
  • select the branch you want to deploy from the drop-down menu beneath choose a branch to deploy
  • either enable automatic deployment on every push to the chosen branch or stick to manual deployment
  • for the manual deploy, click on Deploy branch button and when the deployment is complete, click on View button to start the program

Credits

During the process of building this project, I used a number of online resources to help me resolve challenges:

Acknowledgements

I would like to thank my mentor, Narender Singh for his continuous support and feedback.

hearty-dove-restaurant's People

Contributors

valerieoni avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.