I'm a big fan of minimalist software (like terminal applications and the likes). So I decided to build a Terminal application that gets the weather from Open Weather and display it in a nice UI right inside your terminal. My goal, aesthetically speaking, was to look something like calcurse.

What it does

My project prompts the user to enter a city and their API key (for Open Weather, this is a must in order for this to work), it then takes these values and sends it to Open Weather, which then generates a JSON file with all of the relevant data needed. This data is then passed into a C++ file that converts that JSON data into variables that can then be used with ncurses to display a UI.

How I built it

I used Neovim as my "IDE" to work on this project, JsonCpp, Boost.PropertyTree, and ncurses were a couple of new dependencies I had to work with.

Challenges I ran into

I'm not that experienced with bash scripting, so that was a bit of an initial hiccup. But a more critical issue was that I had a lot of trouble trying to convert/parse JSON data into variables within C++. I've tried using Boost.PropertyTree as well as JsonCpp; all but to no avail.

Accomplishments that I'm proud of


What I learned

I learned more about JSON, ncurses, curl, and C++.

What's next for TerminalWeather

I'd like to at least get this program in a stable, working state. Even if it's not the most robust application out there.

Built With

Share this project: