Skip to main content

spaceboard logo

This is a simple, open-source and self-hosted dashboard to visualize space data, particularly NEOs (Near Earth Objects) and datas related to them.

Python Nasa Hack Club Textual Rich httpx pathlib pyinstaller

Why I built this stuff?

Good question. I built it for an Hack Club x NASA event called Stardance. The goal of this project is to provide a simple and easy access to datas about space objects that will get closer to our planet.

When I had to choose a project for the event, I asked myself a question: "What's a thing about space people can be interested in, but there aren't so much things about it?". Then I thought about 2024 YR4, a NEO which, at one point, had as much as 3% of chance to hit the Earth. I remebered that this news went so much viral at the time, in 2024. So I thinked: "Maybe something can show this objects data can be a cool stuff!". So I started to work on show this data in a simple way, and now, here we are.

Software structure

spaceboard/
├── src/
│   ├── spaceboard/
│   │   ├── tcss/
│   │   │   ├── spaceboard.tcss
│   │   │   └── error_screen.tcss
│   │   ├── __init__.py
│   │   ├── main.py
│   │   ├── onboard.py
│   │   ├── client.py
│   │   └── tui_dashboard.py
│   └── assets/ # all the images and GIF for the README
├── pyproject.toml
├── README.md
├── .gitignore
├── LICENSE
└── spaceboard.spec  #for the .exe

How it works?

When you start the software for the first time, it will ask you for a NASA API key. The interface provides a full guide to get the key. When it's done, it creates a .spaceboard_env file where saves the API in your user profile directory. All this is done by onboard.py

Then, the TUI starts and makes a request on a secondary thread (so the interface doesn't freeze) to get the datas using the fetch_neo_data() function from client.py. The whole process is managed by tui_dashboard.py.

Then you can easily use your dashboard!

Features

When you run the software, you can see a simple dashboard with a list of NEOs for the current day. You can navigate through the list with the arrow keys and change units system using the c key. The tab is well-spaced and easy to read. It uses a special system of layout for keep the scrool level costant and avoid the annoying "jumping" effect when you scroll through the list.

Installation

You have 2 ways to install spaceboard: using the Python package or the Windows .exe file.

Python package

To use the software, first check to have Python 3.11+ installed on your device. If you don't have it, you can download it from the official Python website. Then, you can install the software using the following command (paste it in the terminal, in the directory you want to install the software):

pip install spaceboard

and then

spaceboard

Windows .exe file

Go to the latest release of the executable file here. Then, install the spaceboard.zip on your device, then extract the directory, open it and click on spaceboard.exe.

Antivirus Warning (False Positives): When you run the standalone .exe version for the first time, Windows Defender or other antivirus software might pop up an alert (like "Windows Protected your PC"). Don't panic! This is a 100% false positive. Because this application is compiled using PyInstaller and is not signed with an expensive Microsoft Developer Certificate, Windows blocks it by default to be safe. To run it, simply click on "More info" and then select "Run anyway". If you want to be completely sure, you can always inspect the full open-source code inside this repository or use the standard pip install spaceboard method.

At the first start, the software will give you the instructions to get your free NASA API key (don't share it with anyone!). If you want to have only a look, use "DEMO_KEY" as API key value (you'll get a really small nunber of requets per day, but it's ok to avoid the configuration of a really one). Follow them and you will finally enjoy spaceboard!

This is a preview of the dashboard in action:

Spaceboard preview

AI usage

I used AI to learn some of the skills I used in this project. No code in this software is created by AI.

Credits

Credits go to the Hack Club and NASA for the event (thanks to NASA also for the API), to Will McGugan for Rich and the Textual amazing framework, to ProjectDiscovery for httpx, to pathlib and pyinstaller teams. Also, thanks to all the people that will contribute to this project in the future.

Metadata

Release files for spaceboard 1.2.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spaceboard 1.2.8
File Size Uploaded
spaceboard-1.2.8.tar.gz 14.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spaceboard 1.2.8
File Interpreter ABI Platform
spaceboard-1.2.8-py3-none-any.whl Python 3 none any Details

Total release size: 28.1 kB

Release files / spaceboard-1.2.8.tar.gz

Download URL spaceboard-1.2.8.tar.gz
Size 14.9 kB
Tags Source
SHA-256 checksum
How to use checksums
73cf4d82c35af90ea4897e16aec7134ff78382b113b2b300ffde3f1099a8da60
BLAKE2b-256 checksum
How to use checksums
44b54d1838f022383ff9a03adc6efe7ba8e907efcf3e7f645da9ede67e7ddde9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.0

Release files / spaceboard-1.2.8-py3-none-any.whl

Download URL spaceboard-1.2.8-py3-none-any.whl
Size 13.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1cbda5354e2e7b5c5d46d3c3a28d48409e259bf124935ede72e720ec9e1f2917
BLAKE2b-256 checksum
How to use checksums
0476824cac254d3d7307d76ad30d627cf702b732081374f3cdddc062830c4e8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.0

Release history Release notifications | RSS feed

This release

1.2.8 This release

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page