Git Product home page Git Product logo

sarathi's Introduction

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/

sarathi's People

Contributors

aribalam avatar rakaar avatar dependabot[bot] avatar thealphadollar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.