Skip to content

ChronoRoyale is built to deliver a modern e-commerce experience specifically for luxury watches. Users can browse, wishlist, add to cart, and place orders. Admins can manage products, users, and orders with ease.

Notifications You must be signed in to change notification settings

shasbinas/ChronoRoyale-Ecommerce-WebApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

97 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⌚ ChronoRoyale - Full Stack E-commerce WebApp

ChronoRoyale is a modern full-stack e-commerce platform designed for luxury watch sales. It provides a seamless shopping experience with secure authentication, cart and wishlist system, order management, and a powerful admin dashboard for analytics and inventory control.

HTML5 CSS3 JavaScript Node.js Express.js MongoDB JWT Handlebars Bootstrap 5 Chart.js Render

πŸ“‹ Table of Contents


Introduction

ChronoRoyale is built to deliver a modern e-commerce experience specifically for luxury watches. Users can browse, wishlist, add to cart, and place orders. Admins can manage products, users, and orders with ease.


βš™ Tech Stack

Layer Technologies Used
Frontend HTML, CSS, JavaScript, Handlebars, Bootstrap 5, Chart.js
Backend Node.js, Express.js, MVC Architecture, Multer
Database MongoDB Atlas
Authentication JWT, Session Cookies
Deployment Render, GitHub

πŸ”‹ Features

πŸ›’ User Side

  • User Authentication (Login / Signup)
  • Product Details Page with Image Gallery
  • Add to Cart / Wishlist
  • Checkout with Address & Cash On Delivery
  • Order Tracking & History
  • Profile Management
  • Image Zoom on Product Page

πŸ› οΈ Admin Dashboard

  • Manage Products (Add / Edit / Delete)
  • Order Management & Status Updates
  • User Management (View, Block/Unblock)
  • Real-Time Analytics & Reports
  • Light & Dark Mode
  • Soft Delete for Products

🌐 Deployment

The project is hosted on Render.

πŸ”— Live Links

Admin Credentials:

  • Username: admin
  • Password: 123

πŸ“Έ Preview

Home Page Product Page Cart Admin Dashboard
Home Page Product Page Cart Admin Dashboard

πŸ“¦ Quick Start (Setup Guide)

1️⃣ Clone the repository

git clone https://github.com/shasbinas/ChronoRoyale-Ecommerce-WebApp.git
cd ChronoRoyale-Ecommerce-WebApp

2️⃣ Install dependencies

npm install

3️⃣ Create .env file

PORT=9002
DATABASE=ChronoRoyale
MONGO_DB_URI="your_mongodb_connection_string"
JWT_SECRET=your_secret_key
ADMIN_EMAIL=admin
ADMIN_PASSWORD=123

4️⃣ Start the server

npm run dev   # Development mode
npm start     # Production mode

Visit β†’ http://localhost:9002


πŸ“‘ API Documentation

πŸ” Authentication

Method Endpoint Description Body / Params
POST /auth/register Register a new user { name, email, password }
POST /auth/login Login user & return token/session { email, password }
GET /auth/logout Logout user -
GET /auth/profile (Protected) Get logged-in user details Header: Authorization: Bearer <token>

⌚ Products

Method Endpoint Description Body / Params
GET /products Get all products Optional: ?search=&category=&sort=
GET /products/:id Get single product details Path: id
POST /admin/add-product (Admin) Create new product { name, brand, price, description, images[] }
PUT /admin/products/:id (Admin) Update product Same as above
DELETE /admin/products/:id (Admin) Delete product Path: id

πŸ›’ Cart

Method Endpoint Description Body / Params
POST /add-to-cart Add item to cart { productId, quantity }
GET /cart Get user cart -
GET /cart/clear Clear all items in cart -
GET /cart/remove/:productId Remove selected item from cart Path: productId

❀️ Wishlist

Method Endpoint Description Body / Params
POST /add-to-wishlist Add item to wishlist { productId }
GET /wishlist Get wishlist items -
POST /remove-from-wishlist Remove from wishlist { productId }

πŸ“¦ Orders

Method Endpoint Description Body / Params
POST /place-order Place new order { cartItems[], address, paymentMethod }
GET /order-history Get logged-in user orders -
GET /orders/:id Get order details Path: id
GET /order-success Order success page -
POST /create-address Add new address { addressFields }
GET /checkout Checkout page -
POST /update-order-status/:id/:status (Admin) Update order status Path: id, status

πŸ›  Admin

Method Endpoint Description Body / Params
GET /admin/dashboard Admin dashboard overview -
GET /admin/users-list List all users -
POST /admin/block-user/:id Block/Unblock user Path: id
GET /admin/products-list List all products -
GET /admin/products/edit/:id Edit product page Path: id
POST /admin/edit-product/:id Edit product details Same as product creation body
POST /admin/add-product Add new product { name, brand, price, description, images[] }
POST /admin/products/delete/:id Delete product Path: id
GET /admin/orders-list List all orders -
GET /admin/orders/:id Order details page Path: id
GET /admin/add-product Add product page -

Note: Protected routes require authentication headers:


If you like this project, please ⭐ star the repo!

About

ChronoRoyale is built to deliver a modern e-commerce experience specifically for luxury watches. Users can browse, wishlist, add to cart, and place orders. Admins can manage products, users, and orders with ease.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published