The Bicycle Store Application is a full-stack web platform that allows users to browse, purchase, and manage bicycles online. It includes role-based authentication, an intuitive UI/UX, and secure payment integration.
- Secure user registration and login with hashed passwords
- Role-based access control (Customer & Admin)
- JWT-based authentication and session management
- Email: [email protected]
- password: 111111
- Home Page: Featured bicycles, promotions, and customer testimonials
- All Bicycles Page: Search, filter, and view bicycle details
- Bicycle Details Page: Detailed specifications with a "Buy Now" option
- About Page: Information about the bicycle store and mission
- Checkout Page: Secure ordering with stock validation and payment processing
- User Dashboard: View and manage orders, update profile and passwords
- Admin Dashboard: Manage users, bicycles (CRUD operations), and orders
Supports Stripe for secure transactions.
- React, TypeScript, Redux (RTK Query), Tailwind CSS, ShadCN
- Node.js, Express.js, MongoDB (Mongoose, Zod for validation) -!Server Side Repo
- JWT, bcrypt for password hashing, role-based access control
- Clone the repository:
git clone https://github.com/shuaib-code/cyclo-client.git
- Navigate to the project folder:
cd cyclo-client - Install dependencies:
npm install
Create a .env file in the root directory and add the following:
# Server url
# VITE_API_URL=https://api.example.com
#VITE_CLOUDINARY_UPLOAD_PRESET=your_preset
#VITE_CLOUDINARY_CLOUD_NAME=your_cloud_name
#VITE_CLOUDINARY_URL=https://api.cloudinary.com/v1_1/your_cloud_name/image/upload
#VITE_SP= Stripe pusblisable key
cd client
npm startcd server
npm startPOST /api/auth/register- Register a new userPOST /api/auth/login- Login and receive JWT tokenPOST /api/auth/logout- Logout user
GET /api/bicycles- Get all bicyclesPOST /api/bicycles- Add a new bicycle (Admin only)PUT /api/bicycles/:id- Update bicycle details (Admin only)DELETE /api/bicycles/:id- Remove a bicycle (Admin only)
POST /api/orders- Place an orderGET /api/orders/user- Get user-specific ordersGET /api/orders/admin- Get all orders (Admin only)
- Fork the repository
- Create a new branch (
feature-xyz) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature-xyz) - Open a Pull Request
This project is open-source and available under the MIT License.
π΄ Happy Coding!

