African city weather forecast app using the 7Timer! API, CSV location loading, timezone management, and geolocation support.
# π Weather' Africa
An interactive web application that displays 7-day weather forecasts for African cities. Built with HTML, CSS, and JavaScript, it uses the 7Timer! API and includes CSV-based city selection, autocomplete, timezone-based clocks, and geolocation support.
---
## π Project Overview
Weather' Africa is a weather web app focused on African cities. It allows users to:
- Select a city from a dynamic dropdown,
- Search with instant suggestions,
- View 7-day forecasts with icons,
- See the local time of each city,
- Or detect their current location for automatic weather display.
Itβs responsive, fast, and fully client-side.
---
## π Features
- πΊοΈ Dynamic city list loaded from CSV
- π Autocomplete city search
- π 7-day weather forecast via the 7Timer! API
- π Live local time based on timezone
- π Weather based on your current location
- π± Responsive layout (mobile & desktop)
---
## π§° Technologies Used
- HTML5, CSS3, Vanilla JavaScript
- 7Timer! Weather API
- PapaParse.js for parsing CSV files
- Geolocation API
- DOM manipulation & async JS (fetch, event handling)
---
## π§ Approach & Solution
- The city list is parsed from a CSV using PapaParse and displayed in a ` ` dropdown.
- Autocomplete suggestions come from a separate search box linked to the same city list.
- Selecting a city (or using geolocation) triggers an API call to 7Timer! with latitude/longitude.
- The app displays weather cards for the next 7 days with icons, temperatures, and weather types.
- A live digital clock is shown based on the city's timezone using `toLocaleString()`.
This modular architecture makes it easy to maintain, scale, and reuse in other contexts.
---
## πΌοΈ Project Structure
π css/
βββ master.css
π js/
βββ main.js
π images/
βββ [weather icons like clear.png, cloudy.png, etc.]
π index.html
π city_coordinates.csv
π README.md
---
π Live Demo
african-weather-forecast.neβ¦
---
## βοΈ Installation
1. Clone the repository
```bash
git clone htt β¦