A comprehensive bike service management platform that connects customers with service providers, enabling easy booking, tracking, and management of bike services.
Bike Buddy is a full-stack web application designed to streamline bike service operations. It provides separate dashboards for customers and service owners, with real-time status updates and email notifications.
- Role-based Access: Separate interfaces for customers and service owners
- Real-time Updates: Live status tracking for service bookings
- Email Notifications: Automated email alerts for status changes
- Responsive Design: Mobile-friendly interface with modern UI
- Secure Authentication: Password hashing and user session management
- π User Authentication: Secure login and registration
- π Service Booking: Easy booking of bike services with date selection
- π Dashboard: Comprehensive overview of bookings and statistics
- π Service History: Complete history of past services
- π Status Tracking: Real-time tracking of service status
- π§ Email Notifications: Automatic updates on service progress
- π° Cost Tracking: Monitor total spending on services
- π Booking Management: View and manage all customer bookings
- π Status Updates: Update booking statuses (Pending, In Progress, Ready for Delivery, Completed)
- π₯ Customer Management: Access to customer details and service history
- π Analytics Dashboard: Overview of business metrics and performance
- π οΈ Service Management: Add, edit, and manage available services
- π§ Automated Communications: Automatic email notifications to customers
- π Cross-platform: Works on desktop, tablet, and mobile devices
- β‘ Fast Performance: Optimized loading times and smooth interactions
- π Data Security: Secure data handling with encrypted passwords
- π¨ Modern UI: Clean, intuitive interface with Material-UI components
- React.js - Component-based UI library
- React Router - Client-side routing
- Material-UI - Modern React UI components
- CSS3 - Custom styling and responsive design
- Fetch API - HTTP client for API communication
- Node.js - JavaScript runtime environment
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Nodemailer - Email sending functionality
- bcrypt - Password hashing (for secure authentication)
- dotenv - Environment variable management
- CORS - Cross-origin resource sharing
- JWT - JSON Web Tokens for authentication (if implemented)
- Gmail SMTP - Email service integration
Cartrabbit/
βββ client/ # React frontend
β βββ public/ # Static files
β βββ src/
β β βββ components/ # React components
β β β βββ auth/ # Authentication components
β β β β βββ Login.js
β β β β βββ Register.js
β β β βββ customer/ # Customer-specific components
β β β β βββ CustomerDashboard.js
β β β β βββ BookService.js
β β β β βββ ServiceHistory.js
β β β βββ owner/ # Owner-specific components
β β β β βββ OwnerDashboard.js
β β β β βββ BookingsManagement.js
β β β β βββ OrdersPage.js
β β β β βββ ServicesManagement.js
β β β βββ LoadingScreen.js
β β β βββ Navbar.js
β β βββ styles/ # CSS files
β β βββ App.js # Main App component
β β βββ index.js # React entry point
β βββ package.json # Frontend dependencies
βββ server/ # Node.js backend
β βββ config/ # Configuration files
β β βββ db.js # Database connection
β β βββ cors.js # CORS configuration
β βββ models/ # Mongoose schemas
β β βββ User.js
β β βββ Booking.js
β β βββ Service.js
β β βββ Car.js
β βββ routes/ # API routes
β β βββ auth.js # Authentication routes
β β βββ bookings.js # Booking management
β β βββ services.js # Service management
β βββ app.js # Express server setup
β βββ package.json # Backend dependencies
βββ README.md # Project documentation
- Node.js (v14 or higher)
- MongoDB (local installation or MongoDB Atlas)
- Gmail account (for email notifications)
git clone https://github.com/Sabari-Vasan-SM/Cartrabbit.git
cd Cartrabbitcd server
npm installCreate a .env file in the server directory:
MONGO_URI=mongodb://localhost:27017/cartrabbit
SMTP_USER=your-gmail@gmail.com
SMTP_PASS=your-app-password
PORT=5000cd ../client
npm installCreate a .env file in the client directory (if needed):
REACT_APP_API_URL=http://localhost:5000/apiStart the backend server:
cd server
npm startStart the frontend development server:
cd ../client
npm startThe application will be available at:
- Frontend:
http://localhost:3000 - Backend API:
http://localhost:5000
- Register/Login as a customer
- Browse Services available on the platform
- Book a Service by providing necessary details
- Track Status through the dashboard
- Receive Email Updates as service progresses
- View History of all past services
- Login as a service owner
- View All Bookings in the management dashboard
- Update Status of ongoing services
- Manage Services offered to customers
- Monitor Analytics and business metrics
POST /api/auth/login- User loginPOST /api/auth/register- User registration
GET /api/bookings- Get all bookings (with optional email filter)POST /api/bookings- Create a new bookingPATCH /api/bookings/:id/status- Update booking statusDELETE /api/bookings/:id- Delete a booking
GET /api/services- Get all available servicesPOST /api/services- Create a new service (owner only)PUT /api/services/:id- Update a service (owner only)DELETE /api/services/:id- Delete a service (owner only)
MONGO_URI=your-mongodb-connection-string
SMTP_USER=your-gmail-address
SMTP_PASS=your-gmail-app-password
PORT=5000REACT_APP_API_URL=http://localhost:5000/api- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Sabari Vasan SM
- GitHub: @Sabari-Vasan-SM
- Material-UI for the beautiful UI components
- Node.js and React.js communities for excellent documentation
- MongoDB for the flexible database solution
- Nodemailer for seamless email integration
β If you found this project helpful, please give it a star!