Giter Club home page Giter Club logo

sharingcitiesdashboard's People

Contributors

aibaki avatar andyanderson79 avatar arya-hemanshu avatar dannylee12 avatar fcc-labadmin avatar j0rdanl0urens avatar jamesseth avatar kpennels avatar mikealicious avatar paddyeriksen avatar sassalley avatar sheltonwlsn avatar thanosbnt avatar wizardno7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sharingcitiesdashboard's Issues

Run Analytics Tasks on Thread

Once the request is verified launch a new thread to run the analytics request, the new thread should have access to task_id, user_id and api address to which it needs to send the data. The thread should also have access to database to save the computed data

API credentials / token expiry

We want the users / cities to have their own API credentials that are used to access the data from each API. We're currently using our development credentials and shouldn't expose these. Ideally we need to:

  1. Enable the user to provide their own (and tell them where to get / sign up)
  2. Deal with the expiry of tokens through time
  3. Make rate limiting / fair use transparent

Filter Data

Give user an option in the api to send values on which data can be filtered, e.g if user just want to predict NO2, then user should be able to send these in the post request

User should be able to combine fields from different data sources if they overlap in time

Users may want to plot temperature vs bikes available at a particular site. For this to happen, time has to be normalised between the two. Approaches to this have been discussed and investigated (e.g. forward filling and back filling).

Recommendation for first implementation: only allow for the combination of two fields from two different data sources - no more.

Update Documentation

Documentation has incorrect date range in the request section, update the documentation to reflect the current method

Identify likely space requirements for 2-year deployment

The application / DB will grow through time. Need to decide the following:

  1. How much data should we keep for each metric (e.g. max 1 year for each metric)
  2. How big will the DB get given this and given a quadrupling of the number of metrics?
  3. How much storage will the machine require to account for this?

Make a schema for metadata used by the front end

To be used by the front end globally and including:

  • data type
  • data update frequency
  • Unit type
  • human-readable column name ("label")
  • whether data is mappable
  • default ordering (column and direction)
  • total number of records

Analytics - Return response - in error

i) Error message defining what is actually missing and what caused the error while accepting the request.
ii) Request id (need to give more thought on it, is it even required)

Create an Api endpoint - Analytics

Create an api endpoint that accepts:

i) Column name for dependent variables
ii) Table names for dependent variables
iii) Column name for Independent Variable
iv) Table name for Independent Variable
v) Operation to be performed on dataset
vi) Requestor Id
vii) A flag to indicate whether the data is timeseries data or not.
viii) If null flag to indicate what to do with the null rows
ix) Range of data

Create notification mechanism

For completed analytics runs and when new data is gathered though the API client. Rely on push notifications (EventSource or similar).

Forecasting / Modeling should have defaults where possible.

Depending on the selected operation, defaults should be supplied:

E.g. Default
missingValues = forward fill.

Referring to below:

{
"columnsX": {
	"table1": ["col1", "col2", "col3"],
	"table2": ["col4", "col5", "col6"]
},
"columnY": "ycola",
"tableY": "table3",
"operation": "classification",
"requestor_id": 456,
"timeseries": "True",
"missingValues": "mean",
"dataRange": "12-03-2018 00:00:00.12-03-2018 00:00:00"
}

Setup Repo

Setup Repo with disabling users to directly merge into master or without code review

Adopt Milan APIs

Based on existing test code and new API client infrastructure.

Processing Analytics - Check for saved model

For every request first check if there is already an existing model, if there is

return the prediction with request id

if no, check if data is under default limit
if yes, create model and send the predictions, if no start processing and send the request id

Create visualisations having the same temporal span

It would be good if the users can view data with different temporal frequency in a common temporal extent. This would require resampling of one versus the other

eg. variable x temporal frequency is in minutes
variable y temporal frequency is in days

README for backend

Should explain the structure of the code, how to extend it (add new APIs) and how to run tests where appropriate.

Rebuild API client based on test code

Look at all the code created to gather data from various APIs, find a common ground and create an infrastructure to add them to, and any new ones.

Add data summary

Include a summary of the data that are included in the app.

  • Break down by city
  • Document date of update
  • Link to documentation where possible

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.