MLH Prep Project for Pod 22.JUL.PREP.3

Overview

Weather Application

This is a React Application, which fetches data from Open Weather API & Open AI API then displays it on UI. The displayed data is related to the weather conditions, activities available, sunrise-sunset times, suggestions, AQI & daily forecasts of the selected city (or coordinates)

Live version

Live demo version is available here

Built With

Authors

Author Country Github link Avatar
A.S.L. Manasa India --
Chidera Innocent Nigeria codewarsfx
Di Wu USA dw2761
Elmar Abdulkarimov Azerbaijan elmar8287
Himanshu Thakur India himanshu-thakur-7
Indira Sowy Canada indywip
Julian Willis USA gibbonhug
Liubov Rukhlina Hungary LiubovRukhlina
Sadiq Babalola Nigeria Sadiq-b
Sanjay India --
Saswat Samal India saswatsam786
Shehab Adel Egypt shehabadel
Somaditya Singh India somadisingh
Vy Nguyen Canada thucvy

🤝 Contributing

Contributions, issues, and feature requests are welcome!

Feel free to check the issues page.

Show your support

Give a ⭐️ if you like this project!

Comments
  • Forecast for 7 days using own daily

    Forecast for 7 days using own daily "widget"

    Used another approach to the daily forecast

    In this PR we create the one-day card template and make it dynamic for 7 days of visualization

    • We used 16 days Forecast API and made logic to use only data for a week (https://openweathermap.org/forecast16)
    opened by elmar8287 11
  • Geolocation detect

    Geolocation detect

    This is to implement issue #3

    Initially, the city displayed will be "New York". User can either input the desired city into the input box or select the option 'Use current location' to get weather for their current location.

    What has been implemented so far:

    1. Added a link for user to click 'Use Current Location' image

    2. Once the link is clicked, there will be a prompt for user to select either they want to "Allow" or "Block" permission to access their location image

    3. If user select "Block", an alert will be displayed saying that "User deny Geolocation" and the city remains as the previous city image

    4. If user select "Allow", the current location of user will be detected and sent to OpenWeather API to display its weather. Current city value in the input box will be changed to an empty string image

    5. User can input another city into the input box to see a different city, then can always click the link "Use Current Location" to see back weather for current location image

    opened by thucvy 11
  • #10 use pod location

    #10 use pod location

    Implemented Issue #10

    Source a list of locations from Pod members, and allow the user to choose one of these locations to find out the weather.
    
    For example, it could be a drop down menu with Cities.
    
    Pod members can submit any location, it doesn't have to be personal!
    

    Added a dropdown menu containing members' names and by selecting one from the dropdown, it fetches the weather of the pod's member's city.

    opened by shehabadel 10
  • Daily forecast section

    Daily forecast section

    In this PR was done:

    • Fixed the folder structure. Cleared the unused files
    • Created an API key and implement it in the project
    • Created the Forecast component
    • Investigated the API documentation and set up the Daily Forecast feature
    • Implemented mentioned feature into the Forecast component
    opened by elmar8287 10
  • Customized suggestions based on the weather 🛰️ of a place.

    Customized suggestions based on the weather 🛰️ of a place.

    When Users search for a place, they will also get suggestions like famous restaurants🍲, places of interest🏞️ or activities🏕️ which are prevalent during that particular season.

    For example:

    • If the wind 🍃 speed of your location are below a certain threshold, you could go out to play badminton 🏸
    • If you searched New York, and its summer ☀️ there, you will get activity suggestions and places of interest based on what's best in the summers 🌊
    • If you search Japan or any city there, and its winter season ⛄ there, you will be suggested places with hot springs ♨️ to beat the winter chills 🥶
    enhancement 
    opened by somadisingh 9
  • Add Air Quality Index (AQI) and description to indicate pollution level

    Add Air Quality Index (AQI) and description to indicate pollution level

    This PR is to add the feature to indicate Air Quality Index (AQI) level and description as well as health recommendations to users based on air quality. There're different levels of air quality which was described in Issue #39 . All these levels are integrated accordingly to the app.

    Examples:

    1. Currently in New York, air quality index is = 13 --> Air Quality is Good (level 1) image

    2. Currently in Toronto, air quality index is = 61 --> Air Quality is Moderate (level 2) image

    What has been done:

    1. npm package react-circular-progressbar has been installed to show the AQI (airQualityIndex)
    2. state variables for airQualityIndex, airQualityValue, airQualityDesc, barColor were created to show AQI value, AQI description, health recommendations, and set color for the circular bar accordingly
    3. fetch API to get AQI value every time page rendered and either input value or longitude or latitude is change
    4. create and add the AQIPollution component to add to the results box
    5. adjust some styling for the result box and the AQI display part
    opened by thucvy 7
  • Made the website responsive

    Made the website responsive

    Fixed the responsiveness of all components on the webpage. Tested across the following breakpoints:

    • 320px  - 480px -> Mobile devices
    • 481px  -768px -> iPads, Tablets
    • 769px  - 1024px -> Small screens, Old laptops
    • 1025px -1200px ->Desktops & New Laptops
    • 1201px - 1600px  ->  Large screens, TV
    opened by somadisingh 7
  • Use a Pod Member's location

    Use a Pod Member's location

    Source a list of locations from Pod members, and allow the user to choose one of these locations to find out the weather.

    For example, it could be a drop down menu with Cities.

    Pod members can submit any location, it doesn't have to be personal!

    opened by awilkescom 6
  • Development

    Development

    I worked on the result card ..making information pop out more and fixing the issue with its responsivenes Screenshot 2022-07-26 at 15 54 36

    Screenshot 2022-07-26 at 15 54 42

    The functionality of the bookmark icon hasn't been added yet.Right now the expected behaviour is a change in color when clicked

    I also made the font family of paragraphs to be roboto while that of headings should be open sans..Hence to distinct font for the project

    opened by codewarsfx 5
  • Changed background Image and Weather Icon based on Location

    Changed background Image and Weather Icon based on Location

    Alongside @gibbonhug we did the following:

    • Implemented a function that returns an object contains the url of the background image, and the weather Icon. All of them are determined related to the current weather.
    • Created two hooks to set the background image and weather Icon
    • Installed react-helmet in order to update the body in the head tag using style tag
    • Pulled Sanjay's changes, and fixed conflicts

    There's an issue that requires some attention image

    I guess we should give the map a background color like white or something, instead of being transparent. In addition whenever I move my cursor away from the map it'll set the location to "" which will set the card to "Loading", and might do something like breaks or delays (you can check it out)

    Please check it out @gibbonhug @awilkescom @sadiq-b @SanjaySinghRajpoot

    opened by shehabadel 5
  • Add a toggle to switch between Celcius/Fahrenheit

    Add a toggle to switch between Celcius/Fahrenheit

    This PR addresses Issue #8.

    pr

    I created state for the current unit system (metric(C) or imperial(F)). Changing the state with the toggle does not affect the unit in the API request (which is always in metric/Celcius), because I did not want to make calls each time a user used the toggle. Switching from C to F just performs the C to F conversion equation on the existing temperature data.

    The temperature data that the API fetches in Celcius is retrieved with 2 decimal places. To display it with 2 decimals in Fahrenheit, I created a utility function to truncate decimals, which I added to the existing Utilities folder.

    The toggle (UnitToggle) itself is its own component, with a folder for its JS and its styling, to follow the existing folder structure. When clicked, the toggle switches between two MLH brand colors I set as CSS variables.

    I had difficulties integrating this with the forecast widget in https://github.com/MLH-Fellowship/prep-project-22.JUL.PREP.3/issues/1. I tried passing the current unit down as a prop but could not do this. @dw2761 gave me the go-ahead to make this PR without the widget integration.

    opened by gibbonhug 4
  • Activities suggestor not working

    Activities suggestor not working

    In case the activities suggestions doesn't update or show up when a city is selected from any source, odds are high that the OPEN AI API KEY has expired. In case this happens, go to https://openai.com/api/ and create an account. Then click on your account icon on the top right and select the "view API keys" option. Copy your API key from there and add it to the .env file in your project as: REACT_APP_OPENAI_API_KEY= "your api key here" That should make the activities suggestor work again. Also if any good samaritan who's reading this, it would be of great help if you can provide your API key to @awilkescom so that he can update the netlify env variable, since it seems that my key appears to have expired.

    opened by somadisingh 0
  • Add button to show/hide globe

    Add button to show/hide globe

    This PR addresses Issue #95. btn

    I added a button that updates a boolean state to show/hide the globe. I put it next to the location button so it is easily visible. I made the globe hidden by default because the weather app was crashing for me otherwise.

    opened by gibbonhug 2
  • Add option to hide globe

    Add option to hide globe

    The globe weather map we have is a little resource intensive and can crash browsers on older computers (such as mine). By letting the user decide whether to show the globe or not, more people will be able to use our site.

    enhancement 
    opened by gibbonhug 0
  • Unit test for the weather app

    Unit test for the weather app

    The aim of this issue is to ensure the code written for different parts of the application gives the expected results. I will be using testing libraries like jest and reacting testing libraries.

    opened by sadiq-b 0
  • Bookmark History Issue and Result card Ui improvement

    Bookmark History Issue and Result card Ui improvement

    Bookmark

    This provides a handy way to get all locations weather data you have saved without having to search for them again.

    You can save any location of interest as a bookmark and continue looking at the weather condition of other places.

    The history data also persists between window closure ...so when you open up the application again you still have the weather data of the previously saved places.

    Before Click

    Screenshot 2022-07-27 at 21 45 01

    after Click

    Screenshot 2022-07-27 at 21 45 10

    suggested Improvements to this PR

    1. Live update of the weather data in the bookmarks card using web sockets
    2. Fetch latest temperature data of the location when the component mounts. right now it just persists the same saved data

    Improved the Result Card UI

    made some changes to the result card Ui to make it look better and responsive too

    Before Change:

    Screenshot 2022-07-27 at 21 43 33

    After Change

    Screenshot 2022-07-27 at 21 44 51 enhancement 
    opened by codewarsfx 4
Owner
MLH Fellowship
An internship alternative for software engineers, by Major League Hacking
MLH Fellowship
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Full-stack-todo-rust-course - we are building this out now in prep for the real course

full-stack-todo-rust-course wip - we are building this out now in prep for the real course Plan Come up with the requirements Create user stories Desi

Brooks Builds 89 Jan 2, 2023
This web application retrieves real live data from the Financial modeling prep API

This web application retrieves real live data from the Financial modeling prep API. It provides financial information about companies listed on Nasdaq 100 and Dow Jones Market indexes. All these companies are listed on the Home page. Users can filter these companies by searching for a specific company or by choosing one from the dropdown.

Sahar Abdel Samad 7 May 31, 2022
A website that will curate recently-asked interview questions from FAANG+ to help people practice & prep!

defaang.io A website that will curate recently-asked interview questions from FAANG+ to help people practice & prep! The questions will be submitted a

YK 488 Dec 12, 2022
Prep Course correspondiente al contenido previo al examen de admisión Henry Challenge

Prep Course Introducción ¡Hola! Bienvenido/a al Prep Course para la carrera de Desarrollo Web Full Stack. En este curso introductorio podrás aprender

Soy Henry 21 Nov 10, 2022
The project is a To-Do list project to help plan daily, weekly or monthly activity. I used Html, CSS and JavaScript Technology to execute the project.

<<<<<<< HEAD To Do List This project is geared towards applying acguired skills for development of my porfolio through the following practices: Create

Victor Efosa Osagie 6 Dec 19, 2022
Leader Board is a simple project based on JavaScript programing language. The purpose of this project is to work with APIs and ASYNC & AWAIT methods. I have used vanilla JavaScript with web pack to implement this project

Leader Board - JavaScript Project Table of contents Overview The challenge Screenshot Links Project Setup commands My process Built with What I learne

Mahdi Rezaei 7 Oct 21, 2022
Simple NextJS Project Template to write less boilerplate code when starting a new Next JS Project

Simple NextJS Project Template to write less boilerplate code when starting a new Next JS Project

Juan David Ramirez Mendoza 1 Feb 12, 2022
The ManageYourCompany 📈 project is a project that creates, deletes, updates companies, units and assets.

The ManageYourCompany ?? project is a project that creates, deletes, updates companies, units and assets. The rule is that every company has several units and the units have several assets, these assets are machines with several fields: Name, status, person in charge, image, among others... This is a project in order to exercise my Backend skills with NodeJs and front with react.

Bruno da Silva Leite 2 Feb 9, 2022
GitHub starter project link: https://github.com/buildspace/waveportal-starter-project

Running React on Repl.it React is a popular JavaScript library for building user interfaces. Vite is a blazing fast frontend build tool that includes

MD Rafi Uddin 0 Jun 5, 2022
Awesome Books. In this project, I built a basic website that allows users to add/remove books from a book list. This project is build with JavaScript.

Event Page Awesome Books. In this project, I built a basic website that allows users to add/remove books from a book list. Built With HTML CSS JavaScr

Miftah Amin 16 Feb 28, 2022
This is a Library project from the Odin Project. A simple book list for my programming books.

Library This is a Library project from the Odin Project. The user can add a book by providing a title and author. Also, the user can mark it if it's r

Virag Kormoczy 8 Nov 26, 2022
I built a full-stack project using Node, Express, Mongo, webRTC, socket.io, and of course React JS. This project is inspired by the awesome Clubhouse 😊

codershouse-mern - This Project is Under Development. Below are some of the implemented interface and the remaining features will be updated in future

Bishal Das 35 Nov 18, 2022
Microverse Module 02 Project: This is an educational project to make a TodoList web application, where the users can add new todo, remove todo, edit todo, mark todo as completed, and remove all completed todo. Built with Webpack

todo-list This project is about building a list of To Do tasks. Where you can save your daily activities and help in daily evaluation. Live demo you v

divine charlotte 25 Jan 3, 2023
This is a Webpack5 project skeleton for a multi-page project

?? Webpack5 project skeleton Structure project src/pages/ the directory for your html page src/styles/ for storing css and scss style files. We can ha

Intensa 2 Jun 14, 2022