Skip to content
This repository has been archived by the owner on Apr 2, 2024. It is now read-only.

Latest commit

 

History

History
126 lines (114 loc) · 5.47 KB

README.md

File metadata and controls

126 lines (114 loc) · 5.47 KB

Jumbotail - GPS Asset Tracking Application

Table of contents

Overview

GPS based asset tracking dashboard to track all the company’s assets. dashboard showing the assets (can be delivery trucks or salespersons) on a map so the assets can be easily tracked, with the option to drill down further into the details of a specific asset.

Use case for GPS tracking at Jumbotail

Jumbotail is aimed at creating an online wholesale marketplace for food and grocery, allowing buyers and sellers to transact on the platform. Some use cases that the company caters to, like delivery, sales personnel marketing, require a need to implement a GPS based tracking system to track movements to optimize the supply chain.

Being able to track movement of delivery persons and fleet on a map has become a necessity to optimize the supply chain by improving delivery times.

Features

  1. Authentication (login/signup)
  2. Map on which markers show the latest locations of all assets. ( by default 100 markers )
  3. Support search/filter options based on asset id or asset type.
  4. Support for time based filters which will take start date/time and end date/time as inputs.
  5. Upon clicking over a marker, it gives a popup showing asset details like asset type, asset id, timestamp and option for different views.
  6. Timeline based view of the asset, which shows markers for each location of the asset for the past 24 hours ( default )
  7. Geofencing - a feature to allow selection of an area on a map that a particular asset has to be restricted to. Any movement of this asset outside of the selected area results in a notification on the application’s UI.
  8. Anomaly Detection - allows a user to select a predefined route and set it as expected route for a particular asset. Any deviation from this route triggers a notification.
  9. Responsive UI, can be used across different divices.
  10. Notifcations on asset movements.

Links

Tech Stack

Frontend

  • React - Front-end JavaScript library
  • Mapbox - For Map Api
  • deck.gl - Visualization framework built on Mapbox
  • react-map-gl - React wrapper for Mapbox GL
  • nebula.gl - A suite of 3D-enabled data editing overlays, suitable for deck.gl.
  • material-ui - UI tools for React

Backend

  • Node.js - Evented I/O for backend
  • Express - Fast Node.js network app framework
  • Socket IO - JavaScript library for realtime web applications
  • MongoDB - General purpose, document based NoSQL Database

Tools

  • Postman - For api testing and documentation

Getting started

Local build

Frontend

It requires React to run.

Install the dependencies

cd client/
yarn install

Setup environments variables. (fill in .env template)

mv .env.template .env

Start the server

yarn start

Backend

It requires Node.js v14+ and MongoDB v4+ to run.

Install the dependencies and devDependencies.

cd server/
npm install

Setup environments variables. (fill in .env template)

mv src/config/config.env.template src/config/config.env

Start the server

npm run start

Testing
Make sure you have mochajs installed globally, Setup environments variables.

npm run test

Deployment

Heroku Deployment

heroku login -i
heroku git:remote -a <your-app-name>
git push heroku master

Set up environment variables

heroku config:set ENV_VAR=<value>

Developers

Screenshots

  • Authentication login/signup

  • Various filter by asset type , date range or ID

  • Track past 24 hr activites

  • Geofence and anamoly detection

  • Georoute and anamoly detection

  • Real time asset update and anomaly detection

  • Responsive for phone