Giter Club home page Giter Club logo

grace-p4-ci's Introduction

Grace Restaurant

The restaurant is a fine dining restaurant located in the heart of Chicago. The restaurant overlooks Cloud Gate, one of the most beautiful landmarks in Chicago. Located here since 1998, it underwent a full-scale renovation and redesign in the summer of 2017. It presents to the user the products available and sets an expectation of the dishes that will be served. It allows the user to make/edit/delete a reservation and also send a form with details of an event, that will be sent to the restaurant admin and it can be afterwards transformed into a reservation.

Screenshot 2022-07-25 at 22 37 01

Deployed site can be found here: Grace Restaurant

Table Of Contents

Planning Phase

Site Objectives:

The restaurant wants to inform the visitors about a sustainable approach on food, with zero waste policy. It's actively involved in local comunities and has the mission to reduce the carbon footprint. It's using local source products, and presents them to the customer in a fine dining manner.

Feasibility study

Grace Restaurant Importance Feasibility
User can make reservations 5 5
User can cancel reservations 5 5
User can update reservations 5 5
User profile 5 5
User log in 5 5
Landing page simple and a clear message 5 5
Manually add reservations (admin) 5 5
Event form 5 5
View menu 4 5
Know the team 2 3
Testimonials 2 2
Being able to download wine and cocktail lists 2 1
---------------------------------------- ---- ----
Totals 50 51

Structure

The structure of the website is simple, easy to follow for every user, from the nav bar or from the footer. When developing the website, I have put myself in the shoes of the visitor, and organized the page, so it can be easy to reach.

User Stories:

  • As a User I can ...

    • ... click on the nav bar so that I can easily navigate to the page of interest
    • ... I can click on the wine list so that I can view and download it
    • ... I can click on the cocktail list so that I can view and download it
    • ... I can click on the social link so that I can visit the restaurant social pages
    • ... I can view reviews/testimonials so that I can read them
  • As a User I can't ...

    • ... submit and empty field in form so that I can validate the event
  • As a Unregistered User I can ...

    • ... register an account so that I can login and view/update/delete my bookings
    • ... send a form so that I can send information with events to the restaurant
  • As a Registered User I can ...

    • ... view booking so that I can update them with new information
    • ... view bookings so that I can cancel them
  • As a Admin I can ...

    • ... view/edit/delete bookings so that I can manage them
    • ... block registered users capability to double book so that I can block him from booking the same date twice
    • ... send email on sending form so that I can confirm that the email has been received
    • ... send email on accepting booking so that I can inform user that the reservation request has been approved
    • ... send email on cancelation so that I can inform the user that the booking has been canceled
    • ... filter and search all custom models from the admin page so that I can utilize the admin page to review, edit and delete data quickly
    • ... add allergens to the dish when I create a course so that I can inform the customer about what it contains
    • ... I can block the ability of the user to choose a date earlier than tomorrow so that I can send corect data to the restaurant
    • ... I can add the option to confirm the action so that I can be sure that the user is aware of the form
  • As a developer I can ...

    • ... make the website responsive on all devices so that I can give the user a better experience

Backbone

Wireframes:

Landing page:

Screenshot 2022-07-06 at 22 06 07

Gallery page:

Screenshot 2022-07-06 at 22 11 27

Menu page:

Screenshot 2022-07-06 at 22 12 24

Meet the team page:

Screenshot 2022-07-06 at 22 13 15

Events page:

Screenshot 2022-07-06 at 22 13 54

Login page:

Screenshot 2022-07-06 at 22 14 31

Database Schema:

Screenshot 2022-07-25 at 21 57 48

Color scheme:

I wanted to keep the color scheme as simple as possible, because within the website a lot of food picturescan be found, that I want to showcase. The more vibrant colors I did't consider that will add value, and will take away from the objective of the restaurant, that is food. I have used for reference the website: coolers.co In the end I have used the following colors

  • #ffffff (white)
  • #f8f9fa (gray) - footer
  • 000000 (black)
  • #827770 (brown) - nav bar

Screenshot 2022-07-06 at 22 21 17

Typography:

