Coder Social home page Coder Social logo

exm-playground's Introduction

Backend Assignment

A small - and hopefully - fun exercise

Scenario

We want to simulate a hardware device (client) that provisions itself and sends weather data to an IoT platform. In order to hide the internals of this platform and provide a friendlier API we introduce an intermediate HTTP server (backend) with the following basic capabilities:

  • Create/delete a device
  • Upload/download telemetry data
flowchart LR
    P(Platform) <-->|HTTPS| B(Backend) <--> |HTTP| C(Client)

Assignment

Fork this Github repository, proceed with the development and ping us when you're ready! Happy coding :)

You are provided with:

  • Repository with detailed explanation of the test and a dataset in CSV format
  • Thingsboard server url
  • Tenant admin credentials

You need to deliver:

  1. Backend application

A node express app with REST endpoints that will interact with a Thinsgboard server and respond appropriately to client:

  • Endpoint for device creation
  • Endpoint for device deletion
  • Endpoint for uploading telemetry
  • Endpoint for downloading telemetry: returns the aggregated (SUM per hour) telemetry data from a specific device
  1. Client application

A node app that makes use of the backend API that you created by:

  • creating a new device
  • uploading data from the CSV file (data.csv) as telemetry to that device (use as many requests as you deem fit)

Requirements

  • All interactions between backend and the platform should be done via the HTTP API
  • Both apps should be containerized and wrapped in docker-compose script for easy deployment
  • All code should be available in the repository

exm-playground's People

Contributors

chatper 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.