Skip to content

Repository files navigation

👟 TAKRUM

TAKRUM is a full-stack server-rendered web application developed to provide a smooth and secure online shopping experience for customers while enabling administrators to efficiently manage products, orders, inventory, and users. Customers can browse footwear collections, search and filter products, manage their cart and wishlist, apply coupons, place secure orders, and track their purchases.

The application is built using Node.js, Express.js, MongoDB, and EJS, following the MVC architecture. It includes secure authentication, Google OAuth login, Razorpay payment integration, role-based access control, responsive user interfaces, wallet management, and image management using Cloudinary.


📚 Table of Contents


✨ Features

👤 Customer Features

  • User registration and login
  • Google OAuth authentication
  • Browse products by category
  • Search and filter products
  • View detailed product information
  • Shopping cart management
  • Wishlist functionality
  • Secure checkout process
  • Razorpay payment integration
  • Coupon and discount support
  • Wallet management
  • Order history and order tracking
  • Product reviews and ratings
  • Profile management
  • Responsive user interface

🛡️ Admin Features

  • Secure admin authentication
  • Dashboard with business statistics
  • Product management (Add, Edit, Delete)
  • Category management
  • Inventory and stock management
  • User management
  • Order management
  • Coupon management
  • Sales reporting
  • Order cancellation and refund management
  • Soft delete and recovery for products and categories

⚙️ Other Features

  • Server-side rendering using EJS
  • MVC architecture
  • Session management
  • Role-based authorization
  • Image upload with Cloudinary
  • Pagination
  • Product search and filtering
  • Secure password hashing using bcrypt
  • Form validation
  • Helmet and CORS security
  • Responsive design using Bootstrap

🛠️ Tech Stack

🎨 Frontend

  • EJS
  • HTML5
  • CSS3
  • Bootstrap 5
  • JavaScript

⚙️ Backend

  • Node.js
  • Express.js

🗄️ Database

  • MongoDB
  • Mongoose

🔐 Authentication

  • JWT
  • Passport.js
  • Google OAuth 2.0
  • Express Session

💳 Payment Gateway

  • Razorpay

🧰 Other Tools

  • Cloudinary
  • Nodemailer
  • Multer
  • Postman
  • Git & GitHub

🚀 Getting Started

📋 Prerequisites

  • Node.js >= 16.x
  • MongoDB (Local or Atlas)
  • npm

📥 Installation

1️⃣ Clone the Repository

git clone https://github.com/adarsh6282/ecommerce.git

cd ecommerce

2️⃣ Install Dependencies

npm install

3️⃣ Configure Environment Variables

Create a .env file in the project root.

PORT=3000

MONGO_URI=your_mongodb_connection_string

SESSION_SECRET=your_session_secret

GOOGLE_CLIENT_ID=your_google_client_id

GOOGLE_CLIENT_SECRET=your_google_client_secret

RAZORPAY_KEY_ID=your_key

RAZORPAY_SECRET=your_secret

CLOUDINARY_CLOUD_NAME=your_cloud_name

CLOUDINARY_API_KEY=your_api_key

CLOUDINARY_API_SECRET=your_api_secret

4️⃣ Start the Application

npm install

npm start

The application will be available at:

http://localhost:3000

📁 Project Structure

TAKRUM/

├── config/
├── controllers/
├── middleware/
├── models/
├── public/
│   ├── css/
│   ├── js/
│   ├── images/
│   └── uploads/
├── routes/
├── services/
├── utils/
├── views/
│   ├── admin/
│   ├── user/
│   ├── partials/
│   └── layouts/
├── app.js
├── package.json
├── .env
└── README.md

🔗 API Routes

🔐 Authentication

  • POST /login
  • POST /register
  • GET /logout
  • GET /auth/google

👟 Products

  • GET /shop
  • GET /product/:id

🛒 Cart

  • GET /cart
  • POST /cart/add
  • POST /cart/update
  • POST /cart/remove

❤️ Wishlist

  • GET /wishlist
  • POST /wishlist/add
  • POST /wishlist/remove

💰 Wallet

  • GET /wallet

📦 Orders

  • GET /orders
  • POST /checkout
  • GET /order/:id

🛡️ Admin

  • GET /admin/dashboard
  • GET /admin/products
  • GET /admin/users
  • GET /admin/orders
  • GET /admin/categories

🚧 Future Enhancements

  • AI-powered product recommendations
  • Recently viewed products
  • Multiple payment gateways
  • Product comparison
  • Multi-language support
  • Progressive Web App (PWA)

👨‍💻 Developer

Adarsh K P

Full Stack Developer passionate about building scalable and secure web applications using Node.js, Express.js, MongoDB, and JavaScript.

⭐ If you like this project, don't forget to Star the repository on GitHub!

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages