spaceboard 1.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: spaceboard
|
|
3
|
+
Version: 1.0.1
|
|
4
|
+
Summary: A simple, open-source and self-hosted TUI dashboard to visualize NASA Near Earth Objects (NEOs) data.
|
|
5
|
+
Author-email: Alessio Parolini <alepar.ap9@gmail.com>
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/alessioparolini2011/spaceboard
|
|
8
|
+
Keywords: space,dashboard,tui,neo
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Requires-Python: >=3.11
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Requires-Dist: httpx>=0.27.0
|
|
16
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
17
|
+
Requires-Dist: rich>=13.0.0
|
|
18
|
+
Requires-Dist: textual>=0.70.0
|
|
19
|
+
Requires-Dist: pyfiglet>=1.0.2
|
|
20
|
+
Dynamic: license-file
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
.png)
|
|
24
|
+
|
|
25
|
+
This is a simple, open-source and self-hosted dashboard to visualize space data, particularly **NEOs** (*Near Earth Objects*) and datas related to them.
|
|
26
|
+
|
|
27
|
+
  
|
|
28
|
+
  
|
|
29
|
+
|
|
30
|
+
## Why I built this stuff?
|
|
31
|
+
|
|
32
|
+
Good question. I built it for an **[Hack Club](https://hackclub.com/)** x **[NASA](https://www.nasa.gov/)** event called **[Stardance](https://stardance.hackclub.com/home)**. 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.
|
|
33
|
+
|
|
34
|
+
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.
|
|
35
|
+
|
|
36
|
+
## How it works?
|
|
37
|
+
|
|
38
|
+
Well, it uses, as I mentioned before, the Python framework **[Textual](https://textual.textualize.io/)** to create a simple and interactive dashboard. It also uses the **[NASA API](https://api.nasa.gov/)** to get datas about NEOs with an [httpx](https://www.python-httpx.org/) client request.
|
|
39
|
+
|
|
40
|
+
## Features
|
|
41
|
+
|
|
42
|
+
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.
|
|
43
|
+
|
|
44
|
+
## Installation
|
|
45
|
+
|
|
46
|
+
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](https://www.python.org/downloads/). Then, you can install the software using the following command (paste it in the terminal, in the directory you want to install the software):
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
pip install spaceboard
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
and then
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
spaceboard
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
> [!NOTE]
|
|
60
|
+
>This is the first release of the software, and my first package. I know the structure and the logic aren't perfect, but I'm working on it (I'm splitting files in different sub-packages, improving functions and features, adding \_\_init\_\_.py and \_\_main\_\_.py...) in a V2 version. It was important to me to release it as soon as possible, for get feedbacks and improve it. Also Stardance event incorages developers to ship their projects starting from the MVP.
|
|
61
|
+
|
|
62
|
+
At the first start, the software will give you the instructions to get your free NASA API key (**don't share it with anyone!**). Follow them and you will finally enjoy **spaceboard**!
|
|
63
|
+
|
|
64
|
+
This is a preview of the dashboard in action:
|
|
65
|
+
|
|
66
|
+

|
|
67
|
+
|
|
68
|
+
## Software structure
|
|
69
|
+
|
|
70
|
+
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. There's also a **`.env`** file that will contains the API key.
|
|
71
|
+
|
|
72
|
+
> [!NOTE]
|
|
73
|
+
> GitHub and Hack Club are two amazing communities for developers. Please, if you want to edit and improve the project, do it in a good way and respect the code of conduct of both communities. Make sure to respect the [Hack Club Code of Conduct](https://hackclub.com/conduct/) and the [GitHub Community Guidelines](https://docs.github.com/en/site-policy/github-terms/github-community-guidelines) before contributing. Make coding a better place for everyone. That said, happy coding!
|
|
74
|
+
|
|
75
|
+
## Credits
|
|
76
|
+
|
|
77
|
+
Credits go to the Hack Club and NASA for the event, to [Will McGugan](https://github.com/willmcgugan) for Rich and the Textual amazing framework and to [ProjectDiscovery](https://github.com/projectdiscovery) for httpx. Also, thanks to all the people that will contribute to this project in the future.
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
spaceboard-1.0.1.dist-info/licenses/LICENSE,sha256=lhnG_rvzFfUbATLhqlrRs-77zcGqkpvkVYeQSxYpfK4,1094
|
|
2
|
+
spaceboard-1.0.1.dist-info/METADATA,sha256=3lng72Ql8oOhH9A5mxXGhSsgSlxkyGDK_tW5hgZ_J0c,5934
|
|
3
|
+
spaceboard-1.0.1.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
4
|
+
spaceboard-1.0.1.dist-info/entry_points.txt,sha256=wIY688p7B5hB8aaQh4eKDS4-zjASKpCjipp2n1lfJGI,46
|
|
5
|
+
spaceboard-1.0.1.dist-info/top_level.txt,sha256=J9YIHeboUeZBjtIbx5aIgaG1dp3_qPkg_U6N4UZsFGQ,34
|
|
6
|
+
spaceboard-1.0.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Alessio Parolini
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|