Skip to content

yxshee/mapmitra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MapMitra: Navigate Effortlessly

Overview

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.

Features

  • 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.

Technologies Used

  • 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)

Installation

Prerequisites

  • Node.js and npm installed
  • MongoDB server setup
  • Redis server installed

Steps

  1. Clone the repository:
    git clone https://github.com/shouryade/MapMitra.git
  2. Navigate to the project directory:
    cd MapMitra
  3. Install dependencies:
    npm install
  4. 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
  5. Start the server:
    npm start
  6. Access the application: Open your browser and navigate to http://localhost:3000.

Deployment

Prerequisites

  • A cloud hosting platform (e.g., AWS, Heroku, or DigitalOcean).
  • Docker (optional, for containerized deployment).
  • Domain name and SSL certificates (optional, for production).

Steps

  1. Configure Environment Variables: Ensure all necessary environment variables (e.g., MONGO_URI, REDIS_URL, etc.) are configured in the cloud environment or container service.

  2. 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
  3. 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
  4. 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.
  5. Monitor the Application:

    • Use monitoring tools like New Relic, Datadog, or AWS CloudWatch to track application performance and uptime.

Usage

  1. Navigate through the campus: Use the interactive map to get directions based on landmarks.
  2. Track e-rickshaws in real-time: View live locations and availability of campus e-rickshaws.
  3. Plan your routes efficiently: Minimize waiting times and navigate stress-free.

Authors

License

This project is licensed under the MIT License.

Acknowledgments

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.