code-chaser / ms-weather-forecasting-tool

Repository from Github https://github.comcode-chaser/ms-weather-forecasting-toolRepository from Github https://github.comcode-chaser/ms-weather-forecasting-tool

weather-forecasting-tool   Generic badge License: MIT Generic badge Forks: Count

Introduction

A simple command line tool to get weather forecast for a given city. Made using object-oriented programming in Python, that shows current weather and weather forecast for today, tomorrow and next 5 days.


Check Out:

  1. Demo Video
  2. Instructions
  3. Architecture Diagrams
  4. Github Copilot Usecases
  5. Tech Stack
  6. Team

Demo Video

(click to expand)
Weather-Forecasting-Tool.mov

Instructions

Set-Up Instructions

  • Install the prerequisites (links attached):
  • Clone the repository:
      git clone https://github.com/Fastest-Coder-First/ms-weather-forecasting-tool.git
    
  • Install dependencies:
      cd ~/<path-to-the-root-folder-of-repository>
      pip install -r requirements.txt
  • For using API, you need the API key.
    • Sign up on OpenWeather to get your private API key.

    • Copy the default API key from the "API keys" tab.

    • Create ./secrets.ini

      cd ~/<path-to-the-root-folder-of-repository>
      touch secrets.ini
    • Open the ./secrets.ini file in your preferred editor:
      vim secrets.ini
    • Add the following text into the file (replace <YOUR-OPENWEATHER-API-KEY> with your own API Key):
      [openweather]
      api_key=<YOUR-OPENWEATHER-API-KEY>

Execution Instructions

  • Go to the root folder of cloned repository:
      cd ~/<path-to-the-root-folder-of-repository>
  • Run ./main.py
      python3 main.py

Architecture Diagrams

Class Design

(click to expand)

uml

Workflow Diagram

(click to expand)

workflow diagram



GitHub Copilot use cases

  • Around 80% of the code was generated by GitHub Copilot only.
  • Specific places where we used co-pilot
    • To generate the base class structure
    • To write getter and setter methods
    • To design the menu for CLI
    • For comments
    • Documentation Stuff
    • To write the variable and method names following naming conventions
    • Generating docstrings
    • Error Handling

We and Copilot in the field

(click to expand)
Writing.getter.and.setter.methods.mov
Designing.the.menu.mov

So, just like that, GitHub Copilot helped us accelerate our coding part and helped us complete in time. Be it writing docstrings, handling errors or anyhing, it'll generate the code for you just the way you like it, by reading your code files themselves.


I've been using GitHub Copilot since its launch. I was really excited and curious when it was announced (back in 2021). After the launch, it has been an inseparable part of my coding journey. I just love it! It's just... (no words!). Thanks, GitHub!


Other GitHub Uses :octocat:

  • First and foremost, easy collaboration πŸ€“

  • GitHub GUI (Github Desktop)

  • GitHub teams

  • We have done most of the git operations on GitHub Desktop - the best GUI for Git:

    • git clone
    • git commit
    • git branch
    • git push
    • git pull
  • and some of them on GitHub web-app, like:

    • making PR's
    • merging PR's
    • resolving conflicts
    • merging PR's
  • Some Miscellaneous:

    • GitHub Sponsors
    • Branch Protection Rules

PS: Now this upgraded GitHub web and desktop UI is so much better, that even after being developers, we wanted to try using the GitHub web and desktop versions instead of command line for git operations. And it was really convenient. Kudos to GitHub!


Tech Stack

  • Python

Dependencies


Made with 🀍 by:


Hope you like it!


About

License:MIT License


Languages

Language:Python 100.0%