Skip to content

nexas105/compose_tracker

Repository files navigation

Compound Tracker

Ein persönlicher Tracker für Peptide, Steroide und andere Verbindungen – mit Halbwertszeit-Berechnung, Verlaufskurven und Lexikon.

⚠️ Disclaimer: Diese App dient ausschließlich persönlichen Aufzeichnungszwecken. Alle Verlaufswerte sind Schätzungen basierend auf erfassten Halbwertszeiten. Die App ersetzt keine medizinische Beratung. Die Anwendung von verschreibungspflichtigen oder nicht zugelassenen Substanzen ohne ärztliche Aufsicht ist in vielen Ländern illegal.


Features

Dashboard

  • Aktueller Spiegel – geschätzte Wirkstoffkonzentration für alle Substanzen mit Einträgen, berechnet via Halbwertszeit-Formel (C = C₀ × 0.5^(t/t½))
  • Level-Balken mit Farbkodierung (grün > 60 %, gelb > 30 %, rot darunter)
  • Anzeige der letzten Dosis und geschätztem Zeitpunkt des nächsten Halbwerts
  • KPI-Karten: aktive Substanzen, Einträge der letzten 7 / 30 Tage, Gesamteinträge

Lexikon

  • Nachschlagewerk mit allen 53 vordefinierten Substanzen
  • Suche nach Name und Alias
  • Filter nach Kategorie (Peptide, Steroide, Medikamente, Supplemente, Sonstiges)
  • Favoriten (gespeichert in localStorage)
  • Aufklappbare Detailkarten mit 4 Tabs:
    • Information – Beschreibung, Halbwertszeit, Applikationsweg, Aliase, Vorsichtshinweise
    • Protokoll – Informationen aus veröffentlichter Fachliteratur (keine persönliche Empfehlung)
    • Legal / Doping – Rechtsstatus pro Land und Doping-Listenstatus
    • Verwandte – Kombinationen, verwandte Substanzen, Antagonisten

Substanzen

  • Alle vordefinierten und eigene Substanzen verwalten
  • Filter nach Kategorie und Suche
  • Substanzen aktivieren / deaktivieren
  • Eigene Substanzen anlegen, bearbeiten, duplizieren, löschen
  • Vordefinierte (Seed-)Substanzen können nur deaktiviert, nicht gelöscht werden

Tracking

  • Einträge erfassen: Substanz, Datum/Uhrzeit, Menge, Einheit, Applikationsweg, Injektionsstelle, Chargennotiz
  • Einträge bearbeiten und löschen
  • Filter nach Substanz, Zeitraum und Freitextsuche
  • Einträge nach Tag gruppiert

Statistiken

  • Verlaufskurven – alle Substanzen gleichzeitig in einem Chart, per Toggle ein-/ausblendbar
  • Aktueller Spiegel aller Substanzen als Tabelle
  • Wöchentliches Balkendiagramm (letzte 12 Wochen)
  • Einträge nach Substanz (Anteilsbalken)
  • Zielbereiche als Referenzlinien im Chart

Einstellungen

  • Export – alle Daten als JSON-Datei herunterladen
  • Import – JSON-Datei einlesen (Modus: Zusammenführen oder Ersetzen)
  • Zielbereiche – relative Zielwerte (0–100 %) pro Substanz definieren
  • Reset – Einträge und eigene Substanzen löschen, vordefinierte Substanzen bleiben erhalten

Vordefinierte Substanzen (53)

Kategorie Substanzen
Peptide BPC-157, TB-500, GHK-Cu, GHRP-2, GHRP-6, Ipamorelin, CJC-1295 (DAC), Mod GRF 1-29, Sermorelin, Hexarelin, Tesamorelin, AOD-9604, IGF-1 LR3, PT-141, Melanotan II, Epithalon, Selank, Semax, Thymosin Alpha-1, PEG-MGF, Semaglutid, Tirzepatid
Steroide Testosteron Enanthat, Cypionat, Propionat, Undecanoat, Sustanon 250, Boldenon, Nandrolon Decanoat, NPP, Trenbolon Acetat & Enanthat, Masteron Prop & Enanthat, Primobolan, Oxandrolon, Methandienon, Stanozolol, Turinabol, Oxymetholon, Mesterolon
Medikamente Anastrozol, Letrozol, Exemestan, Tamoxifen, Clomifen, HCG
Supplemente DHEA
Sonstiges / SARMs RAD-140, LGD-4033, Ostarin (MK-2866), MK-677 (Ibutamoren), GW-501516 (Cardarine)

