Inspiration

Many businesses are replacing their old technologies with new ones as we enter the world of IoT. With so many different brands, models, and apps it becomes difficult to manage and monitor all of these devices.

Sudocore wants to give businesses the ability to aggregate all of their devices into a single application, control them, and receive data on how long they were one and how much power they used. This should help businesses track where they can conserve energy or learn about anomalies such as devices that are 'on' longer than they should be.

What it does

Sudocore allows the user to create rooms, such as the rooms that exist in most office buildings. In each room, the user can add devices. Sudocore interacts with the device's API to GET information such as whether or not it is on and POST commands to change the current state of the device. As Sudocore tracks which devices are one, it collects that data and then generates plots and pie charts showing how much power the device consumed daily, weekly, monthly, and yearly as well as how long that device was on.

How we built it

Our team developed a web application using Flask, Plotly (for generating the graphs), and Bootstrap to analyze the database and display it to the user.

We used CSV files as our temporary database and the source of truth for our data. We made use of Flask's templating system and tags to render the HTML.

Challenges we ran into

We weren't able to get access to the actual API for an IoT device due to time so we weren't able to connect via Bluetooth.

Accomplishments that we're proud of

  • build an interactive website that supports beautiful graphs being displayed based on filters selected and handles the form submission

What we learned

Yi Heng Wang - Learned how to write python scripts to generate interactive plots using Plotly and then convert them to HTML for the webpage. Also learned how to use Flask's templating system and tags.

Yee Chuen Teoh - I learned how to use Flask's templating system and tags, and how to generate Plotly graphs. I also learned how to create forms and handle POST requests in Flask

Dwight Diesmo - I learned about Plotly graphs from Yi Heng and how to use them to generate interactive HTML plots.

Zhi-Hahn See - I learned HTML/CSS and Bootstrap from Dwight.

What's next for Sudocore

Building towards Bluetooth connectivity for adding devices and accumulating more APIs from the different IoT device options to interact with them. All data shown were mock data so we'd like to be collecting the actual data from the real devices in real-world settings.

Share this project:

Updates