Skip to content
/ airvd Public

REST APIs for CRUD operations created using Django and Django REST Framework, for IoT devices.

Notifications You must be signed in to change notification settings

alpha74/airvd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Airvd

Basic CRUD REST demo using Django REST Framework.

Used:

  • Python
    • Django + SQLite
    • Django REST Framework

Run:

  • Create virtualenv using requirements.txt
  • Run python manage.py runserver in commandline.
  • By default, server runs on port 5000.

Models/Classes:

Device

  • An IoT device with properties:

    • uid : unique id of device
    • name : name of device
  • A device measures humidity and temperature:

    • HumidityReading : one-to-many
    • TemperatureReading : one-to-many

HumidityReading

  • device : owner device
  • humidity : reading
  • timestamp : timestamp when reading was stored in db

TemperatureReading

  • device : owner device
  • temperature : reading
  • timestamp : timestamp when reading was stored in db

APIs

API to create a device

  • Endpoint: POST /api/devices/
  • Content-Type: application/json
  • Request Payload
    • uid
    • name

API to delete a device

  • Endpoint: DELETE /api/devices/{device-uid}
    • device-uid : uid of device to be deleted

API to retrieve a device

  • Endpoint: GET /api/devices/{device-uid}
    • device-uid : uid of device

API to list all devices

  • Endpoint: GET /api/devices/
  • Response: json

API to return readings for a device in given period

  • Endpoint: GET /api/devices/{device-uid}/readings/{parameter}/?start_on=yyyy-mmddTHH:MM:SS&end_on=yyyy-mm-ddTHH:MM:SS

    • device-uid : uid of device
    • parameter : temperature or humidity
    • start_on and end_on : query parameters which are compulsary and should be used to filter the result to only include data between start_on and end_on.
      • yyyy-mm-ddTHH:MM:SS : year-monthdateThour:minute:second
  • Response: json


To Improve

App can be improved on following:

  • Payload cleaning.
  • Date range matching using timezones.

Commit History Graph

Commit History Graph

About

REST APIs for CRUD operations created using Django and Django REST Framework, for IoT devices.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages