FIU-SEDS/orbihub
GitHub: FIU-SEDS/orbihub
高性能火箭技术专用模块化应用市场平台,提供遥测、数据分析、固件更新等工具的统一下载与管理。
Stars: 1 | Forks: 0
# orbihub
面向高性能火箭技术的模块化市场平台。提供用于遥测、数据分析、固件更新和飞行工具的可下载应用。
**从小处着手。频繁交付。保持专注。**
## 🎯 当前重点(2025年12月)
**首要任务:** QThread 实现,用于非阻塞式安装
### 已完成功能 ✅
- PyQt6 桌面 UI,采用航空航天主题
- SQLite 数据库,用于跟踪已安装的应用
- 应用卡片展示,包含图片和样式
- 卸载功能(设置按钮)
- “关于”对话框,显示应用信息
- 日志系统(文件 + 控制台)
- 跨平台路径管理
- 应用安装(会阻塞 UI - 正在改进中)
### 进行中 🚧
- 安装按钮功能
- **带 QThread 的安装按钮** - 防止在 git clone/venv 创建期间 UI 冻结
- 应用启动(检测已安装的应用,使用 subprocess 运行)
- 安装过程中的进度条动画
- **带 QThread 的卸载按钮** - 同样防止 UI 冻结
### 计划中 📋
- PyInstaller 可执行文件构建
- 用户文档
- 搜索/筛选功能(v1.1)
- 来自服务器的动态应用注册表(v2.0)
查看 [ROADMAP.md](ROADMAP.md) 了解长期愿景(第 2-4 阶段)
## 第 1 阶段进度(v1.0 - 2026年1月)
**已完成:**
- [x] 第 1 阶段:UI 正常工作(PyQt6 主窗口,应用卡片)
- [x] 第 2 阶段:数据层(SQLite 数据库,应用注册表)
- [x] 第 3 阶段:在 UI 中显示应用(动态卡片生成)
- [x] 第 4 阶段:卸载功能及数据库清理
- [x] 第 6 阶段部分:主题样式,日志系统
**当前冲刺(12月13日当周):**
- [ ] 用于 install_app() 的 QThread - 防止 UI 冻结
- [ ] 将安装按钮连接到线程工作器
- [ ] 在安装期间显示动画进度条
- [ ] 应用启动功能
**下一个冲刺(12月20日当周):**
- [ ] macOS/Windows 的 PyInstaller 可执行文件
- [ ] 用户文档(README,使用指南)
- [ ] 与 FIU SEDS 团队进行 Beta 测试
**目标:** 2026年12月22日 - 发布 v1.0
## 计划
```
orbihub-project/
├── orbihub/ # Your source code package
│ ├── __init__.py
│ ├── __main__.py
│ ├── ui/
│ ├── core/
│ └── utils/
│
├── assets/ # Static resources (shipped with code)
│ ├── icons/
│ └── default_config.json
│
├── docs/
├── licenses/
├── requirements.txt
├── README.md
├── LICENSE
└── .gitignore
# 用户机器 (在运行时创建,不在 repo 中)
~/.orbihub/ # or ~/orbihub-data/
├── apps/ # Downloaded marketplace apps
│ ├── telemetry-viewer/
│ ├── data-replay/
│ └── flight-analyzer/
├── data/ # User's CSV files, logs
│ ├── flight_001.csv
│ ├── flight_002.csv
│ └── telemetry_logs/
└── config.json # User settings
```
- 关于 ui/ 文件夹:
PyQt6 用户界面组件,包括主市场窗口、应用卡片和对话框。包含 .ui 设计师文件和生成的 Python UI 代码。
- 关于 core/ 文件夹:
应用管理的核心业务逻辑,包括通过 git 安装、注册表获取、数据库操作和应用启动。
- 关于 utils/ 文件夹:
实用函数和助手,用于配置管理、日志记录、验证和应用范围的常量。
## 📦 安装
## 前置条件
在开始之前,您需要安装 Conda
### 安装 Conda
如果您尚未安装 Conda,请下载并安装以下之一:
- **[Anaconda](https://www.anaconda.com/products/distribution)**(包含许多预安装的包)
- **[Miniconda](https://www.anaconda.com/docs/getting-started/miniconda/main)**(仅包含 Conda 和 Python)
** 验证安装: **
```
conda --verison
```
### 1. 克隆仓库:
```
git clone https://github.com/FIU-SEDS/orbihub.git
```
### 2. 创建 Conda 环境:
使用所需的依赖项创建一个 conda 环境:
```
conda create -n orbihub python
```
### 3. 激活环境
```
conda activate orbihub
```
### 4. 安装依赖项
安装所需的包:
```
pip install -r requirements.txt
```
### 5. 运行应用程序
```
python -m orbihub
```
## 为 orbihub 创建应用
### 必需结构
所有应用必须遵循此结构才能与 OrbiHub 配合使用:
```
your-app/
├── __main__.py # Entry point (REQUIRED)
├── requirements.txt # Dependencies (REQUIRED)
├── README.md # Documentation (recommended)
└── your-app/ # Package folder (optional)
└── ...
```
### 要求
**1. 入口点(根目录下的 `__main__.py`)**
- 必须位于仓库的根目录级别
- 当用户点击“启动”时执行此文件
- 可以从子目录/包导入
**示例 `__main__.py`:**
```
from your_app.main import run
if __name__ == "__main__":
run()
```
**2. 依赖项(`requirements.txt`)**
- 列出所有 Python 依赖项
- 将安装在隔离的虚拟环境中
- 标准 pip 格式
**示例 `requirements.txt`:**
```
PySide6>=6.6.0
numpy>=1.24.0
```
**3. 仓库结构**
OrbiHub 将:
1. 将您的仓库克隆到 `~/.orbihub/apps/{app-id}/`
2. 创建一个虚拟环境
3. 从 `requirements.txt` 安装依赖项
4. 启动时运行 `__main__.py`
### 示例应用
查看 [pyside6-calculator](https://github.com/erielC/pyside6-calculator) 获取完整示例。
标签:DNS解析, Git克隆, GUI开发, HTTP工具, IP 地址批量处理, PyQt6, Python, QThread, SQLite, 代码示例, 固件更新, 子进程管理, 工程工具, 应用市场, 开源项目, 数据分析, 无后门, 桌面应用, 模块化平台, 火箭技术, 网络信息收集, 网络安全研究, 航空航天, 逆向工具, 遥测数据, 飞行工具, 高空探测火箭