A modern, full-stack ride-sharing and carpooling application built with React & Express
- Real-time trip search and creation
- Seamless Google Maps integration for route visualization
- Distance and fare calculation using
geolibandgooglemaps/routing
- Riders: Book rides, view history, rate drivers
- Drivers: Register vehicles, manage availability, accept/reject requests
- Admin: Dashboard for platform oversight
- Integrated Razorpay payment gateway
- Secure transaction processing
- Payment history tracking
- Powered by Clerk for secure and easy sign-in/sign-up
- Protected routes and persistent user sessions
- Driver verification workflow
- Comprehensive dashboards for both Users and Admins
- Vehicle management for drivers ("My Vehicles")
- Trip history and status tracking
- Built with React 19 and Vite for blazing fast performance
- styled with TailwindCSS v4 for a sleek, responsive design
- Smooth animations with Framer Motion
- React 19 - Library for building user interfaces
- Vite - Next Generation Frontend Tooling
- TailwindCSS v4 - Utility-first CSS framework
- Framer Motion - Production-ready animation library
- Clerk React - Authenticaton and User Management
- React Router Dom v7 - Declarative routing
- Lucide React - Beautiful & consistent icons
- Axios - Promise based HTTP client
- Node.js & Express v5 - Robust server-side framework
- MongoDB & Mongoose - NoSQL database and Object Data Modeling
- Google Maps API - Routing and Location Services
- Razorpay - Payment Infrastructure
- Nodemailer - Email communication service
- Node-Cron - Task scheduling (e.g., trip reminders)
- Node.js 18+
- npm
-
Clone the repository
git clone https://github.com/Om-Thanage/Ryde.git cd Ryde -
Install dependencies
Ryde uses a monorepo-like structure with separate
clientandbackenddirectories.Install Backend Dependencies:
cd backend npm installInstall Client Dependencies:
cd ../client npm install -
Set up environment variables
Backend (.env) Create a
.envfile in thebackenddirectory:PORT=5000 MONGO_URI=your_mongodb_connection_string CLERK_SECRET_KEY=your_clerk_secret_key GOOGLE_MAPS_API_KEY=your_google_maps_key RAZORPAY_KEY_ID=your_razorpay_key_id RAZORPAY_KEY_SECRET=your_razorpay_secret EMAIL_USER=your_email_address EMAIL_PASS=your_email_password
Client (.env) Create a
.envfile in theclientdirectory:VITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key VITE_API_URL=http://localhost:5000 VITE_GMAPS_API_KEY=your_google_maps_key
-
Run the application
You need to run both the backend and frontend servers.
Terminal 1 (Backend):
cd backend npm run devTerminal 2 (Client):
cd client npm run dev -
Open your browser Navigate to the URL shown in your client terminal (usually
http://localhost:5173) to launch Ryde.
ryde/
├── backend/ # Express Server & API
│ ├── config/ # Database connection & configs
│ ├── controllers/ # Route logic & Request handling
│ ├── models/ # Mongoose Schemas (User, Trip, etc.)
│ ├── routes/ # API Endpoints
│ ├── services/ # Business logic & integrations
│ └── server.js # Entry point
│
├── client/ # React Frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── routes/ # Page components (Home, Dashboard, etc.)
│ │ ├── utils/ # Helpers & Constants
│ │ ├── App.jsx # Main App Component
│ │ └── main.jsx # Entry point
│ ├── public/ # Static assets
│ └── index.html # HTML template
|
└── README.md
Made with ❤️ by Team bootWinXP
