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

Weather Report #76

Open
NatVIII opened this issue Apr 14, 2024 · 14 comments
Open

Weather Report #76

NatVIII opened this issue Apr 14, 2024 · 14 comments

Comments

@NatVIII
Copy link
Owner

NatVIII commented Apr 14, 2024

Is your feature request related to a problem? Please describe.
rva.rip is great for showing events, however, it can easily show just one more piece of information that could make it people's instant destination for information in RVA. It could also display the weather for today, and the next three days after that.

Describe the solution you'd like
Display the temperature, in Fahrenheit, for today, and the next two days after, along with a small icon showing the state of the weather for the day in the style of the rest of the website. Display it in the top of the day's display, next to where the date is shown. If the temperature is clicked it should link to Accuweather or whatever API source that the weather is coming from for a more detailed view.

@NatVIII
Copy link
Owner Author

NatVIII commented Apr 14, 2024

In addition, it should be enabled or disabled in the .env, along with the API key for the weather provider and location (which will be Richmond for this but in other environments will be whatever city).

@Inglonias
Copy link

A quick Google search shows that https://www.weatherapi.com/ provides most, but not all of the desires features for free. The big missing feature is a link to a more detailed forecast.

The accuweather API does have a free plan, but that plan is rate limited to fifty calls a day. I would suggest if a developer goes that route, they hit the API every hour and cache the results.

@Inglonias
Copy link

Inglonias commented Jul 1, 2024

I'm planning to try to tackle this. Current plan is to use the accuweather API and cap it at one request per hour, with the widget refreshing once the next person visits the page after that timer is up.

@NatVIII
Copy link
Owner Author

NatVIII commented Jul 1, 2024

This would be so awesome! Thank you so much @Inglonias

Edit: Feel free to reach out if you need any help getting the dev environment set up or how the systems connect to each other

@Inglonias
Copy link

Inglonias commented Jul 2, 2024

Worth mentioning that AccuWeather has branding requirements - This may or may not be acceptable to you:

BRANDING REQUIREMENTS: You are required to display proper attribution when using AccuWeather APIs. Please include the AccuWeather logo, linked to our website (http://www.accuweather.com/) in clear view on your app or product. AccuWeather logo with linking must appear on all pages/screens where AccuWeather content appears, as stated in the Terms of Use.

The dropbox link doesn't work, but getting a png of their logo was dead simple anyhow.

@NatVIII
Copy link
Owner Author

NatVIII commented Jul 3, 2024

Good eye @Inglonias ! I totally would have missed that. That sounds amenable, our emote system is already working so we can simply add an attribution towards the bottom of the page as non-intrusively as possible. Feel free to continue cracking away, I can try and pitch in if you need any help ❤️

@Inglonias
Copy link

Using Accuweather is probably not going to fly. Based on what I'm seeing, Accuweather limits you to fifty calls a day without paying them. My plan was to store that data for half an hour tops on the server itself and retrieve it when necessary. My research shows that the best way to store data like that is in a database. This application does have support for a prisma database, but I don't think you're using that functionality, and I don't want to force you into setting all that up just for little ol' me. I wouldn't want to do it.

https://www.weatherapi.com/ should be simpler all around - We can call that API up to a million times a month for free. You're the server admin, so you'd be able to tell me if you're getting more than a million hits a month, but my guess is that barring a DDOS attack, you're not. The population of Richmond is ~250k, and if a significant portion of the city uses this website, then we might need to upgrade switch the weather app off, but I don't think that's happening.

We would lose a built-in link to a more detailed forecast, but that's easy to work around - just post a link to the forecast on accuweather's website below the widget and make a note that the data sources aren't the same.

@NatVIII
Copy link
Owner Author

NatVIII commented Jul 5, 2024

Actually @Inglonias I failed to mention this before, but the caching system already only really pulls new information every 30 minutes. Sure we could be pushing it slightly, but, if accuweather's API allows 50 pulls a day we'd totally be within parameters for the free plan. If it's not hard to implement, I'm cool with it!

@Inglonias
Copy link

If this function is sufficient for caching, then I'll use it for accuweather calls. I didn't see any databases for caching which is what confused me.

@Inglonias
Copy link

Took me a while to work out, but Nuxt and Nitro are bundled together, and Nitro does provide caching capabilities which you are using correctly.

@Inglonias
Copy link

I wanted to give you an update. For a variety of reasons, I have been putting this off, but I spent a good few hours working on it today. I think I have the API coming down now and all we need is to process the incoming data and make it look pretty on the page itself.

I've considered stopping after getting a strongly typed return value for others to put on the frontend, but I know that half measures are not typically appreciated in open source contributions (half-completing a feature just isn't useful).

@NatVIII
Copy link
Owner Author

NatVIII commented Aug 18, 2024

Damn bro, that's awesome work. Keep at it! Your efforts are appreciated and I can't wait to see what comes out of your labor! Regardless it's been awesome seeing you around town, I hope we get a chance to sit down, talk, and collaborate more in the future!

@NatVIII
Copy link
Owner Author

NatVIII commented Sep 9, 2024

Hey @Inglonias did you ever end up making the code for this issue public? I can't see it anywhere on your git

@Inglonias
Copy link

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

No branches or pull requests

2 participants