🌍 AQI Watch – Smart Air Quality Dashboard 🧠 Inspiration We were inspired by the increasing concern over air pollution and how difficult it is for everyday users to understand environmental data. Most air quality reports are buried in spreadsheets or require technical knowledge to interpret. So, we asked: What if we could make air quality data easy to explore and query, using AI and the cloud?
That’s where AQI Watch was born — a lightweight, interactive dashboard that shows users where air quality is improving or worsening, and answers simple questions like "Which country has the worst AQI today?"
🏗️ How We Built It We built this project using a combination of data engineering, cloud services, and web development:
Data Collection & Cleaning: We used a public dataset from Kaggle containing historical air quality data. Using Pandas, we cleaned the data (handled missing values, converted types, standardized formats).
MongoDB Atlas: We uploaded the cleaned dataset to a MongoDB Atlas cloud database, which gave us flexible, scalable NoSQL storage with remote access.
Backend (Flask): We created a Flask backend in Python that connects to MongoDB, fetches data, and handles user queries.
Frontend (HTML + Jinja2): Our UI was built with basic HTML and styled using Flask’s templating engine (Jinja2). The dashboard displays air quality by country and responds to user questions like:
“Where is air quality best?”
“Which country has the highest AQI?”
💡 What We Learned How to clean and manipulate real-world datasets using Pandas
How to use MongoDB Atlas for cloud-based data storage
How to connect Python Flask apps to MongoDB using PyMongo
Building a full-stack app end-to-end — from data ingestion to web interface
Basics of natural language input handling and result rendering
⚠️ Challenges We Faced Data formatting issues: Some columns had inconsistent or missing values that had to be carefully cleaned.
MongoDB connection errors: We initially faced authentication and access errors when connecting Python to MongoDB Atlas.
Date and string formatting: Some fields like Date and AQI Value required precise parsing and type handling to avoid app crashes.
Deployment time constraints: Since this was a time-limited hackathon, we had to prioritize core functionality over advanced features.
Log in or sign up for Devpost to join the conversation.