I have user only one font Zen Loop (uppercase) because it provided the Art Deco look that I wanted to achieve.

Agile Development Process

I have use GitHub to keep track of my progress. All of the user stories have been logged on Github here:(https://github.com/GeorgianF/Grace-P4-CI/projects/1)

Features

Site Navigation

Navbar

The menu it's hidden from the view and it can be found by clicking the hamburger menu on the right side of the screen Once the button is clicked, the menu will appear

Screenshot 2022-07-10 at 10 29 48

The user has full freedom on the page that he wants to visit, and everything is easy to reach.

Home page

The user is greeted with the logo of the restaurant, a motto and the main call to action button, to book table. Screenshot 2022-07-10 at 10 32 59

The footer is hidden under the first view. Screenshot 2022-07-10 at 10 36 04

Our Restaurant page

The user will be greeted with a hero image, that contains one of the dishes from the restaurant - to let the user know what to expect after the booking process is complete. This page will provide information on the restaurant and the same call to action button to Book a Table can be found here.

Screenshot 2022-07-10 at 10 38 10

At the next section of the page, can be found 3 previous clients testiomonials.

Screenshot 2022-07-10 at 10 41 38

At the next sections of the page, can be found some general guidelines against the spread of the corona virus: Screenshot 2022-07-10 at 10 43 19

Menu page

On this page the user can find information about the menu with the 6 options available:

  • Starters
  • Soups
  • Salads
  • Fish courses
  • Main courses
  • Desserts

Screenshot 2022-07-10 at 10 46 14

Screenshot 2022-07-10 at 10 46 24

Each category is presented as a card, that the user can click an flip it over. The card will show the dishes presente in that category and their prices. The card flips back automaticaly after 10 seconds.

Screenshot 2022-07-10 at 10 51 16

At the bottom of the page, the user can also download a PDF file with the wine and cocktail list. To provide a full experience.

Screenshot 2022-07-10 at 10 46 30

Gallery page

As the name implies, this a gallery of artistic representation of the dishes that the restaurant has produced in the past. The images are presented in a grip system, random layout. Each images has a animation added to it, whenever the user hovers on of the image, it will scale up and the name of the dish will appear from the bottom up, to the middle of the image.

Screenshot 2022-07-10 at 11 01 14

Team page

On this page, the user can find information on the Executive Chef, on the kitchen team, the Sommelier, an the service team

Screenshot 2022-07-10 at 11 02 23

FAQ page

On this page, the can find frequently asked questions and their answer. It's based on Bootstrap

Screenshot 2022-07-10 at 11 04 13

Whenever the user clicks on one question, the answer will appear underneath and the main question will be highlighted with a blue color. Also the arrow has a animation, to rotate 180deg.

Screenshot 2022-07-10 at 11 10 11

Events page

On this page can submit a form to the restaurant in regard to a event reservation. The user is not allowed to make a booking if the group is bigger than six, therefore he will have to submit a event request.

The information requested are:

  • Email
  • First Name
  • Last Name
  • Phone number
  • Event date
  • Event details

All fileds are mandatory.

Screenshot 2022-07-10 at 11 10 49

Once all the fields are complete with the details, the user is requested to confirm the request via a modal.

Screenshot 2022-07-10 at 11 28 19

Once the event form is confirmed, the user will be notified with a message on the page and the form will reset to the initial blank stage.

Screenshot 2022-07-17 at 11 39 25

Login page

On this page the user can authentificate of sign-up with a new account

Screenshot 2022-07-10 at 11 30 40

In case the user does not have an account, it will have the option to create a new one, by selecting the sign up button

Screenshot 2022-07-10 at 11 31 45

Once the user is logged in, he will notified via a message alert on top of the page

Screenshot 2022-07-10 at 11 32 05

Sign-up page

On this page the user can register for a account, it will be required:

  • Username
  • Email(optional)
  • Password

Screenshot 2022-07-10 at 12 05 22

The page is based on the standard AllAuth pages from Django. If the user is taken, he will be notified:

Screenshot 2022-07-10 at 12 04 06

Reservation page

If user is not authentificated it will redirected to the page to sign-in, with the option to sign-up. If user is authentificated, he will see that the menu will change to reflect the fact he is authentificated.

Screenshot 2022-07-10 at 11 39 50

Once the button View Reservation from the navigation bar is click , the user will be redirected to the page to create a booking, via a form:

Screenshot 2022-07-10 at 11 41 08

All fields are mandatory, and the PERSONS box has a restriction of number between 1 and 6. If the group is bigger than six, the user will need to use the event form. At the bottom of the form the user has the option to submit, reset or be redirect to the booking page

Once the reservation is submited, the user will be notified with a success message

Screenshot 2022-07-17 at 11 43 48

The user is allowed only one reservation for the per interval, if he tries to select the same interval and same date he will be notified with an alert error message

Screenshot 2022-07-17 at 11 48 36

One email will be sent if the user has the email address added to his profile, to confirm the reservation: Screenshot 2022-07-25 at 21 11 42

View booking page

Here the user can view all the reservations that have been made, and are still active.

The view of the admin:

Screenshot 2022-07-17 at 11 50 22

The user can view only the reservation that belongs to his name, the rest will be viewed as Anonymus.

Screenshot 2022-07-17 at 11 51 59

The reservation done under the name of the username will have 2 button available: Update and Delete If the reservation is not under his name, he will, not have the option to modify or delete it. If the user clicks on the Update reservation, he will be redirected to the update reserrvation page and the same steps to create the reservation are applied. If the user clicks on the Delete reservation, he will need to confirm the deletion

Screenshot 2022-07-10 at 12 01 23

There are 2 buttons available on the page, that will allow the user to easy filter the reservation, only for his user, or to view all reservations that were created.

Update reservation page

Once the user clicks on the button to update the reservation, all the data will be pulled from the database and the user has complete freedom to change it as he wants. Once done he will need to confirm the change

Screenshot 2022-07-10 at 11 58 21

He will be notified with a message, that the change has been succesfull noted in the system:

Screenshot 2022-07-25 at 21 12 55

And on the website with a alert:

Screenshot 2022-07-10 at 11 59 13

Delete reservation

If the user chooses to delete the reservation, he can easily do it by clickin the delete button, where he will be asked to confirm.

Screenshot 2022-07-25 at 21 15 14

A alert will appear:

Screenshot 2022-07-25 at 21 15 51

An email notification will be sent, to confirm the cancelation:

Screenshot 2022-07-25 at 21 16 31

COOKBOOKS (COMING SOON) page

The page is disabled, and it's future enhancement that can be added to the website

GIFTS (COMING SOON) page

The page is disabled, and it's future enhancement that can be added to the website

Future enhancements

Booking form

Currently the booking form offers the user a basic functionality. But in the future, it can be added multiple function based on the options choosen. For example: If "No Allergies" is checked, to disable the rest the of the checkboxes For example: If "Dairy" is checked, a new input field can populate where the user can input how many users have a dairy allergie, and check for the condition of the total number or people

Emails

Apply styles to the email that is sent via Django, to make it more appealing

Webshop

Two separate pages where a user can buy cookbooks and gifts (as jams, knifes, aprons, etc.)

Testing Phase

I have included testing details during and post-development in a separate document called TESTING.md.

Deployment

The final Deployed site can be found here I have included details of my initial deployment in a separate document called DEPLOYMENT.md.

Technologies used

  • Python
  • Django
    • Django was used as the python framework in the project.
    • Django all auth was used to handle user authentication and related tasks i.e. sign in, sign up, sign out.
  • Heroku
    • Used to deploy the page and make it publicly available.
  • Heroku PostgreSQL
    • Used for the database during development and in deployment.
  • HTML
    • HTML was the base language used to layout the skeleton of all templates.
  • CSS
    • Custom CSS used to style the page.
  • Javascript and JQuery
    • I have used Javascript and JQuery to manipulate the DOM.
  • Bootstrap 5.2.0
    • Used to style HTML, CSS, minor javascript tasks.
  • Font awesome
    • All icons throughout the page.

Credits

grace-p4-ci's People

Contributors

georgianf 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.