Published on

I-Canopy Software Development

Authors
  • avatar
    Name
    Sheng(Jerry) Wang
    Twitter

I-CANOPY: A SOFTWARE PLATFORM FOR IOT SENSOR INTEGRATION

Title: I-CANOPY: A SOFTWARE PLATFORM FOR IOT SENSOR INTEGRATION

Subject: Project Summary

Github: Source Code

Table of Contents

Tech Stack

Sensor Setup

System Architecture

Sensor Setup

Our project focuses on developing a cross-platform software solution for mobile (iOS & Android) and desktop, offering an integrated marketplace, social sharing, and data monitoring platform for IoT air and soil sensors. Key features include user authentication, profile management, product browsing, online ordering with secure payment, real-time order tracking, sensor registration, live data queries, dynamic visualizations, and social networking through friends, messaging, and group management. We also implement backend optimizations, remote database integration, and continuous user-centered improvements to ensure scalability and performance. By combining cutting-edge technologies, the platform delivers a seamless and comprehensive user experience from purchase to data insights.

Key Features

Login

Sensor Setup

Data Lookup

Sensor Setup

Map

Sensor Setup

Store and Review System

Sensor Setup

Payment System

Sensor Setup

Chat System and Profilein

Sensor Setup
Key technologies

CI/CD

Over four months of development, we used continuous integration and deployment (CI/CD) with GitHub Actions to test every pull request on both the React Native frontend and Django backend. The following picture is an example of the two tests. Sensor Setup
We maintained a dedicated deployment branch, which automatically pushed builds to TestFlight. As a result, syncing branches and updating the app on our devices became a seamless, ~30-minute process. The following picture is the workflow of auto-deployment to testflight through EAS builds. Sensor Setup

Data caching

Initially, fetching 30-day sensor data via third-party APIs was slow and placed heavy load on the database. We introduced a Redis shared-memory cache on EC2 and a dedicated EC2 server running Celery tasks. Every 20 minutes, fresh JSON data is pulled, pickled, and stored in Redis. This process is done by using Celery Beat and Celery Worker regiested in Django. Sensor Setup This reduced database stress and boosted data retrieval speed by 5× (from 3.5s to 0.7s), as shown in figure below. Sensor Setup

Data Aggregation

Sensor Setup

Querying multi-year historical data was inefficient due to a large unoptimized table. We redesigned the system using Celery to update a pre-aggregated summary table in O(1) time during data ingestion. This reduced data size by 400× and improved query performance without compromising the charting detail, as visualized in the figure above.

The table below is the aggregated return json size versus the original json size(included all the datapoints.)

Sensor Setup

Project Scope

Sensor Setup

In previous projects, we deployed 300+ air and soil sensors (Fig. 1) for citizen scientists and agricultural users across the U.S. Over time, user feedback revealed that fragmented workflows—spanning ordering, registration, and data access—created steep learning curves and inefficiencies. To address this, we developed an integrated mobile and desktop platform (Fig. 2) that streamlines the entire process, from product browsing to real-time data monitoring. We hypothesize that this unified platform will lower barriers to use, improve communication, and boost user engagement, combining iterative software improvements with continuous user feedback.

Sensor Setup

While we had already designed a complete IoT infrastructure (see Fig. 2), the individual features were fragmented and difficult for non-technical users to adopt. We hypothesize that developing an integrated mobile and desktop platform will significantly lower the learning barrier, improve communication efficiency, and enhance user satisfaction and engagement with IoT sensor data. By combining continuous user feedback with iterative software improvements, we aim to deliver a solution that meets both technical and user experience needs.

We followed an agile process with iterative sprints and contin- uous user feedback. Early sprints refined Figma prototypes and delivered a stable, minimal interface; later sprints improved visu- als and animations for consistency (Fig. 3). We focused on an intuitive UI with loading skeletons and clear feedback to simplify interactions and reduce the learning curve.

Conclusion

his project strengthened our skills in team collaboration, user- centered problem solving, and continuous software refinement. Throughout development, we practiced agile teamwork, self- learned new technologies, and shared knowledge across the team to meet real-world user needs with a polished and scalable plat- form. Looking ahead, we aim to ensure the app maintains database and server scalability as the user base grows and to build future features on top of the solid foundation we've developed. We also hope to further enhance the user experience by incorporating ad- vanced data analytics and expanded social sharing tools.

Project Poster

Sensor Setup

Source Code

Github Repository