Inspiration
I was inspired mainly by the fact that I don’t particularly like rain and that the weather apps sometimes lie. They say 20% chance of rain and then it does rain anyways. I figured a computer might be able to guess more accurately if given the percent chance and other variables.
What it does
It pulls data from OpenWeatherMap API such as temperature, wind speed, percent chance of precipitation, and humidity. It then feeds these variables into a neural network and outputs a result of whether it will rain along with a short description. If it is wrong, there is a form to add new training data for the neural network with the right result. Eventually the network will have enough training data to be accurate.
How I built it
I used Node.js, HTML, and CSS mainly. I coded in VS Code. I used Google a lot when trying to solve issues that came up.
Challenges I ran into
One of the biggest challenges I ran into was getting the data from Node.js, a backend, to the HTML front end. After some quick googling I found out about a thing called ejs which is a template engine that allows variables to be sent from Node.js to the front end. It took a bit to get used to but I eventually implemented this. Another challenge I ran into was the weather API returning some weird data. I solved this by changing exactly what data I pulled, going from general daily information to a little more accurate hourly information. That seemed to help solve that problem. One challenge that I did not have time to solve was allowing the location of the weather to be changed, since the API can only use latitude and longitude, which isn’t the most user friendly of inputs.
Accomplishments that I’m proud of
I’m proud of the way the front end looks and the fact that I have a neural network that can be trained on the fly. The training data doesn’t exist right now, but it is setup so that I can slowly make training data each day, eventually getting the network to a point where it will just work.
What I learned
I learned a lot about working with TensorFlow.js and neural networks in JavaScript. I also learned a lot about working with API’s, since that was something I had never really done before. The templating engine was also a new thing for me, so I ended up learning a lot about that.
What's next for Will It Rain Today?
The next things I would like to do for this project are enable switching the location of weather data somehow and add more and more training data for the neural network to get increase it’s accuracy.
Log in or sign up for Devpost to join the conversation.