123 lines
3.2 KiB
Markdown
123 lines
3.2 KiB
Markdown
# Development Hub
|
|
|
|
Central orchestration project for managing Rob's multi-project development ecosystem.
|
|
|
|
## Overview
|
|
|
|
Development Hub provides:
|
|
|
|
- **GUI Application** - PyQt6 workspace with project list, splittable terminal panes, and session persistence
|
|
- **CLI Tools** - Scripts to create and manage projects with consistent patterns
|
|
- **Centralized Documentation** - Docusaurus-based docs with Gitea Pages deployment
|
|
|
|
## Quick Start
|
|
|
|
### Run the GUI
|
|
|
|
```bash
|
|
cd ~/PycharmProjects/development-hub
|
|
source .venv/bin/activate
|
|
python -m development_hub
|
|
```
|
|
|
|
### Install Dependencies (first time)
|
|
|
|
```bash
|
|
python3 -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -e .
|
|
```
|
|
|
|
### Create a New Project (CLI)
|
|
|
|
```bash
|
|
# Add to PATH (one-time)
|
|
export PATH="$PATH:$HOME/PycharmProjects/development-hub/bin"
|
|
|
|
# Create a new project
|
|
new-project my-awesome-tool --title "My Awesome Tool" --tagline "Does awesome things"
|
|
```
|
|
|
|
This will:
|
|
1. Create a Gitea repository at `gitea.brrd.tech/rob/my-awesome-tool`
|
|
2. Set up local project at `~/PycharmProjects/my-awesome-tool/`
|
|
3. Generate starter files (CLAUDE.md, README.md, pyproject.toml, .gitignore)
|
|
4. Configure documentation symlink and build scripts
|
|
5. Create initial commit and push
|
|
|
|
### View Full Options
|
|
|
|
```bash
|
|
new-project --help
|
|
```
|
|
|
|
## What Gets Created
|
|
|
|
For each new project:
|
|
|
|
```
|
|
~/PycharmProjects/my-project/
|
|
├── src/my_project/ # (you create this)
|
|
├── tests/ # (you create this)
|
|
├── docs/ # Symlink to centralized docs
|
|
├── CLAUDE.md # AI assistant context
|
|
├── README.md # Project readme
|
|
├── pyproject.toml # Python packaging
|
|
└── .gitignore # Standard Python ignores
|
|
```
|
|
|
|
## Documentation System
|
|
|
|
All projects use centralized documentation:
|
|
|
|
- **Private hub**: `~/PycharmProjects/project-docs/` (view with `npm start`)
|
|
- **Public sites**: `https://pages.brrd.tech/rob/{project}/`
|
|
|
|
The `docs/` symlink in each project points to its section in project-docs.
|
|
|
|
## Configuration
|
|
|
|
### Gitea Token
|
|
|
|
The script needs a Gitea API token. It will prompt you the first time and save it to `~/.config/development-hub/gitea-token`.
|
|
|
|
To create manually:
|
|
1. Go to https://gitea.brrd.tech/user/settings/applications
|
|
2. Generate token with 'repo' scope
|
|
3. Set `GITEA_TOKEN` env var or let the script save it
|
|
|
|
## GUI Features
|
|
|
|
### Project List (Left Panel)
|
|
- Auto-discovers projects from build configuration
|
|
- Double-click to open terminal at project root
|
|
- Right-click context menu:
|
|
- Open Terminal
|
|
- Open in Editor
|
|
- View on Gitea
|
|
- View Documentation
|
|
- Deploy Docs
|
|
|
|
### Workspace (Right Panel)
|
|
- Splittable panes (horizontal/vertical)
|
|
- Each pane has its own tab bar
|
|
- Full PTY terminals with TUI support (vim, htop, etc.)
|
|
- Drag & drop files/folders to inject paths
|
|
- Session persistence - remembers layout on restart
|
|
|
|
### Keyboard Shortcuts
|
|
|
|
| Shortcut | Action |
|
|
|----------|--------|
|
|
| `Ctrl+Shift+T` | New terminal tab |
|
|
| `Ctrl+Shift+W` | Close current tab |
|
|
| `Ctrl+Shift+D` | Split horizontal |
|
|
| `Ctrl+Shift+E` | Split vertical |
|
|
| `Ctrl+Alt+Left/Right` | Switch panes |
|
|
| `Ctrl+B` | Toggle project panel |
|
|
| `Ctrl+N` | New project dialog |
|
|
|
|
## Full Documentation
|
|
|
|
https://pages.brrd.tech/rob/development-hub/
|