Giter Club home page Giter Club logo

space-app's Introduction

Space App

Responsible for receiving sensor temperature data (fahrenheit) in space (via http request).

Persists data - and keeps track of data that has not been synced to a consumer on Earth.

Converts temperature data from fahrenheit to celsius; then serializes un-consumed data from space application to earth an Earth consumer.

Data is sent to earth as it is generated.

A cron job runs in the background every minute (can be adjusted).

The cron job is responsible for checking if any unsynced data exists - if such data exists a sync is attempted.

The cron job is responsible for retrying to sync unsynced data that may not have reached earth (as the application faces network blackouts - rogers or space)

Ruby Version

3.0.0

Rails Version

7.0.3

Run Locally

  brew install redis

  # ensure redis server has started if it isn't already running
  brew services start redis

  # additional commands

  # stop redis
  brew services stop redis

  # restart redis
  brew services restart redis

  # add crontab to run rake task every minute
  exp. below
  * * * * * /bin/bash -l -c 'cd ~/Desktop/heat_up_above/space_app/ && /Users/josephb/.rvm/wrappers/ruby-3.0.0/rake batch:sync_temperatures'

Clone the project

  git clone [email protected]:JosephBianchi/space-app.git

Go to the project directory

  cd space-app

Install dependencies

  bundle install

Start the server

  rails server

Usage/Examples

  # mock sensor data with http request:
  POST http://localhost:3000/temperatures

  JSON request body
  {
    "temperature": $temperature
  }

  # app should push temperature data onto a redis list - then attempt to sync to consumer.
  # if successful response from consumer - pop synced temperature data from redis list

Authors

  • Joseph Bianchi

space-app's People

Contributors

josephbianchi avatar

Watchers

James Cloos avatar  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.