Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

panthers Maria Fernanda #25

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

panthers Maria Fernanda #25

wants to merge 1 commit into from

Conversation

Mfpr603
Copy link

@Mfpr603 Mfpr603 commented Jan 3, 2023

No description provided.

Copy link
Contributor

@ameerrah9 ameerrah9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For commits, make sure to commit more often and make your commits more descriptive! Instead of taking about what wave was completed, include details about what functionality was added.

Comment on lines +28 to +39
<section class="sky_section">
<h2>Sky selection</h2>

<select id="selectSky">
<option >Sunny</option>
<option >Cloudy</option>
<option >Rainy</option>
<option >Snowy</option>
</select>


</section>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Be careful with indentation here



<div >
<h2 id="city-display">✨Atlanta✨</h2>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Avoid using hard-coded values in our markup

<button id="decrease_temperature">↓</button>
<button type="button" id="realtime-temp">Get Realtime Temperature</button>
</div>
<span id="temperatureDisplay" class="orange">72</span>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rather than hard-coding a value for UI elements (which just happens to match the initial value backing the control), I like to leave the initial markup blank, and update the UI on first load from the initial backing values in the JS code. So like here, leave off the 72, then when the document loads, update the UI in the JS to show the initial temperature value. This would protect us from changing the default starting JS value, but having it be out of sync with what the UI is showing.

I would tend to do this for any of the configurable elements (temperature, ground, sky, city).

Comment on lines +1 to +17
.weather-header {
display: flex;
flex-direction: column;
grid-column: auto / span 2;
color: white;

}
body {
background-color: rgb(136, 195, 241);
}

.orange {
color: rgb(255, 145, 49);
}
#temperatureDisplay{
display: flex;
font-size: xx-large;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work with the styling, though I think you could have pushed yourself to add some CSS grid styling

@@ -0,0 +1,148 @@
const getTempFromCoordinates = () => {
const cityInput = document.getElementById('city-display').textContent;
console.log(cityInput);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remember to remove debugging log statements

Comment on lines +4 to +39
axios
.get('http://127.0.0.1:5000/location', {
params: {
q: cityInput,
},
})
.then((response) => {
console.log('success', response);
const return_obj = {
lat: response.data[0].lat,
lon: response.data[0].lon,
};
axios
.get('http://127.0.0.1:5000/weather', {
params: {
lat: return_obj['lat'],
lon: return_obj['lon'],
},
})
.then((weatherResponse) => {
console.log(weatherResponse);
const cityTemp = weatherResponse.data['main']['temp'];
let tempDisplay = document.getElementById('temperatureDisplay');
console.log(cityTemp);
const tempFahrenheit =
(parseInt(cityTemp) - parseInt(273.15)) * 1.8 + 32;
console.log(tempFahrenheit);
tempDisplay.textContent = tempFahrenheit;

changeTempColor(tempDisplay);
const garden = gardenChange(tempDisplay);

const gardenContainer = document.getElementById('garden_section');
gardenContainer.textContent = garden;
});
})
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider breaking this function up a bit. It's taking on a lot responsibilty. Whenever we see a function that is more than 10 lines long we should consider seprating concerns. This is completely preferential but just a note. More on this here:

https://dmitripavlutin.com/the-art-of-writing-small-and-plain-functions/

https://medium.com/@janakachathuranga/coding-best-practices-javascript-write-small-functions-7d2567bd6328

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's an issue with wave 04 (calling the apis), the requirements specify that your code should get the weather of the currently displayed city name & when the   element is clicked updates and displays the realtime temperature of the currently displayed city name. Currently your code is not providing the updated temperature.

const inputCity = document.getElementById('city-name-input').value;
const displayCityContainer = document.getElementById('city-display');

displayCityContainer.textContent = '✨ ' + inputCity + ' ✨';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You could also use concatentation here like so:

  displayCityContainer.textContent = `✨ ${inputCity} ✨`;

Comment on lines +127 to +146
const registerEventHandlers = () => {
const increaseTempButton = document.getElementById('increase_temperature');
increaseTempButton.addEventListener('click', increaseTemp);

const decreaseTempButton = document.getElementById('decrease_temperature');
decreaseTempButton.addEventListener('click', decreaseTemp);

const cityInputForm = document.getElementById('city-name-input');
cityInputForm.addEventListener('input', displayCityName);

updateSky();
const skySelect = document.getElementById('selectSky');
skySelect.addEventListener('change', updateSky);

const resetButton = document.getElementById('reset-city-name-2');
resetButton.addEventListener('click', resetCityName);

const realtimeTempButton = document.getElementById('realtime-temp');
realtimeTempButton.addEventListener('click', getTempFromCoordinates);
};
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏾

Copy link
Contributor

@ameerrah9 ameerrah9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work on this project Maria! The code you wrote for wave 4 is really close, I've put in a suggested solution, but I didn't have time to test it so it may need some adjustments. The code in this project is really clean and easy to read. This project is yellow 🟡

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants