ultimate-media-tracker/README.md
Tronax 3f07c78316
feat: initial commit for media tracking software
- Setup C++/Qt6 desktop application structure
- Added initial Go proxy backend for TMDB/IGDB integration
2026-06-15 02:02:25 +02:00

83 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ultimate Media Tracker
Ein hochgradig anpassbarer Tracker für **Filme, Serien, Mangas, Bücher und
Spiele** geschrieben in C++17 mit **Qt 6**. Behalte den Überblick darüber, was
du gesehen/gelesen/gespielt hast, und zwar auf jeder Ebene: ganzes Werk,
Staffel/Band oder einzelne Folge/Kapitel.
## Features
- **5 Medientypen**: Filme, Serien, Mangas, Bücher, Spiele
- **Granularer Fortschritt**: komplett · pro Staffel/Band · pro Folge/Kapitel
(tri-state Häkchen-Baum, automatische „Abgeschlossen“-Erkennung)
- **Automatische Titelbilder** über Online-Provider, jederzeit per integrierter
Suche austauschbar oder durch eigene Datei ersetzbar
- **Mehrsprachige Titel** pro Eintrag (de/en/ja/…), inkl. Originaltitel
- **Online-Metadaten-Provider**
- Filme & Serien: **TMDB** (kostenloser API-Key nötig)
- Bücher: **OpenLibrary** (kein Key)
- Mangas: **AniList** (kein Key)
- **Umfangreiche Filter**: Genre, Status, Bewertung, Jahr, Tags, Favoriten,
**Franchise** (automatisch aus den Titeln erkannt, manuell überschreibbar),
Volltextsuche, plus Sortierung (Datum/Titel/Bewertung/Jahr/Fortschritt)
- **Geteilter TMDB-Zugang** optional über einen **OIDC-Proxy** (siehe
`server/`): die Gruppe teilt sich einen API-Key, Login via Authentik
- **Customizability**: eigene Tags, eigene Felder (Key/Value), eigene
Strukturen (beliebige Abschnitte & Einheiten), anpassbare Kartengröße
- **Modernes GUI** mit **Dark- & Light-Mode** und frei wählbarer **Akzentfarbe**
- **Bewertung** als halbe-Sterne-Widget, Favoriten, Notizen, Beschreibung
- Lokale **SQLite**-Datenbank, Cover-Cache auf Platte
## Bauen
Voraussetzungen: Qt 6 (Widgets, Network, Sql, Svg, Concurrent), CMake ≥ 3.21,
ein C++17-Compiler, SQLite-Treiber (Teil von Qt).
```bash
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j
./build/uwt
```
Identisch unter **Linux und Windows** (sowie macOS). Unter Windows wird das
Programm als GUI-App ohne Konsolenfenster gebaut und bekommt das App-Icon
eingebettet; unter Linux installiert `cmake --install build` zusätzlich einen
`.desktop`-Eintrag samt Icon.
## Konfiguration
Öffne **⚙ Einstellungen**:
- **Design**: Dunkel/Hell
- **Akzentfarbe**: frei wählbar
- **Bevorzugte Sprache**: bestimmt angezeigte Titel & Provider-Sprache
- **Filme/Serien über**: entweder **eigener TMDB API-Key** (kostenlos auf
themoviedb.org) **oder** ein **Proxy-Server** (URL + Token von dessen
Login-Seite kein eigener Key nötig, siehe `server/`)
- **Cover automatisch laden**, **Kartengröße**
## TMDB-Proxy (optional)
Im Verzeichnis `server/` liegt ein kleiner Go-Server, der die TMDB-API hinter
**OIDC/Authentik** kapselt. So können Freunde die App nutzen, ohne sich je einen
eigenen TMDB-Key zu erstellen der Server hält einen geteilten Key und gibt
nach dem Login ein persönliches Token aus. Details: `server/README.md`.
## Daten
- Datenbank: `…/AppData/UMT/Ultimate Media Tracker/library.db`
- Cover-Bibliothek: `…/AppData/…/covers/`
- (Pfade gemäß `QStandardPaths::AppDataLocation`)
## Architektur
```
src/
core/ Enums, MediaItem (Werk→Abschnitt→Einheit), Database (SQLite), Settings
providers/ MetadataProvider-Interface + TMDB/OpenLibrary/AniList, ImageCache
ui/ ThemeManager, MainWindow, MediaCard, FilterPanel, FlowLayout,
StarRating, DetailDialog, EditDialog, OnlineSearchDialog, SettingsDialog
```
Das Datenmodell ist generisch: Jedes Werk besteht aus *Abschnitten* (Staffel /
Band / Teil), die *Einheiten* (Folge / Kapitel) enthalten. Filme/Bücher ohne
Struktur nutzen einfach den Status `Abgeschlossen`.