Skip to content

ShindoSensei/Pulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pulse

On Feb 20th 2017, a Singapore Armed Forces regular serviceman lost consciousness during physical training in camp and died soon after. (ST article)

In light of such events, we created 'Pulse', an IOT-Web prototype, in a little under 2 weeks. 'Pulse' is an app that assists military commanders in monitoring the safety of their men. It reads the heart rates of a group of trainees(real-time) and immediately notifies the instructor if any trainee's heart rate has breached a safety threshold during physical training.

Live Version

https://pulseboard.herokuapp.com

App Screenshot

Pulse App

IOT Device Screenshot

IOT Device

Workflow

Collaboration

To facilitate task delegation and communication, we used the Github Project Kanban Board.

Wireframe

Pulse Wireframe

ERD

Pulse ERD

Built With

  • Ruby On Rails
  • Arduino (IOT with cloudMQTT)
  • PostgreSQL
  • Heroku (Deployment)
  • React.js
  • Bootstrap
  • jQuery
  • Font Awesome

Hurdles faced

  • This was our 1st React project on Rails. Several issues faced included the following:
  1. Integrating React with Devise

  2. Managing multiple React states due to the Single Page nature of the app.

  • Rails' synchronous nature proved difficult to integrate with MQTT IOT which initially caused the app to hang. To solve this, we ran Rails Active Jobs and sent the MQTT job to the background, allowing users to move on with other app functions.

Moving forward

  • To implement Rails' Action Cable in place of the current AJAX interval polling framework

  • To implement React Routing such that there is a unique link for each footer button (as they are all currently at '/trainings')

  • To re-organise the code such that server side code is not all in the trainings#index controller method.

  • To improve styling to the following:

    1. Set media queries and set buttons to the bottom for mobile/tablets and buttons to the top for desktop.

    2. Improve mobile site - Remove bootstrap framework and replace with customised CSS to space out the footer buttons. Also to move towards a progressive web app framework.

    3. Re-adjust sizes of panels

  • To add heart rate graphs of each trainee, providing commanders with a real-time update of their status, akin to an ECG heart monitor. react-chartjs

Getting Started

  1. Git clone this repo

  2. bundle install

  3. rails s to test on local host (Note: IOT MQTT server setup and hardware required)

Collaborators