/iot-tracker-backend

This is the backend development project for iot devices. Embedded Devices are connected to iot backend and then all the device can send and receive data from that backend, It is role based authentication model . Devices are acted as Human so android apps can be used for the project. Nodejs is backend , frontend in react js and android app is in java. embedded is coded in c so four programming languages

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

Welcome to Iot Tracker Backend 👋

Version Documentation Maintenance Twitter: robokishan

This is the Project for iot tracker backend. it supports following things

Features

  • Role based permission
  • Seprate login for admin, Client and and device
  • Device is acted as Human so that we can also track employees with the android or ios app
  • MQTT, LWM2M, Spark-protocol Supported
  • User info , Jwt token based authentication
  • Profile Picture upload and remove
  • User can add Assets, delete assets, edit assets
  • List of all apis will available after running the project
  • Swagger documentation
  • Multiarch support [ raspberry pi, beaglebone black and imx6ull other armv7 boards ]

Tasklist

  • RS485, RS232 Support
  • Can Bus support
  • Quick emergency button support

Install

npm install

Usage

  • You need to create .env from .env.template and then use your credentials for postgresql , mongodb and paytm
npm run start

Docker build

First build Docker image

docker build -t <custom-name> -f Dockerfile .

For development

docker run -d -p 5000:5000 -v $PWD:/usr/src/app --name iot-backend -ti robokishan:iot-backend:latest /bin/bash

For Production

docker run --rm -p 5000:5000 --name iot-backend -ti robokishan:iot-backend:latest

List of APis

┌────┬──────────────────────────────────┬───────────────────┬───────┬──────┐
│    │ APi                              │ Method            │ Admin │ dOne │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 0  │ /api/v1/owner/login              │ POST              │       │ ✅    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 1  │ /api/v1/asset/login              │ POST              │       │ ✅    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 2  │ /api/v1/assetdata/:assetId/      │ POST              │       │ ✅    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 3  │ /api/v1/public/portfolio/main    │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 4  │ /api/v1/public/mail              │ POST              │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 5  │ /api/v1/public/payment           │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 6  │ /api/v1/public/callback          │ POST              │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 7  │ /api/v2/asset/data/:assetId/     │ POST              │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 8  │ /api/v1/asset/p/password         │ PUT               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 9  │ /api/v1/asset/p/picture          │ PUT, DELETE       │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 10 │ /api/v1/util/genuuid             │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 11 │ /api/v1/util/genpass             │ POST              │ 🔐     │ ✅    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 12 │ /api/v1/owner/picture            │ PUT, DELETE       │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 13 │ /api/v1/owner/detail             │ GET, PUT          │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 14 │ /api/v1/owner/password           │ PUT               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 15 │ /api/v1/owner/asset              │ DELETE            │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 16 │ /api/v1/asset                    │ GET               │       │ ✅    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 17 │ /api/v1/asset/data/:assetId      │ GET               │       │ ✅    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 18 │ /api/v1/asset/hits               │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 19 │ /api/v1/asset/overview           │ GET               │       │ ✅    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 20 │ /api/v1/asset/add                │ POST              │       │ ✅    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 21 │ /api/v1/asset/detail/:assetId    │ PUT               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 22 │ /api/v1/admin/owner              │ POST, GET, DELETE │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 23 │ /api/v1/admin/owner/:owner_id    │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 24 │ /api/v1/admin/asset              │ POST, DELETE      │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 25 │ /api/v1/admin/overview/count     │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 26 │ /api/v1/admin/overview           │ GET               │ 🔐     │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 27 │ /api/v1/admin/all/assets         │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 28 │ /api/v1/admin/mail               │ POST              │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 29 │ /api/v1/admin/type/owner         │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 30 │ /api/v1/admin/project            │ POST, GET         │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 31 │ /api/v1/admin/project/:projectId │ PATCH, DELETE     │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 32 │ /api/v1/swagger/documentation    │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 33 │ /api/v1/swagger/swagger.json     │ GET               │       │ 📌    │
├────┼──────────────────────────────────┼───────────────────┼───────┼──────┤
│ 34 │ /api/v2/asset/overview           │ GET               │       │ 📌    │
└────┴──────────────────────────────────┴───────────────────┴───────┴──────┘

Author

👤 Kishan Joshi

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.

Show your support

Give a ⭐️ if this project helped you!