PioneerFi
Distributed IoT system monitoring campus WiFi performance across classrooms
Project Overview
During my sophomore year, I spent countless hours wandering between classrooms searching for decent WiFi - sometimes arriving only to find the network was down, forcing me to backtrack and waste more time. PioneerFi solves this frustration by providing real-time visibility into network performance across campus.
The system deploys IoT nodes throughout campus that continuously monitor network speeds and connectivity. This data flows through a custom REST API to a MongoDB backend, then renders as interactive time-series graphs on a Vue.js frontend. Students can check network status before leaving their current location, saving time and frustration.
Built during PioneerHacks 2.0, this project earned 2nd place and marked my first venture into IoT development and modern JavaScript frameworks.
PioneerFi System Demo
The Problem
The inspiration came from daily frustration: overcrowded classrooms with unreliable WiFi. You'd walk to a classroom hoping for better connectivity, only to find the network was down. Then you'd have to pack up and try somewhere else - wasting 15-20 minutes just to find a place to work.
The core issue was information asymmetry. The network infrastructure team knew where connectivity issues were occurring, but students had no visibility. We were essentially gambling on which classroom might work.
PioneerFi democratizes this information. Rather than wandering aimlessly, students can see real-time network performance across campus locations and make informed decisions about where to go. What took 20 minutes of trial-and-error now takes 30 seconds of checking the dashboard.
System Architecture
PioneerFi is a three-tier distributed system:
IoT Node Layer:
Each monitoring node runs Python scripts that execute network diagnostics at regular intervals. The scripts measure download/upload speeds, latency, and packet loss, then clean and format this data before transmitting to the server. The nodes are configured to report even when network connectivity degrades - gaps in the data actually indicate network failures, which is exactly what students need to see.
Backend API & Database:
A Flask REST API receives data from all nodes and stores it in MongoDB. The database structure preserves time-series data, allowing the frontend to display both current status and historical trends. The API aggregates metrics across nodes and exposes endpoints for the frontend to query specific locations or time ranges.
Frontend Dashboard:
Built with Vue.js and Astro, the interface displays interactive charts using Highcharts. Each classroom has a dedicated graph showing network speed over time, with gaps indicating downtime. The UI allows students to quickly compare multiple locations and see trends that indicate whether issues are temporary or persistent.
Technical Challenges & Solutions
The biggest challenge was handling network failures gracefully. Initial implementations only stored successful data transmissions, which meant network downtime - the exact thing we needed to track - was invisible in the graphs.
The solution was representing the x-axis as absolute time rather than transmission count. This meant periods of downtime appeared as gaps in the data, accurately representing when connectivity failed. This design decision transformed the system from showing "when things work" to "when things don't work" - which is what students actually care about.
Technology Learning Curve:
This was my first exposure to several technologies:
Vue.js framework (previously only used vanilla JavaScript)
Astro for optimized static site generation
MongoDB for document-based data storage
IoT node programming and remote diagnostics
The hackathon timeline forced rapid learning, but the result was a functional system deployed across multiple campus locations.
Impact & Recognition
PioneerHacks 2.0 - 2nd Place
The project earned 2nd place for addressing a real campus need with a technically sound solution. Judges appreciated both the practical utility and the full-stack implementation spanning IoT hardware to web frontend.
Next Steps:
The plan was to expand the node network across more campus locations and potentially roll out to other schools. The system architecture scales well - adding new nodes just requires deploying the Python scripts and registering them with the API.
Lessons Learned:
Building PioneerFi taught me that the best projects solve problems you personally experience. The technical challenges were significant, but knowing I was building something genuinely useful kept motivation high throughout the hackathon. This principle has guided every subsequent project.
Skills & Technologies
Project Info
April 2022 - April 2022
Completed
