Skip to content
A web application to connect people with similar journey details and share rides
JavaScript CSS HTML
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
client
.gitignore
Procfile
README.md
app.js
logo.png
package-lock.json
package.json

README.md

Sarathi

Sarathi is a progressive web application intended to connect a group of people taking the same journey at the same time for sharing cabs.

Maintained by Arib Alam

Motivation

IIT Kharagpur has a facebook page named Travel KGP! where students would post their journey details with a prospect of finding other students with similar journey to share rides. The process however was quite disorganized due to the following reasons

  1. The users were unable to search for posts matching with their travel timings. The only way was to scroll through all posts and look for the required one.
  2. The above point would lead to multiple posts for the same journey.
  3. There was no way to know whether the creator of the post is still open to accepting people without commenting on their posts asking about the status.

Sarathi Web app aims at solving all the above problems by -

  1. Letting users search for groups matching their journey details as well have the option of creating a new one.
  2. Having a well defined procedure of joining groups through sending requests to its creators.
  3. Creating an option for changing the status of the group between open/closed to allow/deny users to join the group.
  4. Implementing push notifications to notify user regarding updates of their joined/created groups.

Technology Stack

Backend: NodeJS using the Express framework
Database: MongoDB connected to backend using mongoose driver
Frontend: ReactJS

Features

  1. Searching for groups matched by the journey details entered by the user

Demo

  1. Creating a group for a given journey

Demo

  1. Approving or rejecting requests by a user to join a group

Demo

  1. Changing the status or the departure time of the group by the creator

Demo

  1. Reading notifications recieved regarding updates of the group

Demo

Installation

Make sure MongoDB is installed and its running in your machine.

  1. Clone the repository and switch to develop branch
    git clone https://github.com/aribalam/sarathi.git
    git checkout develop

  2. Install dependencies
    cd sarathi
    npm install
    cd client && npm install

  3. Create a new Facebook developer app. Find the procedure here.

  4. Generate webpush VAPID keys and copy the private and public keys
    ./node_modules/.bin/web-push generate-vapid-keys

  5. Add the following properties to config.js in the root directory

{
  ...
  appId: <your-facebook-app-id>
  appSecret: <your-facebook-app-secret>
  publicKey: <webpush-generated-public-keys>
  privateKey: <web-push-generated-private-keys>
}
  1. Add your webpush public key in client/src/registerPush.js
    const vapidPublicKey = <webpush-generated-public-key>

  2. Launch the servers.
    DEBUG=api:* npm start
    cd client and npm start

The development server will be hosted in http://localhost:3000/
The api server will be hosted in http://localhost:5000/api/

You can’t perform that action at this time.