MapMitra is an intuitive campus navigation and transportation management system designed specifically for the Thapar Institute of Engineering and Technology (TIET). The project aims to address the challenges faced by new students, visitors, and e-rickshaw-dependent travelers by providing landmark-based navigation and real-time tracking of e-rickshaws.
- Landmark-Based Navigation: Provides clear and user-friendly directions using well-known campus landmarks.
- Real-Time E-Rickshaw Tracking: Displays live locations and estimated arrival times for e-rickshaws to minimize waiting times.
- Personalized Recommendations: Suggests popular campus amenities based on user preferences.
- Interactive User Interface: A visually appealing and intuitive interface for navigation and transportation.
- Admin Management Tools: Allows administrators to manage routes, register drivers, and handle road closures.
- Frontend: React.js (for a responsive and interactive user interface)
- Backend: Node.js, Express.js
- Database: MongoDB (for scalable and flexible data storage)
- Real-Time Communication: Socket.io (for live e-rickshaw tracking)
- Mapping Services: OpenStreetMap and GIS data
- Caching: Redis (to optimize performance)
- Node.js and npm installed
- MongoDB server setup
- Redis server installed
- Clone the repository:
git clone https://github.com/shouryade/MapMitra.git
- Navigate to the project directory:
cd MapMitra
- Install dependencies:
npm install
- Set up environment variables:
- Create a
.env
file in the root directory. - Add the following variables:
MONGO_URI=your_mongodb_connection_string REDIS_URL=your_redis_connection_url SOCKET_PORT=your_socket_port
- Create a
- Start the server:
npm start
- Access the application:
Open your browser and navigate to
http://localhost:3000
.
- A cloud hosting platform (e.g., AWS, Heroku, or DigitalOcean).
- Docker (optional, for containerized deployment).
- Domain name and SSL certificates (optional, for production).
-
Configure Environment Variables: Ensure all necessary environment variables (e.g.,
MONGO_URI
,REDIS_URL
, etc.) are configured in the cloud environment or container service. -
Containerize the Application (Optional):
- Create a
Dockerfile
:FROM node:14 WORKDIR /app COPY package.json . RUN npm install COPY . . EXPOSE 3000 CMD ["npm", "start"]
- Build and push the Docker image:
docker build -t mapmitra:latest . docker tag mapmitra:latest your_dockerhub_username/mapmitra:latest docker push your_dockerhub_username/mapmitra:latest
- Create a
-
Deploy to Cloud Provider:
-
Heroku:
- Install Heroku CLI and log in.
- Create a Heroku app:
heroku create mapmitra
- Deploy the code:
git push heroku main
- Set environment variables:
heroku config:set MONGO_URI=your_mongodb_connection_string heroku config:set REDIS_URL=your_redis_connection_url heroku config:set SOCKET_PORT=3000
-
AWS EC2 or DigitalOcean:
- SSH into your instance and clone the repository.
- Install Node.js and MongoDB on the instance.
- Configure environment variables in a
.env
file. - Start the application using
pm2
for production:pm2 start npm --name "MapMitra" -- start
-
-
Set Up Reverse Proxy (Optional):
- Use Nginx or Apache to set up a reverse proxy for handling incoming traffic to the Node.js application.
- Configure SSL certificates for HTTPS.
-
Monitor the Application:
- Use monitoring tools like New Relic, Datadog, or AWS CloudWatch to track application performance and uptime.
- Navigate through the campus: Use the interactive map to get directions based on landmarks.
- Track e-rickshaws in real-time: View live locations and availability of campus e-rickshaws.
- Plan your routes efficiently: Minimize waiting times and navigate stress-free.
This project is licensed under the MIT License.
We would like to express our gratitude to our mentors:
- Dr. Deep Mann
- Dr. Aditi Sharma
Their guidance and expertise were invaluable in the successful completion of this project.