claude
This commit is contained in:
61
CLAUDE.md
Normal file
61
CLAUDE.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
Turbo Sorter Pro v12.5 - A dual-interface image organization tool combining Streamlit (admin dashboard) and NiceGUI (gallery interface) for managing large image collections through time-sync matching, ID collision resolution, category-based sorting, and gallery tagging with pairing capabilities.
|
||||
|
||||
## Commands
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pip install -r requirements.txt
|
||||
|
||||
# Run Streamlit dashboard (port 8501)
|
||||
streamlit run app.py --server.port=8501 --server.address=0.0.0.0
|
||||
|
||||
# Run NiceGUI gallery (port 8080)
|
||||
python3 gallery_app.py
|
||||
|
||||
# Both services (container startup)
|
||||
./start.sh
|
||||
|
||||
# Syntax check all Python files
|
||||
python3 -m py_compile *.py
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
### Dual-Framework Design
|
||||
- **Streamlit (app.py, port 8501)**: Administrative dashboard with 5 modular tabs for management workflows
|
||||
- **NiceGUI (gallery_app.py, port 8080)**: Modern gallery interface for image tagging and pairing operations
|
||||
- **Shared Backend**: Both UIs use `SorterEngine` (engine.py) and the same SQLite database
|
||||
|
||||
### Core Components
|
||||
|
||||
| File | Purpose |
|
||||
|------|---------|
|
||||
| `engine.py` | Static `SorterEngine` class - all DB operations, file handling, image compression |
|
||||
| `gallery_app.py` | NiceGUI gallery with `AppState` class for centralized state management |
|
||||
| `app.py` | Streamlit entry point, loads tab modules |
|
||||
| `tab_*.py` | Independent tab modules for each workflow |
|
||||
|
||||
### Database
|
||||
SQLite at `/app/sorter_database.db` with tables: profiles, folder_ids, categories, staging_area, processed_log, folder_tags, profile_categories, pairing_settings.
|
||||
|
||||
### Tab Workflows
|
||||
1. **Time-Sync Discovery** - Match images by timestamp across folders
|
||||
2. **ID Review** - Resolve ID collisions between target/control folders
|
||||
3. **Unused Archive** - Manage rejected image pairs
|
||||
4. **Category Sorter** - One-to-many categorization
|
||||
5. **Gallery Staged** - Grid-based tagging with Gallery/Pairing dual modes
|
||||
|
||||
## Key Patterns
|
||||
|
||||
- **ID Format**: `id001_`, `id002_` (zero-padded 3-digit prefix)
|
||||
- **Staging Pattern**: Two-phase commit (stage → commit) with undo support
|
||||
- **Image Formats**: .jpg, .jpeg, .png, .webp, .bmp, .tiff
|
||||
- **Compression**: WebP with ThreadPoolExecutor (8 workers)
|
||||
- **Permissions**: chmod 0o777 applied to committed files
|
||||
- **Default Paths**: `/storage` when not configured
|
||||
Reference in New Issue
Block a user