Skip to content

Full-stack web application that allows customers to purchase meal-kits and administrators to manage the database.

License

Notifications You must be signed in to change notification settings

joaovitortc/KuKeen

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

KuKeen

A Full-stack Web Application



Table of Contents
  1. About The Project
  2. File Structure
  3. Usage
  4. Contact
  5. Acknowledgments

About The Project

Logo

Kukeen is a full-stack web application designed to facilitate meal preparation with pre-packaged ingredients.

It allows users to sign up and log in as either customers or administrators.

  • Customers can purchase mealkits, manage their cart, and perform other related actions,
  • Administrators can perform CRUD (Create, Read, Update, Delete) operations on the mealkits inventory.

The application follows the Model-View-Controller (MVC) pattern for efficient organization and separation of concerns.

(back to top)

Built With

  • EJS
  • Node.js
  • Express
  • JavaScript
  • MongoDB
  • Bootstrap

(back to top)

File Structure

KuKeen/
│
├── assets/
│   ├── css/         
│   ├── images/       
│   └── togglePassword.js       # Responsible for toggling the passsword visibility
│
├── controllers/
│   ├── cartController.js     
│   └── generalController.js  
│   └── loadDataController.js   # Endpoint responsible to restart the database (emergency recovery)
│   └── mealkitsController.js
│
├── modules/
│   ├── mealKitModel.js          
│   └── mealkitUtil.js
│   └── userModel.js        
│
├── views/
│   ├── general/                # Contain all the general views (home.ejs, cart.ejs, etc)
│   ├── layouts/
│       └── main.ejs            # Layout used in every page (using EJS-Layouts)
│   ├── mealkits/               # Contain all the mealkit's related views
│   ├── partials/
│       ├── footer.ejs
│       └── mealkits.ejs
│       └── navbar.ejs
│
├── .gitignore                  # Git ignore file
├── README.md                   # Project README file
└── server.js                   # Project Entry point

Usage

This section outlines some of the features of the website.

Log in system

The website employs bcrypt.js to securely hash and store user passwords in MongoDB. Only registered users are permitted to log in.

Logo

Url Protection

I utilized express-session to secure endpoints, ensuring that only logged-in users can access certain pages. This also prevents customers from accessing administrator pages.

Logo

Admin

Administrators have the capability to create, delete, and edit meal kits through the admin panel.

Logo

Cart

Sessions are used to track user activity, maintaining the contents of the cart even if the user leaves the website. Users can also modify the quantity, add / remove items on their cart. By simulating the placement of an order, and email is sent to the registered user.

Logo

(back to top)


License

Distributed under the MIT License. See LICENSE.txt for more information.


Contact


Acknowledgments

Special thanks to Nick Romanidis for guidance and support throughout the development process.

(back to top)



About

Full-stack web application that allows customers to purchase meal-kits and administrators to manage the database.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published