A simple desktop GUI for the NASA Astronomy Picture of the Day (APOD) API, made with Tkinter. This is my first hobby project, and I wanted to learn how to create GUI applications where a frontend is connected to backend functionality and HTTP request handling. I started the project to challenge myself and to create something for fun.
Python 3.12 or newer is needed to run the app.
Install the project dependencies from the repository root:
pip install -r requirements.txtStart the application from the repository root:
python src/main.pyRun the unit tests:
python -m unittest discover -s testCheck that the source and tests compile:
python -m compileall -f src testRun pylint:
python -m pylint src testThe repository also includes GitHub Actions workflows for unit tests, pylint, CodeQL, and dependency review.
API key:
For optimal usage of the NASA APOD API, I recommend visiting NASA's website to generate a personal API key. If this is not of interest, NASA provides DEMO_KEY for limited use.
If you use your own API key, it will be stored locally in private/.env, which will be created during run-time. This is ignored by git and stored indefinitely unless deleted manually.
Date:
If no date is entered, the app defaults to the latest APOD date that should be available globally. Dates must use the format YYYY-MM-DD and must be no earlier than 1995-06-16.
Media:
Image APOD entries are displayed in the app. Video APOD entries can be opened in the browser.
assets/ Images and app icons
private/ Local API key storage, ignored by git
src/ Application source code
test/ Unit tests
My application retrieves content from the NASA APOD API, and rights/credits to images/text lie with NASA or the stated authors.
It is therefore only the code for the project that is licensed under me.

