Process
Requirements Analysis & Technical Research
We began by identifying system requirements through consultations with the weather station team, technical constraint analysis, and exploration of relevant IoT protocols (MQTT) and ML approaches for time-series forecasting. We also reviewed similar systems and architectural best practices in distributed applications.
System Architecture & Service Design
Using our findings, we designed a containerized microservice architecture that separates concerns into IoT ingestion, API orchestration, and machine learning prediction services. We prioritized scalability, modularity, and clear communication between services via REST APIs and database pipelines.
Backend & ML Prototyping
Initial development focused on prototyping the backend services in .NET and the weather prediction model in Python. This included data parsing, API endpoints, and training a regression model using historical data. We iteratively tested the system's flow and prediction accuracy using simulation data from the sensors.
Integration & Functional Testing
We performed integration tests to ensure seamless communication between services (e.g., IoT API → DB → ML → Frontend). We monitored response times, latency (~300ms on average from sensor to UI), and accuracy metrics from the ML module, adjusting our infrastructure for reliability.
Frontend Implementation & Deployment
We developed the frontend in React Native, focusing on a clean UI to present real-time and predicted data. A consistent design system was implemented for reusability. The entire stack was containerized and deployed using Docker, with each component validated independently and as a whole.