A full-stack e-commerce application with JWT-based authentication, enabling secure login, product browsing, and order management. Features include infinite scroll, dynamic cart/wishlist handling, and optimized search with debouncing for a seamless user experience.
Guest
Email:ryan@gmail.com
Password:Ryan@123
git clone https://github.com/mdmohsanul/TimberLoop.git
cd Timber
npm install
npm run dev
- React JS
- JavScript
- React Router
- Node.js
- Express
- MongoDB
- JWT
- TailwindCSS
Watch a walkthrough of all major features of this app: Loom Video Link
Home / Product Listing
- Browse a wide range of timber products in a responsive, infinite-scroll product grid.
- Products are categorized for easier discovery and filtering.
Cart & Wishlist
- Add or remove items from your cart and wishlist in real-time.
- Quantity adjustments and instant total updates ensure a smooth shopping experience.
Orders
- Place orders securely with integrated Razorpay payment gateway.
- Track order status and view past order history from your profile.
Search & Filters
- Optimized debounced search reduces API calls and delivers faster results.
- Filter products based on categories, availability, and other custom tags.
Authentication
- Secure JWT-based authentication with support for email/password login.
- Protected routes for managing cart, orders, and user profile settings.
Get all available timber products
Sample Response:
[{ "_id": "prd123", "title": "Teak Wood", "price": 1200, "inStock": true, ... }]
Get details for a specific product
Sample Response:
{ "_id": "prd123", "title": "Teak Wood", "description": "...", "price": 1200, ... }
Register a new user
Sample Response:
{ "userId": "user123", "token": "jwt-token" }
Login existing user
Sample Response:
{ "userId": "user123", "token": "jwt-token" }
Add an item to the cart (protected)
Sample Response:
{ "productId": "prd123", "quantity": 2 }
Place a new order using Razorpay (protected)
Sample Response:
{ "items": [{ "productId": "prd123", "quantity": 2 }], "addressId": "addr001" }
For bugs or feature requests, please reach out to mdmohsan2407@gmail.com