{"id":27719439,"url":"https://github.com/vsingh55/weather-dashboard","last_synced_at":"2025-10-07T08:07:37.784Z","repository":{"id":288550005,"uuid":"968472501","full_name":"vsingh55/Weather-Dashboard","owner":"vsingh55","description":"A Python-based solution that fetches real-time weather data from the OpenWeather API and stores it in AWS S3 for analysis and visualization.","archived":false,"fork":false,"pushed_at":"2025-04-18T06:42:21.000Z","size":654,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-27T07:49:13.098Z","etag":null,"topics":["api","aws-s3","cloud","devops","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vsingh55.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-18T06:25:27.000Z","updated_at":"2025-04-23T20:26:49.000Z","dependencies_parsed_at":"2025-04-18T19:54:23.781Z","dependency_job_id":null,"html_url":"https://github.com/vsingh55/Weather-Dashboard","commit_stats":null,"previous_names":["vsingh55/weather-dashboard"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vsingh55/Weather-Dashboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsingh55%2FWeather-Dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsingh55%2FWeather-Dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsingh55%2FWeather-Dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsingh55%2FWeather-Dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vsingh55","download_url":"https://codeload.github.com/vsingh55/Weather-Dashboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsingh55%2FWeather-Dashboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278740839,"owners_count":26037481,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","aws-s3","cloud","devops","python"],"created_at":"2025-04-27T07:49:11.848Z","updated_at":"2025-10-07T08:07:37.743Z","avatar_url":"https://github.com/vsingh55.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Weather Data Collection and Storage\n\u003cdetails\u003e\n\u003csummary\u003e📑 Quick Navigation\u003c/summary\u003e\n\n- [Weather Data Collection and Storage](#weather-data-collection-and-storage)\n  - [Project Overview](#project-overview)\n    - [Objective](#objective)\n    - [Features](#features)\n  - [Architecture](#architecture)\n    - [System Design](#system-design)\n    - [Workflow](#workflow)\n  - [Technologies Used](#technologies-used)\n  - [Project Structure](#project-structure)\n  - [Prerequisites](#prerequisites)\n    - [System Requirements](#system-requirements)\n    - [Required Credentials](#required-credentials)\n  - [How to Setup](#how-to-setup)\n    - [Step 1: Clone the Repository](#step-1-clone-the-repository)\n    - [Step 2: Install Dependencies](#step-2-install-dependencies)\n    - [Step 3: Set Up Environment Variables](#step-3-set-up-environment-variables)\n  - [Configuration](#configuration)\n  - [Execution](#execution)\n    - [Expected Output](#expected-output)\n    - [Screenshots](#screenshots)\n  - [Future Development](#future-development)\n  - [Blog🔗](#blog)\n  - [Contributing](#contributing)\n  - [License](#license)\n\n\u003c/details\u003e\n\n## Project Overview\n![](/Assests/thumbnail.png)\n\n### Objective\nThe purpose of this project is to fetch weather data for selected cities using the OpenWeather API and store the data in an AWS S3 bucket for further analysis or integration with downstream systems.\n\n### Features\n- Fetch real-time weather data for multiple cities.\n- Extract relevant data fields such as city name, temperature, and humidity.\n- Save the weather data locally in JSON format.\n- Upload the saved data to an AWS S3 bucket.\n\n## Architecture\n![architechturedia](/Assests/architechture.png)\n\n### System Design\n\n1. **Data Source**: OpenWeather API for weather information.\n2. **Processing Script**: Python script for data fetching, processing, and uploading.\n3. **Storage**: AWS S3 bucket for centralized data storage.\n\n### Workflow\n\n1. The Python script fetches data from OpenWeather API.\n2. Relevant data fields are extracted and saved locally as JSON files.\n3. The JSON files are uploaded to an AWS S3 bucket.\n\n## Technologies Used\n| Category        | Technologies              |\n|-----------------|---------------------------|\n| Programming     | Python                    |\n| Cloud Storage   | AWS S3                    |\n| Environment Mgmt| Python dotenv             |\n| API Integration | OpenWeather API           |\n\n## Project Structure\n\n```\nWeather Dashboard/\n├── Assests/         # Directory for imgages\n├──src\n   └── weather_dashboard.py     # Main script to fetch, process and save data\n├── weather_data/         # Directory for locally saved weather data\n├── requirements.txt      # Python dependencies\n└──README.md             # Project documentation\n```\n\n## Prerequisites\n\n### System Requirements\n- Python 3.8 or above\n- AWS account with appropriate permissions for S3 operations\n\n### Required Credentials\n- [OpenWeather API Key](https://openweathermap.org/api)\n- AWS Access Key ID and Secret Access Key\n\n## How to Setup\n\n### Step 1: Clone the Repository\n```bash\ngit clone https://github.com/vsingh55/AWS-NBA-DevOpsAllStars-Challenge-2025.git\ncd AWS-NBA-DevOpsAllStars-Challenge-2025/D1-Weather-Dashboard\n```\n\n### Step 2: Install Dependencies\n```bash\npip install -r requirements.txt\n```\n\n### Step 3: Set Up Environment Variables\nCreate a `.env` file in the root directory with the following content:\n```env\nS3_BUCKET_NAME=your-s3-bucket-name\nAPI_KEY=your-openweather-api-key\n```\n\n## Configuration\n- Replace `your-s3-bucket-name` with the name of the S3 bucket.\n- Add your OpenWeather API Key to `API_KEY`.\n- Configure AWS credentials using the AWS CLI:\n  ``` aws configure ```\n\n## Execution\nRun the main script to fetch and upload data:\n```bash\npython weather_dashboard.py\n```\n\n### Expected Output\n1. Local JSON files saved in the `weather_data/` directory.\n2. Weather data uploaded to the S3 bucket under the `weather_data/` folder.\n\n### Screenshots\n![alt text](/Assests/uploadedDataS3.png)\n\n## Future Development\n1. Build a dashboard using AWS QuickSight or Grafana for data visualization.\n2. Automate the script execution with a scheduler such as AWS Lambda or cron jobs.\n3. Add additional error handling and logging mechanisms.\n4. Implement CI/CD pipelines for streamlined deployment and testing.\n\n## Blog🔗\n[To visit blog click here](https://blogs.vijaysingh.cloud/weather-dashboard)\n\n\n## Contributing\n- Contributions are welcome. Please open an issue or submit a pull request for suggestions or improvements.\n\n## License\nThis project is licensed under the MIT License. See the LICENSE file for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsingh55%2Fweather-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvsingh55%2Fweather-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsingh55%2Fweather-dashboard/lists"}