Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

bundlab/weather-reporting-platform

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

5 Commits

Repository files navigation

CI Docker FastAPI PostgreSQL Nginx Python License Release Last Commit Repo Size Stars

🌦️ Weather Reporting System

A modern, full-stack Weather Reporting System built with FastAPI, PostgreSQL, and a beautiful frontend UI.
This application fetches real-time weather data, stores historical records, and provides a clean API for integration.

πŸš€ Designed & built by Abdullahi Bundi (Bundlab)


✨ Features

βœ… Real-time weather data (OpenWeather API)
βœ… City-based weather search
βœ… Weather history stored in PostgreSQL
βœ… RESTful API (FastAPI)
βœ… Modern, responsive UI
βœ… Docker & Docker Compose support
βœ… Production-ready & GitHub-ready


🧠 Tech Stack

Backend

  • FastAPI
  • Python 3.10+
  • SQLAlchemy
  • PostgreSQL
  • OpenWeather API

Frontend

  • HTML5
  • CSS3 (Modern UI)
  • JavaScript (Fetch API)

DevOps

  • Docker
  • Docker Compose

πŸ“ Project Structure

---bash weather-reporting-platform/ │── backend/ β”‚ β”œβ”€β”€ app/ β”‚ β”‚ β”œβ”€β”€ main.py β”‚ β”‚ β”œβ”€β”€ config.py β”‚ β”‚ β”œβ”€β”€ database.py β”‚ β”‚ β”œβ”€β”€ models.py β”‚ β”‚ β”œβ”€β”€ weather.py β”‚ β”œβ”€β”€ requirements.txt β”‚ └── Dockerfile β”‚ │── frontend/ β”‚ β”œβ”€β”€ index.html β”‚ β”œβ”€β”€ style.css β”‚ └── script.js β”‚ │── docker-compose.yml │── README.md │── .gitignore


πŸ”‘ API Overview

Method Endpoint Description
GET /weather/{city} Fetch & store real-time weather

πŸ“˜ Interactive Docs available at:

http://localhost:8000/docs


🐳 Run with Docker (Recommended)

docker-compose up --build

βœ… Backend runs on:

http://localhost:8000

βœ… Frontend:

Open frontend/index.html in your browser

πŸ–₯️ Run Without Docker (Optional)

Backend cd backend pip install -r requirements.txt uvicorn app.main:app --reload

βš™οΈ Installation & Setup

1️⃣ Clone Repository

git clone https://github.com/bundlab/weather-reporting-system.git
cd weather-reporting-system
2️⃣ Add OpenWeather API Key
Edit docker-compose.yml:
OPENWEATHER_API_KEY: your_api_key_here
Get your API key from:
πŸ‘‰ https://openweathermap.org/api

About

A Production-Ready Weather Reporting System built with FastAPI, PostgreSQL, Docker, and Nginx. It provides real-time weather data, persistent storage, and a scalable containerized architecture ready for cloud deployment.

Topics

Resources

Stars

Watchers

Forks

Packages

Contributors

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /