- Overview
- Features
- Screenshots
- Tech Stack
- Directory Structure
- Installation & Setup
- API Endpoints
- User Roles
- Contributing
- License
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.
- 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
- 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
- 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
- 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
- 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
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
- Node.js (v14+)
- MongoDB
- Cloudinary account (for image uploads)
cd Frontend
npm install
npm run dev- Create a
.envfile in theBackentdirectory:
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
- Start the server:
cd Backent
npm install
npm run devPOST /api/v1/user/register- Register new userPOST /api/v1/user/login- Login userGET /api/v1/user/logout- Logout userPOST /api/v1/user/forgot-password- Request password resetPOST /api/v1/user/reset-password- Reset password
POST /api/v1/user/profile/update- Update user profileDELETE /api/v1/user/delete-user/:userId- Delete user account
GET /api/v1/product- Get all productsGET /api/v1/product/:id- Get product by IDPOST /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)
GET /api/v1/order- Get user ordersPOST /api/v1/order- Create new orderPUT /api/v1/order/:id- Update order status (shop owners only)
POST /api/v1/rating- Add product ratingPOST /api/v1/review- Add product reviewGET /api/v1/review/product/:productId- Get product reviews
GET /api/v1/wishlist- Get user wishlistPOST /api/v1/wishlist- Add product to wishlistDELETE /api/v1/wishlist/:id- Remove from wishlistGET /api/v1/cart- Get user cartPOST /api/v1/cart- Add to cartDELETE /api/v1/cart/:id- Remove from cart
Regular users can browse products, add items to cart, place orders, and leave reviews.
Shop owners can manage their product listings, process orders, respond to customer reviews, and track sales.
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Commit your changes:
git commit -m 'Add feature' - Push to the branch:
git push origin feature-name - Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with β€οΈ by the Bicker's Team











