Code Monkey home page Code Monkey logo

dustduino-server's Introduction

A REST API for DustDuino air quality sensors

Deploy

For API documentation click here.

Deployment to Heroku

Use the heroku button above or manually create an app on heroku and deploy. For configuration purposes, the following table maps environment variables to their Django setting:

Environment Variable Django Setting Development Default Production Default
DJANGO_SECRET_KEY SECRET_KEY CHANGEME!!! raises error
DJANGO_PORTAL_URL PORTAL_URL http://127.0.0.1:8000 http://127.0.0.1:8000

Installation on local machine

Create a virtual environment

virtualenv venv
source venv/bin/activate

Install the requirements

pip install -r requirements.txt

Initialize the database

python sensor_rest_api/manage.py syncdb

Start the server

python sensor_rest_api/manage.py runserver

Docs Deployment

This project is set up with Travis deploy scripts already included which will deploy documentation to gh-pages. To utilize these, you will need to enable the repo on the Travis system and include the following two environment variables.

  • GH_REF - the URL of the repo, similar to github.com/developmentseed/dustduino-server.git
  • GH_TOKEN - a GitHub personal access token available from https://github.com/settings/tokens

dustduino-server's People

Contributors

dereklieu avatar kamicut avatar willieshubert avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dustduino-server's Issues

Heroku build

After successful build and deploys to heroku, the app fails and returns Bad Request (400): http://opendustmap.herokuapp.com/api/v1/.

Postgres and Sendgrid seem to be hooked up fine. No obvious errors in logs. When building and running locally is successful and does not return bad request.

@scisco just added you to the opendustmap heroku app as a collaborator. Have any insight into what might be missing here that is causing the error?

Location data

Need some way to get sensor location to map in addition to sensor data. Things to think about:

  1. where should this be stored?
  2. how do users modify?

cc @kamicut

Clean-up, moving to this repo for continuing development

@scisco @smit1678

Getting to the point where I can push my work on this API app up here. It currently returns average readings for an arbitrary # of hours. You can also query this data for a specific username, which will correspond to sensors.

Need to do before I push it up here:

  • Return one average reading for each hour requested. Currently gives one average reading for all the hours requested.
  • Return average reading for all active sensors, or users, for the last hour.

Once I push it up here, the plan is to run the app on the iMac we have in the office and point our own sensors to it so we can start recording actual data. This will work for testing and continuing development.

build api endpoint for handling new dyno/user creations

Endpoint Map

  • URL base: /api/v1
    • Sensors: sensors
      • GET sensors lists sensors
      • GET sensors/{sensor_id} lists sensor
      • POST sensors creates a new sensor or if the user exist start the token regeneration process
      • PUT sensorsupdates an existing sensor (will requires email and token)
    • Readings: readings
      • GET readings returns list of latest readings aggregated by hour
      • GET readings/{sensor_id} returns list of readings aggregated for a particular sensor
      • POST readings adds a new reading

Fix documentation sensor endpoint URL

In the docs, the URL for the sensor endpoint is listed as:

https://brazil-sensor.herokuapp.com/sensors/sensor_id

Should be:

http://brazil-sensor.herokuapp.com/api/v1/sensors/:sensor_id

Documentation

We need to document the endpoints that are served by the API, as well as the actions an authenticated user can do on the web browsable interface. Would the documentation be part of the frontend?

Currently, the endpoint is (in optargs notation):

/readings/[aggregate/]?format=json[&users=user1,user2,..][&start_date=yyyy-mm-dd]

  • Adding /aggregate/ will aggregate by hour.
  • start_date restricts by record creation date after a certain date
  • users filters by owner of the record

cc @dereklieu

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.