Elixir backend for an IoT app

Kevin Mathew

Backend Engineer

Elixir

PostgreSQL

About

Our app allows its users to register their smart devices and control them remotely. As an MVP, users can turn their devices on and off right from their internet-enable devices, however, we plan to incrementally update this to keep adding new features.
Our initial goal was to build a simple platform to allow a layperson to be able to get into the world of IoT and smart devices. The innovation behind our app is that, users can even turn their non-smart devices to smart-devices with little to no programming knowledge and highly available hardware using some utilities that our Hardik is currently developing.
As for the app itself, we initially planned on going with a React Native mobile app, but ended up going with a ReactJS PWA since we wanted the users to not just be limited to using a smartphone to automate their homes. Now, they can pretty much use any smartphone, tablet or computer in order to automate their homes.
Our app consists of a front-end PWA, a back-end API layer and the actual IoT Component. Here's a breakdown for each of these components:
Front-end PWA App - This app was built using ReactJS, Tailwind CSS, React hooks for state management and CRA's PWA Capabilities
Back-end API Layer - Our back-end currently consists of the API layer that both, the front-end app as well as the IoT component, use in order enable, disable, turn-on, turn-off, register smart devices into our system. Our app is built on the Phoenix framework using Elixir and PostgreSQL DB. This is the component that we've deployed on a Civo Compute instance.
IoT Component - Our IoT component contains various utilities that are built using C++ and run on top of an NodeMCU ESP8266 microcontroller. The utilities are subscribed to our back-end API on a pub-sub model whenever there are changes in the DB, they query the API and communicate with the smart devices.
Here is the demo
Watch on YouTube
Like this project
0

Posted Dec 4, 2021

Created and deployed the backend for an innovative IoT app as part of a hackathon project. Designed and implemented the server architecture from the ground up,

Likes

0

Views

5

Tags

Backend Engineer

Elixir

PostgreSQL

Milton: The Millennial Slang Decoder Extension
Milton: The Millennial Slang Decoder Extension
Instagram-Bot: A simple Instagram bot to like posts
Instagram-Bot: A simple Instagram bot to like posts
Node.js <> Tally integration
Node.js <> Tally integration
aditi: Telegram based chatbot
aditi: Telegram based chatbot