Giter Site home page Giter Site logo

saumya-bhatt / nio-dashboard Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 74.01 MB

Dashboard for relaying commands to another IP and getting a response in realtime using python. Has offline map functionalities and able to stream live IP camera video. Previous versions build using AJAX and JQuery. Database hosted on Apache with MySQL database. Can upload and run python files to the server.

HTML 15.66% JavaScript 4.57% CSS 3.12% PHP 7.30% Python 12.78% Jupyter Notebook 56.57%
python dashboard offline-maps realtime video-streaming databse mysql-server apache mongodb streamlit

nio-dashboard's Introduction

NIO Dashboard

CSIR NIO

Internship Certificate

  1. Can perform basic CRUD operations on files which can be added locally onto server.
  2. Can send and receive updates to and fro from the dashboard and the receiving panel.
  3. Has capabilities of working offline. (even the maps but with reduced functionalities)
  4. Has ability to provide live streaming videos. (v4.0 and above only)
  5. Work done in version wise.

The latest 5.0 version with improved UI for offline imaging and video streaming


Latest Release - v5.0

  1. Supports handling and connecting of multiple AUV instances to GUI.
  2. Compiling mission file before uploading to server.
  3. Facilities for live onboard camera feed.
  4. Dynamic updates and mapping features still in work.

Steady Build - v4.0

  1. Supports online and offline mapping functionality.
  2. Can dynamically update values.
  3. Live camera feed functionality.

Onffline mapping in v4.0


Database

Current Database Schema

This schema supports the v4.0 and 5.0 which works on python.

  1. The database schema for v4.0 and 5.0 are available in their Extra/Database/ folders.
  2. The database files are in .sql format but will only be supported by phpmyadmin, which would be installed while installing XAMPP (read more about this in the README of v4.0 and v5.0)

Older Database Schema

The .sql file can only work with phpmyadmin. The schema here is used for v3.0 which runs on traditional HTML/CSS/JS.

  1. A copy of the databse (9/7/2020) is there in the folder 3.0
  2. Copy is in CSV,JSON and SQL (will work with mySQL only)
  3. The copy database is compatible with v3.0 . Might be unstable with former versions.

Usability

  1. for versions 1.0 to 3.0 has a dashboard and a pannel. The pannel can be assumed to the server side which can send the data (in this case, you can manully send data to the dashboard and see it get updated in realtime).
  2. The 5.0 and 4.0 version only has one app.py file which runs everything. The server side has not been made here as data can easily transfered to it since the boilerplate has been written in python. To run it, go to the directory where app.py is located in 4.0/APP/ and 5.0/App/ respectively. Open the command line and type streamlit run app.py after going through the setup in their README.

The latest build of Dashboard working on HTML/CSS/JS/PHP i.e v3.0


About the versions

  1. 1.0 gives the very basic dashboard where the only functionality is that the receiving panel sends inputs to the dashboard. The communication is 1-way. Mainly made for designing the template
  2. 2.0 comes with the addition of extra commands. The user sends commands from dashboard and it get's received in the receiving panel. The communication is 2-ways. Complete dashboard design inducted.
  3. 3.0 has the ability to interract with the local system as well. User can upload files to it which it can run (currently python only). The result is stored onto a databse. It also has offline map compability.
  4. 4.0 is the dashboard made with python (streamlit). It has no affiliation with the databases unlike the other versions. Has all the functionalities as that of v3.0. Recomended for scaling-up purposes. More information about this version is given in the README in the folder 4.0
  5. 5.0 currently is in production and thus 4.0 is the stable build. But once completed will have all the functionalities of 4.0 and offer support for managing multiple AUVs.

Note: Corrupt version (in folder Extra) works on version 2.0 and has it's capabilities. Not suitable tho as files are not organized efficiently.

The builds before 4.0 have a receiving pannel with them to simulate the realtime functionalities of the dashboard and perform to and fro communications

A few details about stable build 4.0

  1. The result is stored in run_mission table
  2. The files are uploaded in the UPLOAD folder, their path is stored in mission_file.
  3. Abort mission deletes the file from the UPLOAD folder as well as it's path from the mission_file table.
  4. Even after aborting mission, the one which was uploaded immediately before that could be downloaded from the Download last mission button.
  5. Rest all tables are not involved with the user side as are used to store commands received to/from the dashboard/panel.
  6. The offline map works on the basis of rasterizing an image tile and plotting onto it. Hence would be static and won't provide any zooming capabilities. However it would be updated dynamically with a latancy of 2 seconds.

Upcomming updates

Integrating the dynamic updates and mapping functionality within the v5.0. Version 4.0 is stable and ready to use for one-to-one control of GUI and AUV instance. v5.0 will allow support for one-to-many GUI to AUV instances.

Note: After the image calling system for live stream videos for v3.0, the javascript build would be discontinued. All successive builds would take place on top of v4.0 only.

nio-dashboard's People

Contributors

dependabot[bot] avatar imgbotapp avatar saumya-bhatt avatar

Stargazers

 avatar  avatar

Watchers

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