Skip to content

Sanketniza/Bicker-s

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏍️ Bicker's - Motorcycle E-Commerce Platform

Bicker's Logo

Premium motorcycle marketplace for enthusiasts and shop owners

React Node.js Express MongoDB Tailwind CSS

πŸ“‹ Table of Contents

πŸš€ Overview

Bicker's is a comprehensive e-commerce platform specialized for motorcycle enthusiasts. The platform connects users with shop owners, allowing them to browse, purchase, and review motorcycles across different categories including road bikes, electric bikes, and scooters.

The application features a dual-user system (regular users and shop owners), responsive UI, secure authentication, and comprehensive motorcycle management for shop owners.

✨ Features

πŸ§‘β€πŸ’Ό For Users

  • User Authentication: Secure login/signup with email verification
  • Browse Motorcycles: Filter by category, brand, price range
  • Detailed Product Views: Specifications, images, videos, ratings
  • Shopping Cart & Wishlist: Add items, manage quantities
  • Order Management: Track orders, view history
  • Review System: Rate and review purchased products
  • Profile Management: Update personal details, view activity
  • Account Deletion: Option to permanently delete account

πŸͺ For Shop Owners

  • Shop Management: Create and manage motorcycle shop listings
  • Product Catalog: Add, update, delete motorcycle listings
  • Order Processing: Manage incoming orders, update status
  • Customer Engagement: Respond to reviews and questions
  • Analytics Dashboard: Sales reports and inventory tracking
  • Profile Management: Business details, payment information
  • Account Management: Update shop details or delete account

πŸ› οΈ Technical Features

  • Responsive UI for all device sizes
  • Real-time notifications
  • Secure JWT authentication
  • MongoDB data persistence
  • Cloudinary media storage
  • RESTful API architecture
  • Form validation
  • Error handling
  • Toast notifications

πŸ“Έ Screenshots

πŸ“± Home Page Home Page Home Page
🏍️ Product Listings Product Listings Product Listings
πŸ›’ Shopping Cart Shopping Cart Shopping Cart
πŸ‘€ User Profile User Profile User Profile User Profile
πŸ‘¨β€πŸ’Ό Admin Dashboard Admin Dashboard Admin Dashboard Admin Dashboard

πŸ”§ Tech Stack

Frontend

  • React: UI library
  • Redux Toolkit: State management
  • React Router: Navigation
  • Tailwind CSS: Styling
  • Shadcn UI: Component library
  • Axios: API requests
  • Vite: Build tool
  • Sonner: Toast notifications

Backend

  • Node.js: Runtime environment
  • Express: Web framework
  • MongoDB: Database
  • Mongoose: ODM library
  • JWT: Authentication
  • Bcrypt: Password hashing
  • Multer: File uploads
  • Cloudinary: Media storage
  • Nodemailer: Email services

πŸ“‚ Directory Structure

The project follows a clean, modular architecture:

Bicker's/
β”œβ”€β”€ Frontend/                # React frontend application
β”‚   β”œβ”€β”€ public/              # Static files
β”‚   └── src/
β”‚       β”œβ”€β”€ assets/          # Images, icons, etc.
β”‚       β”œβ”€β”€ components/      # UI components
β”‚       β”‚   β”œβ”€β”€ admin/       # Admin-specific components
β”‚       β”‚   β”œβ”€β”€ shared/      # Shared components (Navbar, Footer)
β”‚       β”‚   β”œβ”€β”€ ui/          # UI elements (buttons, inputs)
β”‚       β”‚   └── user/        # User-specific components
β”‚       β”œβ”€β”€ store/           # Redux store and slices
β”‚       β”œβ”€β”€ hooks/           # Custom React hooks
β”‚       β”œβ”€β”€ utils/           # Utility functions
β”‚       └── App.jsx          # Main application component
β”‚
β”œβ”€β”€ Backent/                 # Express backend API
β”‚   β”œβ”€β”€ controllers/         # Request handlers
β”‚   β”œβ”€β”€ Middlewares/         # Custom middlewares
β”‚   β”œβ”€β”€ models/              # Database models
β”‚   β”œβ”€β”€ routes/              # API routes
β”‚   β”œβ”€β”€ utils/               # Utility functions
β”‚   └── index.js             # Entry point

πŸ”Œ Installation & Setup

Prerequisites

  • Node.js (v14+)
  • MongoDB
  • Cloudinary account (for image uploads)

Frontend Setup

cd Frontend
npm install
npm run dev

Backend Setup

  1. Create a .env file in the Backent directory:
PORT=8000
MONGO_URI=your_mongodb_uri
SECRET_KEY=your_secret_key
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
EMAIL_USER=your_email
EMAIL_PASS=your_email_app_password
  1. Start the server:
cd Backent
npm install
npm run dev

πŸ“‘ API Endpoints

User Authentication

  • POST /api/v1/user/register - Register new user
  • POST /api/v1/user/login - Login user
  • GET /api/v1/user/logout - Logout user
  • POST /api/v1/user/forgot-password - Request password reset
  • POST /api/v1/user/reset-password - Reset password

User Management

  • POST /api/v1/user/profile/update - Update user profile
  • DELETE /api/v1/user/delete-user/:userId - Delete user account

Product Management

  • GET /api/v1/product - Get all products
  • GET /api/v1/product/:id - Get product by ID
  • POST /api/v1/product - Create new product (shop owners only)
  • PUT /api/v1/product/:id - Update product (shop owners only)
  • DELETE /api/v1/product/:id - Delete product (shop owners only)

Order Management

  • GET /api/v1/order - Get user orders
  • POST /api/v1/order - Create new order
  • PUT /api/v1/order/:id - Update order status (shop owners only)

Reviews & Ratings

  • POST /api/v1/rating - Add product rating
  • POST /api/v1/review - Add product review
  • GET /api/v1/review/product/:productId - Get product reviews

Wishlist & Cart

  • GET /api/v1/wishlist - Get user wishlist
  • POST /api/v1/wishlist - Add product to wishlist
  • DELETE /api/v1/wishlist/:id - Remove from wishlist
  • GET /api/v1/cart - Get user cart
  • POST /api/v1/cart - Add to cart
  • DELETE /api/v1/cart/:id - Remove from cart

πŸ‘₯ User Roles

Regular User

Regular users can browse products, add items to cart, place orders, and leave reviews.

Shop Owner

Shop owners can manage their product listings, process orders, respond to customer reviews, and track sales.

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Commit your changes: git commit -m 'Add feature'
  4. Push to the branch: git push origin feature-name
  5. Open a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Developed with ❀️ by the Bicker's Team