Technologie

Paket Version Zweck
React 19 UI-Framework
TypeScript 5.9 Typsicherheit
Vite 8 Build-Tool / Dev-Server
Recharts 3 Diagramme
lucide-react 1 Icons
date-fns 4 Datumsformatierung

Kein Backend, keine Datenbank – alle Daten liegen im localStorage des Browsers.


Installation & Start

# Abhängigkeiten installieren
npm install

# Entwicklungsserver starten
npm run dev
# → http://localhost:5173

# Produktionsbuild erstellen
npm run build

# Produktionsbuild lokal vorschauen
npm run preview

Datenpersistenz

localStorage-Schema

Alle Daten werden unter dem Key ct_data_v2 als JSON gespeichert:

{
  schemaVersion: 2,
  substances: Substance[],   // vordefiniert + eigene
  entries: Entry[],          // alle Tracking-Einträge
  goalRanges: GoalRange[],   // Zielbereiche für Verlaufskurven
  favorites: string[],       // Substanz-IDs der Favoriten
  lastExported?: string      // ISO-Datum des letzten Exports
}

Import / Export

  • Export: Einstellungen → „Als JSON exportieren" → lädt compound-tracker-export-YYYY-MM-DD.json herunter
  • Import:
    • Zusammenführen – neue Einträge und Substanzen werden hinzugefügt, bestehende IDs bleiben unberührt
    • Ersetzen – alle Daten werden durch die Importdatei überschrieben (mit Bestätigungsdialog)

Halbwertszeit-Berechnung

Die geschätzten Spiegel basieren auf der klassischen Zerfallsformel:

C(t) = C₀ × 0.5^(t / t½)
  • C₀ = applizierte Menge
  • t = vergangene Zeit seit Applikation (Stunden)
  • = Halbwertszeit der Substanz (Stunden)

Mehrere Einträge derselben Substanz werden summiert (Superposition). Der relative Wert (0–100 %) ergibt sich aus dem Verhältnis zum theoretischen Maximum aller bisherigen Einträge.

Diese Werte sind mathematische Näherungen. Individuelle Faktoren (Stoffwechsel, Körpergewicht, Applikationsort etc.) werden nicht berücksichtigt.


Projektstruktur

src/
├── components/
│   ├── charts/          # HalfLifeChart (Recharts)
│   ├── dashboard/       # Dashboard mit aktuellem Spiegel
│   ├── layout/          # Layout, Sidebar (Desktop + Mobile)
│   ├── lexikon/         # Lexikon-Seite mit Substanz-Details
│   ├── settings/        # Import/Export, Zielbereiche, Reset
│   ├── statistics/      # Verlaufskurven, Wochenstatistik
│   ├── substances/      # Substanzverwaltung + Formular
│   ├── tracking/        # Eintragserfassung + Liste
│   └── ui/              # Button, Card, Modal, Badge, Input, …
├── data/
│   └── seed.ts          # 53 vordefinierte Substanzen
├── hooks/
│   ├── useEntries.ts
│   ├── useLocalStorage.ts
│   └── useSubstances.ts
├── types/
│   └── index.ts         # Substance, Entry, GoalRange, AppData
├── utils/
│   ├── chartData.ts     # Datenaufbereitung für Recharts
│   ├── halflife.ts      # Zerfallsberechnungen
│   ├── storage.ts       # localStorage + Migration + Import/Export
│   └── validation.ts    # Import-Validierung
├── App.tsx              # Router (useState-basiert)
├── index.css            # CSS Custom Properties + alle Styles
└── main.tsx

Lizenz

Privat / nicht öffentlich lizenziert.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages