InstaGO is a modern platform designed to offer university students a convenient, eco-friendly, and cost-effective electric bike rental solution. By combining advanced technology with a seamless user experience, InstaGO simplifies short-distance travel while promoting sustainable transportation.
- Secure Registration & Login: Authenticate via university email.
- Real-Time Bike Availability: Check availability at various stations.
- Fare Estimation: Get fare estimates based on distance or time.
- Bike Booking: Reserve bikes for immediate or scheduled use.
- Online Payment: Make bookings hassle-free via integrated payment gateways.
- Manage bike inventory (add/remove bikes).
- Monitor bike availability and booking history.
- Analyze user activity with detailed reports.
- React.js: Dynamic, responsive Single Page Application (SPA).
- React Router: Smooth navigation.
- Axios: Secure API calls.
- Node.js: Backend runtime.
- Express.js: Framework for RESTful APIs.
- JWT Authentication: Secure login.
- Role-Based Access Control (RBAC): Restricted access for users and admins.
- MongoDB: NoSQL database for users, bikes, and bookings.
- Mongoose: Schema and data modeling.
- Frontend: Deployed on Vercel.
- Backend: Hosted on AWS EC2 with optional Docker support.
- Database: Managed via MongoDB Atlas.
- Frontend: SPA powered by React.js.
- Backend: RESTful APIs using Node.js and Express.js.
- Database: MongoDB with collections for:
- Users: User profiles and credentials.
- Bikes: Inventory and availability.
- Bookings: User reservations and fare details.
- JWT Tokens: Stateless and secure.
- Role-Based Authorization: Admin vs. User functionality.
POST /register
: User registration.POST /login
: User authentication.GET /bikes
: Fetch bike availability.POST /book
: Book a bike.GET /history
: View booking history.
POST /admin/add-bike
: Add new bikes.PUT /admin/update-bike
: Update bike details.
POST /payment
: Process and validate payments via Razorpay.
Field | Type | Description |
---|---|---|
_id |
ObjectID | Primary key. |
name |
String | Full name of the user. |
email |
String | University email. |
password |
String | Hashed password. |
role |
String | User or admin. |
Field | Type | Description |
---|---|---|
_id |
ObjectID | Primary key. |
station_id |
String | Associated bike station. |
status |
String | Available or unavailable. |
Field | Type | Description |
---|---|---|
_id |
ObjectID | Primary key. |
user_id |
ObjectID | Reference to Users. |
bike_id |
ObjectID | Reference to Bikes. |
fare |
Number | Fare for the booking. |
- Clone the Repository
git clone https://github.com/navjot369/insta-go
cd instago
- Set Up the Backend (Express.js + Node.js) Navigate to the backend directory:
cd backend
npm install
Configure Environment Variables ane start the Backend Server:
npm start
The backend server will now be running on http://localhost:5000.
- Set Up the Frontend (React.js)
Navigate to the frontend directory:
cd frontend
npm install
Configure Environment Variables and start the Frontend Development Server:
npm start
Open your browser and go to http://localhost:3000 to use the InstaGO platform locally. You should be able to interact with the bike booking system, check availability, and manage bookings.
- Frontend: Deployed on Vercel for seamless CI/CD.
- Backend: Hosted on AWS EC2 with Nginx or Docker.
- Database: Managed by MongoDB Atlas.
- Multi-Campus Support: Expand to multiple locations.
- GPS Tracking: Real-time location updates for bikes.
- Bike Health Monitoring: IoT sensors for maintenance alerts.
- Enhanced User Profiles: Save preferences and history.
- Campus Service Integration: Link with other university systems.
Contributions are welcome! Please fork this repository and submit a pull request for any feature or enhancement you'd like to add.
This project is licensed under the MIT License. See the LICENSE
file for details.
Let's make university travel sustainable and hassle-free!