Created by Irfan
Fullstack AI/ML Software Engineer Project
This repository hosts the Weather App, a robust full-stack application designed to provide real-time weather data and air quality information for any locationβusing a modern, user-friendly interface and a scalable, extensible backend.
Both Technical Assessment #1 (Core Weather App) and #2 (Advanced Features & CRUD) are fully completed and demonstrated in this project.
Built as part of an AI/ML Software Engineer technical assessment, this project demonstrates best practices in API design, user input handling, data validation, database CRUD operations, and optional integrations with third-party platforms (e.g., YouTube, Google Maps).
Key Value:
- Real-world API integration
- Clean, modular codebase
- Designed for extensibility and professional deployment
- Ready for demonstration, portfolio, or further development
-
Universal Location Input:
Search weather and air quality by city, zip code, coordinates, or landmarks. Robust validation and fuzzy matching for user convenience. -
Real-Time Weather & 5-Day Forecast:
Live data from OpenWeatherMap, including detailed weather info, icons, and at-a-glance summaries. -
Air Quality Index (AQI) Data:
Instantly retrieve current air quality information for user-selected locations, powered by OpenWeatherMap Air Pollution API. -
Geolocation Support:
Instantly fetch weather and air quality for your current positionβusing your browser/device location (with user permission). -
Comprehensive CRUD:
Save, update, view, and delete weather and air quality queries/records. All data is persisted in a robust SQLite database via SQLAlchemy ORM. -
Data Export:
Export your search history or saved records to JSON, CSV, XML, or PDF formats with one click. Great for data portability, analytics, and reporting. -
API Integrations:
- Google Maps: Visualize searched locations on the map.
- YouTube: Watch trending videos about your searched location.
- OpenWeatherMap Weather & Air Quality APIs
-
Responsive & Accessible UI:
Clean, mobile-friendly design with flexible color gradients and intuitive controls. Accessibility best practices followed. -
Error Handling:
Clear, actionable error messages for every input and API call. -
No Authentication Required:
All features are open for demonstration and review. -
Info Button:
Learn about the Product Manager Accelerator (PMA) from within the app.
- Backend: Python 3.12+, Flask, SQLAlchemy, SQLite
- Frontend: HTML5, CSS3, JavaScript (ES6+), Jinja2
- APIs: OpenWeatherMap (Weather & Air Quality), YouTube Data API, Google Maps
- Utilities: Pandas (export), FPDF (PDF export), python-dotenv (for secure API key management)
- Testing: (Add your test framework, e.g., pytest, if implemented)
- Deployment: Easily deployable on Heroku, Render, or any WSGI-compatible service
Google Location & YouTube Videos 
weather-app/ β βββ .env βββ .gitignore βββ README.md βββ requirements.txt βββ run.py βββ test.py β βββ app/ β βββ air_quality.py β βββ export.py β βββ forms.py β βββ geocode.py β βββ maps_api.py β βββ models.py β βββ routes.py β βββ utils.py β βββ weather_api.py β βββ youtube_api.py β βββ __init__.py β βββ instance/ β βββ weather_app.db β βββ static/ β βββ style.css β βββ css/ β βββ img/ β βββ js/ β βββ templates/ β βββ base.html β βββ create.html β βββ edit.html β βββ history.html β βββ index.html β βββ info.html β βββ list.html β βββ view.html β βββ weather.html β βββ __pycache__/ git clone https://github.com/yourusername/weather-app.git cd weather-apppython -m venv venv # Activate: # Windows: venv\Scripts\activate # Mac/Linux: source venv/bin/activatepip install -r requirements.txt- Copy the example file and add your API keys:
cp .env.example .env
- Get a free OpenWeatherMap API Key
- Get a YouTube Data API Key
flask run- Open http://localhost:5000 in your browser.
- Create: Save any weather or air quality search with location and date range.
- Read: Review all your saved queries and their results.
- Update: Modify existing records (location or date).
- Delete: Remove any record with one click.
- Export: Download all your data in JSON, CSV, XML, or PDF.
| Requirement | Implemented? | Notes |
|---|---|---|
| User-friendly location input | β | Supports city, zip, coords, landmarks |
| Real API weather data | β | OpenWeatherMap integration |
| Air Quality Data | β | OpenWeatherMap AQI API |
| 5-day forecast | β | Shown with icons and summary |
| Current location support | β | Uses browser geolocation |
| CRUD (Create, Read, Update, Delete) | β | All operations with validation |
| Data export (JSON, CSV, XML, PDF) | β | Multiple formats supported |
| API integration (YouTube, Maps) | β | YouTube and Google Maps |
| Info button (PMA description) | β | Linked to PMA LinkedIn |
| Error handling & validation | β | All user input & API errors handled |
| Demo video | β | Demo video link |
Embed your screencast or YouTube demo link below for reviewers and LinkedIn viewers:
πΉ Watch Demo on Vimeo
Product Manager Accelerator (PMA) is a premier training and internship platform for aspiring product managers and AI engineers.
PMA offers hands-on projects, mentorship from industry leaders, and a direct pathway to launching your PM/AI career. Learn more at pmaccelerator.io or visit their LinkedIn page.
- Author: Irfan
- Email: mohdirfanwork786@gmail.com
- LinkedIn: Mohd Irfan
- GitHub: mohdirfan-code
- Twitter/X: @Irfu6428
If you found this project useful or inspiring:
- Star this repo β
- Fork and contribute π€
Thank you so much for checking out my Weather App!




