Hi! I think this is a great idea!
When starting out in new things, one of the best meta-skills is being able to tailor project ideas and expectations to something that sustains motivation and leads to successes. It can be tricky to split a project into small enough pieces that each is achievable in an appropriate amount of time, while still being interesting enough to keep motivation when you hit the inevitable snags. When doing something like programming, there can be a large amount of “setup” to get started for new folks, and it can be a slog just get set up!
First, some questions:
Do you want to make your own graph of your own design, or tell the Beeminder API to make a graph and download and show that?
Do you already have a Beeminder goal that has your reading data?
If you want to make your own graph, do you have any ideas of how you want it to look? I would recommend drawing something out on paper even.
In terms of things to look at on the Python side…
I don’t know where you’re starting from or what you already know, but I suggest a few things to Python beginners. There are a lot of Python resources, and almost all of them are “fine” but some are a step above. The Hitchhiker’s Guide to Python is pretty great (https://docs.python-guide.org/). It has a solid guide on getting a great beginner’s development environment set up, that will help you avoid some snags, but also let you grow into something bigger as you need it. Second, whenever I run into Real Python, I am impressed. I have only read their articles, because I am old and don’t watch videos for most things, but they also have courses and videos and things. Third, you should be using a virtual environment for your Python stuff, unless you have a clear reason not to The number one cause of headache when I am helping junior folks with Python, they have a slew of different Python things all installed globally on their computer and everything acts haunted.
the Requests library (https://requests.readthedocs.io/en/master/) is a good place to start for doing standard web API stuff unless there’s a good Python library already for the thing you’re doing. There are at least a few Python wrappers for Beeminder, like @narthur’s pyminder. https://github.com/narthur/pyminder I can’t suggest any particular wrapper because I simply haven’t looked into them more than a few minutes, but @narthur’s a good person and active on this forum. I suggest starting with pyminder and seeing where it gets you.
Graphing in Python. There are many, many, many ways to graph things in Python, and many of them are even good The “old faithful” library for graphing things in Python is matplotlib, and it’s even what Beeminder used to use! RealPython has an article on it aimed at “beginners to intermediate” so maybe take a look at https://realpython.com/python-matplotlib-guide/. Seaborn is a wrapper I’ve used once or twice around matplotlib. I think Plotly and Bokeh are also decent, but I have little experience with Plotly and none with Bokeh.
In terms of planning, I would break things down, and I would also start with independently getting data points from Beeminder, and being able to show made-up datapoints on your graph. I would then combine the two, and then add the road, if that’s something you want to show on your graph too.
Beeminder’s API is decent, and its documentation is here (https://api.beeminder.com/#beeminder-api-reference).