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

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.

How it works?

Well, it uses, as I mentioned before, the Python framework Textual to create a simple and interactive dashboard. It also uses the NASA API to get datas about NEOs with an httpx client request.

Features

When you run the dashboard, 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

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

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

Software structure

The main.py handles the interaction between onboard.py (that gets the currents 5-days window and the API key -after checking if it's present in the .env file-), and the tui_dashboard.py(that creates the dashboard and displays the datas). This one uses a function from client.py to get the datas from the API. Particularly, this request function has a sub-function to create a object for each NEO, using a different class for the two different metric sistems (imperial and metric). The tcss directory contains the Textual TCSS files to give the dashboard a better look. The .env file is autocreated at the first start of the software. The assets directory contains the logo and the gif preview of the README file.

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, to Will McGugan for Rich and the Textual amazing framework and to ProjectDiscovery for httpx. Also, thanks to all the people that will contribute to this project in the future.

Metadata

Release files for spaceboard 1.1.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.1.8
File Size Uploaded
spaceboard-1.1.8.tar.gz 13.8 kB Details

Built distribution (wheel)

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

Total release size: 26.5 kB

Release files / spaceboard-1.1.8.tar.gz

Download URL spaceboard-1.1.8.tar.gz
Size 13.8 kB
Tags Source
SHA-256 checksum
How to use checksums
964a85f60173859f09e0a4832f728a71f2e7fa2f67ee311730b29526ae534ac1
BLAKE2b-256 checksum
How to use checksums
084ef62545af00f82e744b356c1a934ee5a2f7c7334e721f813c2afdc2b1e03f
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.1.8-py3-none-any.whl

Download URL spaceboard-1.1.8-py3-none-any.whl
Size 12.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
372591be9709307bce4c49957e19bc3ec6d23293dc87efd128bda83af60510ec
BLAKE2b-256 checksum
How to use checksums
3b3c79d329d7be54328001c0dc5f91b26fa94f6bd31db798ae2f19c6be26de02
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

1.2.8

2 release files

This release

1.1.8 This release

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