Skip to content

rasi5050/LittleLemon-FullStack

Repository files navigation

LittleLemon Restaurant - FullStack Project

I have deployed the project on AWS, view at https://bit.ly/LittleLemon

Motivation:

This is my modified capstone project for Meta Back-End Developer Certification where I developed a full-stack website for restaurant management.

Screenshot 2023-11-18 at 14 08 17

What all have I done?

● Developed a full-stack website for restaurant management with user-friendly interface with HTML, CSS, and JavaScript and Django partials ensuring a responsive and engaging user experience.

● Utilized Django Modelforms, Generics to build robust back-end functionalities, including menu display, table reservation system and live updates of reservation details.

● Implemented interactive UI components for users to easily book reservations, select preferred dining times, and view availability and prevent duplicate reservations using REST API’s, DOM manipulation and localstorage.

● Deployed and configured application on AWS Cloud leveraging EC2 and RDS(MySQL); Oversaw the security aspects by isolating sensitive data as environment variables, setting up security groups and VPC in AWS.

Whats used?

Python, Django, HTML, CSS, JavaScript, AWS EC2, RDS(MySQL)

Functionality

Website features homepage for restaurant, menu display, make reservations, view all reservations, get directions and about page.

How to run?

$ mkdir LittleLemon-FullStack

$ cd LittleLemon-FullStack

$ pip3 install virtualenv

$ virtualenv myprojectenv

$ source myprojectenv/bin/activate

$ git clone https://github.com/rasi5050/LittleLemon-FullStack.git

$ cd LittleLemon-FullStack


create .env file

$ vi littlelemon/.env

paste below configuration with your values, refer for setting up env variables, create django secret key

Note: these values will work for you, but recommended to replace with your values

SECRET_KEY=1*sf%cpjo7sst6n@%l-le0@+*v_z8uff2in051@mc-auc^9z4m
DATABASE_NAME=reservations
DATABASE_USER=db_user
DATABASE_PASS=strongPass349f*(
DATABASE_HOST=localhost

save file using :wq!


$ brew install mysql

refer create mysql database, user and password

login to mysql

$ mysql -u root -p

$ create database reservations

$ CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'strongPass349f*(';

$ GRANT PRIVILEGE ON reservations.* TO 'db_user'@'localhost';

exit mysql


Note: install if required, these packages were required for AWS EC2 linux 2

$ sudo yum install gcc

$ sudo yum install python3-devel


$ pip3 install -r requirements.txt

$ python3 manage.py createsuperuser

provide username, email, password of your choice

$ python3 manage.py makemigrations

$ python3 manage.py migrate

$ python3 manage.py runserver 8000

Navigate your browser to http://127.0.0.1:8000/. That's it!

Add menu items

go to http://127.0.0.1:8000/admin

login with superuser credentials created before

Screenshot 2023-11-18 at 15 20 14

go to Menus -> ADD MENU

add title, price and description. Place an image with <title>.jpg at /restaurant/static/img/<title>.jpg

Functionality:

Homepage for restaurant

Screenshot 2023-11-18 at 15 18 06

Menu view

Displays menu items list and detailed page on clicking with images. Images are mapped from /restaurant/static/img/<title>.jpg, where <title> is the title added for the Menu item using Django admin

Screenshot 2023-11-18 at 15 18 47 Screenshot 2023-11-18 at 15 20 53

Reserve a table

Screenshot 2023-11-18 at 15 22 56

date picker and shows existing bookings for the selected date Screenshot 2023-11-18 at 15 23 32

available time slots Screenshot 2023-11-18 at 15 23 40

View all reservations

Screenshot 2023-11-18 at 15 26 17

Get directions

Screenshot 2023-11-18 at 15 26 47

About page

Screenshot 2023-11-18 at 15 27 19

--

Let me know what you feel about this project. Happy to connect on Linkedin

Happy learning!

rasi01@syr.edu

About

LittleLemon-FullStack Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published