Git Product home page Git Product logo

stuk's People

Contributors

davidlarsketch avatar

Watchers

 avatar

stuk's Issues

API POST data support

Given

  • Lambda function makes a POST request to /device

When

  • The data is valid

Then

  • It is stored & returns a 201 response

Unknown

Kind of storage

  • DynamoDB
  • RDS
  • S3: JSON file

RaspberryPi recognizes new devices

Given

  • The user connects a new device to the Pi

When

  • The device processes whether the device was successfully connected

Then

  • The Pi makes a POST request with that device information, potentially to /device/new

API GET user support

Given

  • The front-end site targets the correct API endpoints

When

  • It makes a GET request for the user's profile data

Then

  • That data is received in JSON format

User can view current stats of a registered device

Given

  • A user is logged in
  • A user has registered devices
  • They perform an action on the "Devices" section

When

  • They perform an action on a registered device

Then

  • They see nice charts on stats such as:
    • Temp over duration of ferment
  • They see stats such as:
    • Time until ferment end
    • Current temp
    • Time of recent reading
    • Avg temp
    • Highest temp
    • Lowest temp
    • Deviation

User can reconfigure sensor or make a new schedule

Given

  • A user has a registered device
  • They make a gesture on a device's "Reconfigure" or "New Schedule" button

When

  • They fill out/edit the schedule information

Then

  • The web app makes a request with that new information

Handle device PATCH

Given

  • A new device has been associated with a user
  • The user confirms in a display that it is their device

When

  • A PATCH request to /device/:id with the user data payload

Then

  • The API updates the entry on the DB to associate the device with a user & sends back a status 200

User can register new device

Given

  • A user is registered & logged in
  • That device is recognized by the RaspberryPi

When

  • They perform an action on the "Register" tab

Then

  • They can enter the configuration settings for the new device, such as:
    • Minimum temp
    • Maximum temp
    • Fermentation end time
    • Type (what's being fermented)
    • Quantity (how much of it)
    • Location (where in one's house)

Lambda fires off SNS

Given

  • A temperature reading passes a certain condition for a schedule
  • The user has a registered phone number
  • Lambda formulates a message

When

  • Lambda function publishes to a SNS topic

Then

  • The user receives an SMS text message with the appropriate message

API GET all user's devices support

Given

  • A user is logged in

When

  • The web app makes a GET request for all top-level data for devices associated with a user

Then

  • The data is sent in JSON format with 200 status code

Stats are calculated & stored

Given

  • A new data point is sent to AWS

When

  • AWS Lambda functions are triggered

Then

  • Statistics are calculated such as:
    • Current temp
    • Time of recent reading
    • Avg temp
    • Highest temp
    • Lowest temp
    • Deviation
  • Statistics are saved, associated with device

Fun data visualizations

Given

  • A user has registered devices and recorded data

When

  • They make a gesture on a particular devices dashboard

Then

  • They see terra.js-based, Conway's Game of Life style data visualizations

User can log on

Given

  • A user visits the site
  • They perform an action on the "Login" button

When

  • They enter valid login info

Then

  • They are logged in & can view their sensors' data

API POST device support

Given

  • The Pi makes a POST request for a new device

When

  • The API handles the request by saving the new device data to the DB

Then

  • A 201 code is logged

Posts with IP address of request made?
User registration requires saving that IP address, so that new device is understood to be connected with a particular user b/c of IP address?

Deploy web app on AWS

  1. vue assets build
  2. Available at davidlarsket.ch/stuk
  3. Served from CloudFront
  4. Stored on S3

Lambda saves new data

Given

  • A new temperature reading is received by the RaspberryPi

When

  • Lambda functions process data results

Then

  • It sends the data to a DB

Automate mail service deployment

Use terraform create:

  1. Route53
    • MX
    • TXT for domain verification
    • CNAME for DKIM verification
  2. S3 for storage
  3. SES
    • domain
    • email addresses
    • save email rule set

API GET data support

Given

  • A user is logged in

When

  • The web app makes a GET request for a device's data

Then

  • That data is sent in JSON format with a 200 status code

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.