Giter Club home page Giter Club logo

pulse's Introduction

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

pulse's People

Contributors

anatraxia avatar johnacs avatar shindosensei avatar

Watchers

 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.