Rewrite README to describe the documentation repository

This commit is contained in:
2026-05-25 18:03:41 +02:00
parent 46c4173440
commit 70a77d4cd1
+41 -160
View File
@@ -1,174 +1,55 @@
# 🏷️ Tagger # Dokumentace
Desktopová aplikace pro správu a organizaci souborů pomocí hierarchických tagů (štítků). Personal development documentation — guidelines, conventions, and templates for my projects, structured for use with AI coding assistants.
## ✨ Hlavní funkce ## Purpose
- 📁 Rekurzivní procházení složek This repository is the single source of truth for how I develop software. AI assistants (Claude Code, Cursor, Copilot) are given these documents at the start of each session to understand my conventions before touching any code.
- 🏷️ Hierarchické tagy (kategorie/název)
- 🔍 Filtrování podle tagů a textu
- 💾 Metadata v JSON souborech (.!tag)
- 🎬 Automatická detekce rozlišení videí (ffprobe)
- 🎨 Dvě verze GUI: klasické a moderní (qBittorrent-style)
## 🚀 Rychlý start ## Structure
```bash
# Instalace závislostí
poetry install
# Spuštění (moderní GUI)
poetry run python Tagger_modern.py
# Nebo klasické GUI
poetry run python Tagger.py
```
## 📸 Screenshot
### Moderní GUI (qBittorrent-style)
```
┌─────────────────────────────────────────────────────┐
│ 📁 Otevřít │ 🔄 │ 🏷️ │ 📅 🔍 [____] Toolbar
├────────────┬────────────────────────────────────────┤
│ 📂 Štítky │ Název │Datum│Štítky│Velikost │
│ ├─📁 Stav │ file1.txt│2025 │HD │1.2 MB │
│ │ ☑ Nové │ file2.mp4│ │4K │15 MB │
│ ├─📁 Video│ file3.jpg│ │RAW │845 KB │
│ │ ☐ HD │ │
├────────────┴────────────────────────────────────────┤
│ Připraven 3 vybráno │ 125 souborů │
└─────────────────────────────────────────────────────┘
```
## 🎯 Použití
1. **Otevři složku** - Načti soubory ze složky (rekurzivně)
2. **Vytvoř tagy** - Hierarchická struktura (kategorie → tagy)
3. **Přiřaď tagy** - Označ soubory, vyber tagy
4. **Filtruj** - Klikni na tagy pro filtrování souborů
5. **Vyhledávej** - Textové vyhledávání v názvech
## ⌨️ Keyboard Shortcuts (moderní GUI)
- `Ctrl+O` - Otevřít složku
- `Ctrl+T` - Přiřadit tagy
- `Ctrl+D` - Nastavit datum
- `F5` - Refresh
- `Del` - Smazat z indexu
## 🏗️ Architektura
``` ```
┌─────────────────────────────────┐ Dokumentace/
│ Presentation (UI) │ ← Tkinter GUI ├── Claude/ # AI assistant configuration
├─────────────────────────────────┤ │ ├── CLAUDE.md # Claude Code session instructions
Business Logic │ ← FileManager, TagManager ├── AGENTS.md # Rules for all AI assistants
├─────────────────────────────────┤ │ └── skills/ # Custom Claude Code skills
Data Layer │ ← File, Tag models
├─────────────────────────────────┤ ├── Python/ # Python development guidelines
Persistence │ ← JSON .!tag soubory ├── DESIGN_DOCUMENT.md # Guidelines for Python applications
└─────────────────────────────────┘ │ ├── DESIGN_DOCUMENT_MODULE.md # Guidelines for Python libraries
│ ├── TEMPLATE.md # New project template specification
│ └── prebuild.py # Pre-build script (PyInstaller)
├── Project template/ # Reusable files for new projects
│ ├── CHANGELOG.md # Changelog template
│ └── PROJECT.md # Project documentation template
└── Zscaler/ # Corporate network setup
├── NODE_EXTRA_CA_CERTS.md # Instructions for Zscaler cert
└── ZscalerRootCertificate-2048-SHA256.crt
``` ```
## 📁 Struktura projektu ## AI Coding Workflow
``` Each project references these documents so AI assistants operate within consistent rules:
Tagger/
├── Tagger.py # Entry point (klasické GUI)
├── Tagger_modern.py # Entry point (moderní GUI)
├── PROJECT_NOTES.md # ⭐ Kompletní dokumentace
├── src/
│ ├── core/ # Business logika
│ │ ├── file.py
│ │ ├── tag.py
│ │ ├── file_manager.py
│ │ └── tag_manager.py
│ └── ui/
│ ├── gui.py # Klasické GUI
│ └── gui_modern.py # Moderní GUI
└── tests/ # 116 testů
```
## 🧪 Testování - **AGENTS.md** — language-agnostic rules: dependency management, testing, logging, git, versioning
- **DESIGN_DOCUMENT.md** — Python-specific: code style, tooling (Ruff, mypy, pytest, Poetry), project structure, logging with loguru, distribution via PyInstaller
- **DESIGN_DOCUMENT_MODULE.md** — same as above, adapted for Python libraries (no sinks, no `.env`, PyPI distribution)
```bash ## Languages Covered
# Všechny testy (116 testů, 100% core coverage)
poetry run pytest tests/ -v
# S coverage report | Language | Guidelines |
poetry run pytest tests/ --cov=src/core --cov-report=html |----------|-----------|
``` | Python (application) | `Python/DESIGN_DOCUMENT.md` |
| Python (library) | `Python/DESIGN_DOCUMENT_MODULE.md` |
## 📝 Dokumentace ## Key Conventions
**Veškerá dokumentace je v jednom souboru:** - **Python tooling:** Poetry · Ruff · mypy · pytest · loguru
- **No print() for debugging** — loguru everywhere
👉 **[PROJECT_NOTES.md](PROJECT_NOTES.md)** ⭐ - **Type hints required** on all functions
- **Tests:** pytest only, no unittest, no mocks of the database
Obsahuje: - **Versioning:** semantic, always ask before bumping
- Kompletní dokumentaci projektu - **Secrets:** `.env` + `python-dotenv`, never committed
- Architektonická rozhodnutí (ADR)
- Coding standards
- Git workflow
- Known issues & TODO
- Debugování tipy
- Pravidla pro AI asistenty
## 🛠️ Technologie
- **Python:** 3.12
- **GUI:** Tkinter (standard library)
- **Dependencies:** Pillow (PIL)
- **Package manager:** Poetry
- **Testing:** pytest
## 📊 Metriky
- **Řádky kódu:** ~1060 Python LOC
- **Testy:** 116 (všechny ✅)
- **Test coverage:** 100% core modulů
- **GUI verze:** 2 (klasická + moderní)
## 🎯 Design Decisions
### Proč JSON místo databáze?
- ✅ Jednoduchý backup (copy složky)
- ✅ Git-friendly (plain text)
- ✅ Portable (žádné DB dependencies)
- ✅ Metadata zůstanou při přesunu souboru
### Proč Tkinter?
- ✅ Standard library (žádné extra deps)
- ✅ Cross-platform
- ✅ Dobře dokumentované
### Proč Poetry?
- ✅ Deterministické buildy (poetry.lock)
- ✅ Dev dependencies oddělené
- ✅ Moderní nástroj
## 🐛 Known Issues
- Git merge konflikty s poetry.lock při merge devel→feature
- Dlouhé operace (ffprobe) blokují UI - TODO: threading
## 🚀 Plánované features
- [ ] Progress bar pro dlouhé operace
- [ ] Undo/Redo mechanismus
- [ ] Export do CSV/Excel
- [ ] Dark mode theme
- [ ] Drag & drop souborů
## 📄 License
MIT License
## 👤 Autor
honza
---
**Pro detailní dokumentaci viz [PROJECT_NOTES.md](PROJECT_NOTES.md)**