FIU-SEDS/orbihub

GitHub: FIU-SEDS/orbihub

高性能火箭技术专用模块化应用市场平台,提供遥测、数据分析、固件更新等工具的统一下载与管理。

Stars: 1 | Forks: 0

# orbihub 面向高性能火箭技术的模块化市场平台。提供用于遥测、数据分析、固件更新和飞行工具的可下载应用。 **从小处着手。频繁交付。保持专注。**
[![python](https://img.shields.io/badge/Python-3.13-3776AB.svg?style=flat&logo=python&logoColor=white)](https://www.python.org)
## 🎯 当前重点(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, 代码示例, 固件更新, 子进程管理, 工程工具, 应用市场, 开源项目, 数据分析, 无后门, 桌面应用, 模块化平台, 火箭技术, 网络信息收集, 网络安全研究, 航空航天, 逆向工具, 遥测数据, 飞行工具, 高空探测火箭