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: admin@gmail.com
- 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 start
cd server
npm start
POST /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!