second commit, initializing content
This commit is contained in:
@@ -1,682 +1,79 @@
|
|||||||
Ja bau mir eine fertige Tabelle, ich würde gerne die Infos selbst verwalten und daher dann ein
|
bitcoin-programm
|
||||||
eigenes Dashboard lokal haben dafür.
|
|
||||||
|
Lokales Projekt zur strukturierten Erfassung und Verwaltung von:
|
||||||
└─ ▾ Tool calls (5)
|
|
||||||
├─ ● Skill View("product-price-monitor") (0.1s)
|
• To-dos
|
||||||
├─ ● Skill View("xlsx") (0.2s)
|
• Kalendereinträgen
|
||||||
├─ ● Skill View("google-workspace") (0.2s)
|
• Dokumentation
|
||||||
├─ ● Execute Code("from hermes_tools import web_search print(web_search('best bitc…") (0.1s)
|
• später: Bitcoin-Transaktionen und Auswertungen
|
||||||
└─ ● Execute Code("from hermes_tools import web_search print(web_search('self host…") (0.1s)
|
|
||||||
|
Ziel
|
||||||
┊ Ja — ich kann dir dafür direkt eine saubere lokale Tabellenstruktur bauen, die sich gut in ein
|
|
||||||
eigenes Dashboard übernehmen lässt.
|
Das Projekt dient als zentrales Arbeitsverzeichnis für persönliche Verwaltung und spätere Automatisierung.
|
||||||
|
|
||||||
Ich würde dir dafür nicht nur eine „Kaufliste“, sondern ein kleines Datenmodell empfehlen mit drei
|
Geplant ist:
|
||||||
Tabellen:
|
|
||||||
|
• eine einfache Eingabemaske für To-dos und Kalendertermine
|
||||||
1) transaktionen
|
• CSV als einfache Zwischen- und Exportform
|
||||||
|
• später ein SQLite-Backend für Auswertung und Dashboard
|
||||||
Alle Käufe, Verkäufe und Transfers
|
• optional Sync mit Google Calendar oder iCloud Kalender
|
||||||
|
|
||||||
Spalten:
|
Aktueller Fokus
|
||||||
|
|
||||||
• id
|
Der aktuelle Fokus liegt auf:
|
||||||
• datum_zeit
|
|
||||||
• typ — Kauf / Verkauf / Transfer_in / Transfer_out
|
1. Dokumentation
|
||||||
• asset — z. B. BTC
|
2. To-do-Erfassung
|
||||||
• menge_btc
|
3. Kalender-Erfassung
|
||||||
• preis_eur
|
4. saubere Datenstruktur für späteren Import nach SQLite
|
||||||
• gebuehren_eur
|
|
||||||
• gesamtwert_eur
|
Bitcoin-Tracking kann später ergänzt werden.
|
||||||
• plattform
|
|
||||||
• wallet_von
|
Projektstruktur
|
||||||
• wallet_zu
|
|
||||||
• txid
|
Empfohlene Struktur:
|
||||||
• notiz
|
|
||||||
|
|
||||||
2) wallets
|
|
||||||
|
|
||||||
Deine Börsen, Wallets, Adressen
|
|
||||||
|
|
||||||
Spalten:
|
|
||||||
|
|
||||||
• wallet_id
|
|
||||||
• name
|
|
||||||
• typ — Exchange / Hardware Wallet / Software Wallet
|
|
||||||
• adresse
|
|
||||||
• notiz
|
|
||||||
|
|
||||||
3) bestand
|
|
||||||
|
|
||||||
Eine Übersicht, die sich aus den Transaktionen berechnet
|
|
||||||
|
|
||||||
Spalten:
|
|
||||||
|
|
||||||
• asset
|
|
||||||
• gesamt_menge
|
|
||||||
• durchschnittskauf
|
|
||||||
• aktueller_kurs
|
|
||||||
• aktueller_wert
|
|
||||||
• realisiert
|
|
||||||
• unrealisiert
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Fertige Vorlage für CSV / Excel
|
|
||||||
|
|
||||||
Du kannst diese Struktur direkt als CSV verwenden:
|
|
||||||
|
|
||||||
─ csv
|
|
||||||
id,datum_zeit,typ,asset,menge_btc,preis_eur,gebuehren_eur,gesamtwert_eur,plattform,wallet_von,wall
|
|
||||||
et_zu,txid,notiz
|
|
||||||
1,2024-01-15 14:30:00,Kauf,BTC,0.050000,40000,5,2005,Bitpanda,,,,"Erster Kauf"
|
|
||||||
2,2024-03-10 09:15:00,Transfer_out,BTC,0.010000,,,,"Bitpanda","Bitpanda","Ledger","","Auszahlung
|
|
||||||
aufs Ledger"
|
|
||||||
3,2024-03-10 09:45:00,Transfer_in,BTC,0.010000,,,,"Ledger","Bitpanda","Ledger","","Eingang auf
|
|
||||||
Ledger"
|
|
||||||
4,2024-06-01 18:00:00,Verkauf,BTC,0.020000,65000,8,1308,Kraken,,,,"Teilverkauf"
|
|
||||||
|
|
||||||
Und für Wallets:
|
|
||||||
|
|
||||||
─ csv
|
|
||||||
wallet_id,name,typ,adresse,notiz
|
|
||||||
1,Bitpanda,Exchange,,Börsenkonto
|
|
||||||
2,Ledger,Hardware Wallet,bc1...,Cold Storage
|
|
||||||
3,Kraken,Exchange,,Verkaufskonto
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Für dein lokales Dashboard würde ich empfehlen
|
|
||||||
|
|
||||||
Wenn du es wirklich lokal selbst verwalten willst:
|
|
||||||
|
|
||||||
• Excel / LibreOffice für den Start
|
|
||||||
• oder Google Sheets nur als Zwischenlösung
|
|
||||||
• für ein echtes Dashboard später:
|
|
||||||
• Python + SQLite + Streamlit
|
|
||||||
• oder Python + DuckDB + Plotly
|
|
||||||
• oder Notion/Airtable nur wenn du cloud okay findest
|
|
||||||
|
|
||||||
Mein Favorit für lokal:
|
|
||||||
SQLite als Datenbank + Streamlit als Dashboard
|
|
||||||
|
|
||||||
Dann kannst du:
|
|
||||||
|
|
||||||
• Käufe/Verkäufe eingeben
|
|
||||||
• aktuellen BTC-Bestand sehen
|
|
||||||
• Wertentwicklung visualisieren
|
|
||||||
• Transfers zwischen Wallets nachverfolgen
|
|
||||||
• später Steuerberichte exportieren
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Ich kann dir direkt als Nächstes eines von drei Dingen bauen:
|
|
||||||
|
|
||||||
1. eine fertige Excel/CSV-Vorlage
|
|
||||||
2. ein SQLite-Schema für dein lokales Dashboard
|
|
||||||
3. ein komplettes Streamlit-Dashboard-Gerüst
|
|
||||||
|
|
||||||
Wenn du willst, mache ich dir im nächsten Schritt direkt:
|
|
||||||
ein sauberes Dashboard-Datenmodell mit Tabellen, Feldern und Beispielinhalten, so dass du es 1:1
|
|
||||||
lokal umsetzen kannst.
|
|
||||||
|
|
||||||
───
|
|
||||||
|
|
||||||
❯ Excel würde am Anfang reichen, später sollte es importiert werden können in ein sqlite Dashboard.
|
|
||||||
|
|
||||||
▾ Todo (0/1) · incomplete · 1 still pending
|
|
||||||
[>] Create an Excel-friendly BTC tracking template with future SQLite import compatibility
|
|
||||||
|
|
||||||
└─ ▾ Tool calls (2)
|
|
||||||
├─ ● Todo("planning 1 task(s)") (0.0s)
|
|
||||||
└─ ● Execute Code("from openpyxl import Workbook from openpyxl.styles import Font,…") (0.0s)
|
|
||||||
|
|
||||||
┊ Klar — für deinen Start ist Excel die richtige Wahl, wenn du später in ein SQLite-Dashboard
|
|
||||||
importieren willst.
|
|
||||||
|
|
||||||
Ich habe dir dafür die Struktur festgelegt, die am besten importierbar bleibt:
|
|
||||||
|
|
||||||
Empfohlene Excel-Arbeitsmappe
|
|
||||||
|
|
||||||
Blatt 1: Transaktionen
|
|
||||||
|
|
||||||
Eine Zeile = ein Vorgang.
|
|
||||||
|
|
||||||
Spalten:
|
|
||||||
|
|
||||||
• id
|
|
||||||
• datum_zeit
|
|
||||||
• typ
|
|
||||||
• asset
|
|
||||||
• menge_btc
|
|
||||||
• preis_eur
|
|
||||||
• gebuehren_eur
|
|
||||||
• gesamtwert_eur
|
|
||||||
• plattform
|
|
||||||
• wallet_von
|
|
||||||
• wallet_zu
|
|
||||||
• txid
|
|
||||||
• notiz
|
|
||||||
|
|
||||||
Werte für typ:
|
|
||||||
|
|
||||||
• Kauf
|
|
||||||
• Verkauf
|
|
||||||
• Transfer_in
|
|
||||||
• Transfer_out
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Blatt 2: Wallets
|
|
||||||
|
|
||||||
Für Börsen, Hardware Wallets und Adressen.
|
|
||||||
|
|
||||||
Spalten:
|
|
||||||
|
|
||||||
• wallet_id
|
|
||||||
• name
|
|
||||||
• typ
|
|
||||||
• adresse
|
|
||||||
• notiz
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Blatt 3: Anleitung
|
|
||||||
|
|
||||||
Kurzhinweise zur Pflege, damit du später sauber importieren kannst.
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Wichtig für späteren SQLite-Import
|
|
||||||
|
|
||||||
Damit der Import später einfach wird:
|
|
||||||
|
|
||||||
• pro Zeile nur eine Transaktion
|
|
||||||
• keine zusammengeführten Zellen
|
|
||||||
• keine leeren Zwischenzeilen
|
|
||||||
• Datumsformat einheitlich
|
|
||||||
• z. B. 2024-01-15 14:30:00
|
|
||||||
• Typwerte immer gleich schreiben
|
|
||||||
• BTC-Mengen mit Dezimalpunkt oder konsistentem Format
|
|
||||||
• Wallets separat pflegen, nicht nur im Freitext
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Sinnvolle Erweiterungen für später
|
|
||||||
|
|
||||||
Wenn du das Dashboard ausbaust, kannst du noch ergänzen:
|
|
||||||
|
|
||||||
• kurs_usd
|
|
||||||
• gebuehren_asset
|
|
||||||
• exchange_rate_eur_usd
|
|
||||||
• quelle
|
|
||||||
• steuerrelevant
|
|
||||||
• status
|
|
||||||
• verknuepfte_txid
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Meine Empfehlung für deinen Workflow
|
|
||||||
|
|
||||||
1. Jetzt Excel pflegen
|
|
||||||
2. Daten sauber halten
|
|
||||||
3. Später 1:1 in SQLite importieren
|
|
||||||
4. Dashboard darauf aufbauen
|
|
||||||
|
|
||||||
Wenn du möchtest, mache ich dir im nächsten Schritt direkt eine konkrete Excel-Vorlage als
|
|
||||||
tabellarischen Aufbau zum Kopieren hier im Chat — also so, dass du sie sofort in Excel einfügen
|
|
||||||
kannst.
|
|
||||||
|
|
||||||
Und wenn du willst, kann ich dir auch gleich die SQLite-Zieltabelle dazu entwerfen, damit Excel und
|
|
||||||
Dashboard exakt zusammenpassen.
|
|
||||||
|
|
||||||
───
|
|
||||||
|
|
||||||
❯ kannst du python befehle ausführen, damit du das gesammelte Wissen in ein Softwareprojekt Ordner
|
|
||||||
unter bitcoin-programm, wo ich alles dokumentiere und das projekt lebt. Kann ich das bei mir
|
|
||||||
erstellen oder kann ich die Verwaltung dir überlassen auf gitea, ich kann dir token geben.
|
|
||||||
Automatische Deployments sind mit Github Runner auf dem TrueNAS oder auf dem VPS wo Hermes lebt
|
|
||||||
möglich. Tailscale Netzwerk ist schon vorhanden, damit das allen Nutzern im System klar ist. Ich kann
|
|
||||||
dann anfangen die Daten rauszusuchen und einzutragen, wenn ich soweit bin. Ich würde gerne auch eine
|
|
||||||
To Do liste mit Kalender haben, sodass ich an jeden Tag meine "Termine" habe, wie arbeiten halt.
|
|
||||||
Verbunden mit iCloud Kalender oder Google Calender.
|
|
||||||
|
|
||||||
▾ Todo (0/3) · incomplete · 3 still pending/in_progress
|
|
||||||
[>] Create an Excel-friendly BTC tracking template with future SQLite import compatibility
|
|
||||||
[ ] Decide local vs Gitea management workflow for bitcoin-program project
|
|
||||||
[ ] Design TODO/calendar integration with iCloud or Google Calendar
|
|
||||||
|
|
||||||
└─ ▾ Tool calls (4)
|
|
||||||
├─ ● Skill View("blackfrost-gitea") (0.2s)
|
|
||||||
├─ ● Skill View("hermes-agent") (0.2s)
|
|
||||||
├─ ● Skill View("github-repo-management") (0.2s)
|
|
||||||
└─ ● Todo("updating 3 task(s)") (0.0s)
|
|
||||||
|
|
||||||
┊ Ja — das geht, und das ist sogar ein sehr guter Weg.
|
|
||||||
|
|
||||||
Kurzantwort
|
|
||||||
|
|
||||||
• Ja, ich kann dir Python-basiert beim Aufbauen helfen
|
|
||||||
• Ja, wir können das als Projektordner bitcoin-programm sauber dokumentieren
|
|
||||||
• Ja, du kannst das auch selbst lokal erstellen
|
|
||||||
• Ja, Gitea-Verwaltung ist möglich
|
|
||||||
• Ja, du kannst mir dafür einen Token geben
|
|
||||||
• Ja, ein späterer Import nach SQLite ist sinnvoll
|
|
||||||
• Ja, Kalender + To-do ist gut machbar, inkl. iCloud oder Google Calendar
|
|
||||||
|
|
||||||
Meine Empfehlung
|
|
||||||
|
|
||||||
Für den Start würde ich es so aufziehen:
|
|
||||||
|
|
||||||
Phase 1: lokal auf deinem Rechner
|
|
||||||
|
|
||||||
• Projektordner bitcoin-programm
|
|
||||||
• Excel-Datei als Hauptdatenquelle
|
|
||||||
• Markdown-Doku für Regeln, Struktur, Felder, Workflows
|
|
||||||
• später Import nach SQLite
|
|
||||||
|
|
||||||
Phase 2: Git/Gitea als Versionsverwaltung
|
|
||||||
|
|
||||||
• wenn du willst, kann das Projekt in Gitea leben
|
|
||||||
• Dokumentation, Tabellenvorlagen, Skripte, später App-Code
|
|
||||||
• du behältst die Datenhoheit
|
|
||||||
• ich kann dir helfen, die Repo-Struktur zu definieren
|
|
||||||
|
|
||||||
Phase 3: Dashboard
|
|
||||||
|
|
||||||
• SQLite als Datenbasis
|
|
||||||
• lokales Dashboard
|
|
||||||
• später Import aus Excel/CSV
|
|
||||||
• Views für:
|
|
||||||
• Bestand
|
|
||||||
• Käufe
|
|
||||||
• Verkäufe
|
|
||||||
• Transfers
|
|
||||||
• Wertentwicklung
|
|
||||||
• offene Aufgaben / fehlende Daten
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Zu deinem Wunsch mit Kalender
|
|
||||||
|
|
||||||
Das ist sehr sinnvoll. Ich würde es trennen in:
|
|
||||||
|
|
||||||
A) To-do-Liste
|
|
||||||
|
|
||||||
Für alles, was du noch zusammentragen musst:
|
|
||||||
|
|
||||||
• Transaktionen suchen
|
|
||||||
• Wallet-Adressen sammeln
|
|
||||||
• Börsen-Exports ziehen
|
|
||||||
• Gebühren notieren
|
|
||||||
• TxIDs ergänzen
|
|
||||||
|
|
||||||
B) Kalender
|
|
||||||
|
|
||||||
Für wiederkehrende oder konkrete Termine:
|
|
||||||
|
|
||||||
• Datenpflege
|
|
||||||
• Monatsabschluss
|
|
||||||
• Steuer-Check
|
|
||||||
• Portfolio-Review
|
|
||||||
• Erinnerungen an fehlende Einträge
|
|
||||||
|
|
||||||
Integration möglich mit:
|
|
||||||
|
|
||||||
• Google Calendar
|
|
||||||
• iCloud Kalender
|
|
||||||
|
|
||||||
Wenn du willst, können wir später automatisch:
|
|
||||||
|
|
||||||
• Aufgaben aus einer Liste in Kalendertermine umwandeln
|
|
||||||
• oder Kalendereinträge als wiederkehrende Review-Termine erzeugen
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Wichtiger Punkt zu Tokens und Gitea
|
|
||||||
|
|
||||||
Du kannst mir Tokens geben, aber bitte nur, wenn wir das hier sauber und kontrolliert tun.
|
|
||||||
Wenn wir tatsächlich auf Gitea schreiben sollen, kann ich das machen — aber ich würde vorher genau
|
|
||||||
festlegen:
|
|
||||||
|
|
||||||
• welches Repo
|
|
||||||
• welche Dateien
|
|
||||||
• ob nur Dokumentation oder auch Code
|
|
||||||
• welche Rechte der Token hat
|
|
||||||
|
|
||||||
Zu den Deployments
|
|
||||||
|
|
||||||
Verstanden:
|
|
||||||
|
|
||||||
• GitHub Runner auf TrueNAS möglich
|
|
||||||
• VPS mit Hermes möglich
|
|
||||||
• Tailscale ist schon vorhanden
|
|
||||||
|
|
||||||
Das ist gut, weil wir damit später zwischen:
|
|
||||||
|
|
||||||
• lokalem Arbeiten
|
|
||||||
• automatischem Deploy
|
|
||||||
• Zugriff aus dem Heimnetz / Tailscale
|
|
||||||
• Repo-gestützter Dokumentation
|
|
||||||
|
|
||||||
sauber aufbauen können.
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Was ich dir als Nächstes vorschlage
|
|
||||||
|
|
||||||
Ich kann dir jetzt direkt eines von drei Dingen erstellen:
|
|
||||||
|
|
||||||
1. Projektstruktur für bitcoin-programm
|
|
||||||
• Ordner
|
|
||||||
• Dateien
|
|
||||||
• Doku-Aufbau
|
|
||||||
• Importpfad für SQLite
|
|
||||||
|
|
||||||
2. Excel-Vorlage als importfreundliches Schema
|
|
||||||
• Tabellenblätter
|
|
||||||
• Spalten
|
|
||||||
• Beispielzeilen
|
|
||||||
• Regeln für spätere Automatisierung
|
|
||||||
|
|
||||||
3. Konzept für To-do + Kalender
|
|
||||||
• welche Listen
|
|
||||||
• welche Kalenderkategorien
|
|
||||||
• Google/iCloud-Anbindung
|
|
||||||
• Erinnerungslogik
|
|
||||||
|
|
||||||
Wenn du willst, mache ich dir im nächsten Schritt direkt eine konkrete Projektstruktur für
|
|
||||||
bitcoin-programm mit Ordnernamen und Dateien, so dass du sofort loslegen kannst.
|
|
||||||
|
|
||||||
───
|
|
||||||
|
|
||||||
❯ Ja erstmal 1., dann 2., dann 3.
|
|
||||||
|
|
||||||
▾ Todo (0/3) · incomplete · 3 still pending/in_progress
|
|
||||||
[>] Create an Excel-friendly BTC tracking template with future SQLite import compatibility
|
|
||||||
[>] Define bitcoin-programm project structure and documentation layout
|
|
||||||
[ ] Design TODO/calendar integration with iCloud or Google Calendar
|
|
||||||
|
|
||||||
└─ ▾ Tool calls (1) ~6 tokens
|
|
||||||
└─ ● Todo("updating 3 task(s)") (0.0s)
|
|
||||||
|
|
||||||
┊ Alles klar — ich gehe der Reihe nach vor.
|
|
||||||
|
|
||||||
1) Projektstruktur für bitcoin-programm
|
|
||||||
|
|
||||||
Ich würde das Projekt so aufbauen, dass es einfach startbar, gut dokumentiert und später leicht
|
|
||||||
importierbar bleibt.
|
|
||||||
|
|
||||||
Empfohlene Ordnerstruktur
|
|
||||||
|
|
||||||
─ text
|
─ text
|
||||||
bitcoin-programm/
|
bitcoin-programm/
|
||||||
├─ README.md
|
├─ README.md
|
||||||
├─ docs/
|
├─ docs/
|
||||||
│ ├─ 00_overview.md
|
├─ data/
|
||||||
│ ├─ 01_data_model.md
|
├─ templates/
|
||||||
│ ├─ 02_excel_workflow.md
|
|
||||||
│ ├─ 03_sqlite_plan.md
|
|
||||||
│ ├─ 04_calendar_todo.md
|
|
||||||
│ └─ 05_import_rules.md
|
|
||||||
├─ data/
|
|
||||||
│ ├─ raw/
|
|
||||||
│ │ ├─ transactions/
|
|
||||||
│ │ ├─ exports/
|
|
||||||
│ │ └─ screenshots/
|
|
||||||
│ ├─ processed/
|
|
||||||
│ └─ backup/
|
|
||||||
├─ templates/
|
|
||||||
│ ├─ bitcoin_tracking_template.xlsx
|
|
||||||
│ ├─ transactions.csv
|
|
||||||
│ ├─ wallets.csv
|
|
||||||
│ └─ todo_calendar_template.csv
|
|
||||||
├─ scripts/
|
├─ scripts/
|
||||||
│ ├─ import_excel_to_sqlite.py
|
|
||||||
│ ├─ validate_transactions.py
|
|
||||||
│ ├─ normalize_wallets.py
|
|
||||||
│ └─ build_dashboard.py
|
|
||||||
├─ sqlite/
|
├─ sqlite/
|
||||||
│ ├─ schema.sql
|
├─ dashboard/
|
||||||
│ ├─ seed.sql
|
└─ notes/
|
||||||
│ └─ migrations/
|
|
||||||
├─ dashboard/
|
Datenprinzip
|
||||||
│ ├─ streamlit_app.py
|
|
||||||
│ └─ assets/
|
• Rohdaten werden getrennt von Verarbeitung gespeichert
|
||||||
└─ notes/
|
• CSV-Dateien dienen als einfache Austausch- und Importform
|
||||||
├─ decisions.md
|
• SQLite wird später als strukturierte Datenbasis genutzt
|
||||||
├─ open_questions.md
|
• Kalender- und To-do-Daten bleiben nachvollziehbar und versionierbar
|
||||||
└─ changelog.md
|
|
||||||
|
Bedienung
|
||||||
────────────────────────────────────
|
|
||||||
|
Geplant ist eine lokale Eingabemaske, mit der Einträge einfacher gepflegt werden können als direkt über CSV.
|
||||||
Was wohin gehört
|
|
||||||
|
Ziele der Maske:
|
||||||
README.md
|
|
||||||
|
• Pflichtfelder
|
||||||
Kurzer Einstieg:
|
• Dropdowns für feste Werte
|
||||||
|
• weniger Tippfehler
|
||||||
• was das Projekt ist
|
• saubere CSV-Ausgabe
|
||||||
• wie man es benutzt
|
• später einfache Anbindung an SQLite
|
||||||
• wie Excel, SQLite und Dashboard zusammenhängen
|
|
||||||
|
Langfristige Erweiterung
|
||||||
docs/
|
|
||||||
|
Später sollen möglich sein:
|
||||||
Hier dokumentierst du das Wissen:
|
|
||||||
|
• Kalender-Synchronisation
|
||||||
• Datenmodell
|
• Wiederholungen
|
||||||
• Arbeitsweise
|
• Erinnerungen
|
||||||
• Regeln für Transaktionen
|
• Dashboard-Ansicht
|
||||||
• Importregeln
|
• Bitcoin-Tracking
|
||||||
• Kalender-/To-do-Konzept
|
• Auswertung und Filter
|
||||||
|
|
||||||
data/raw/
|
Hinweise
|
||||||
|
|
||||||
Originaldaten, unverändert:
|
Dieses Repo ist bewusst schlank gehalten und wächst schrittweise mit den Anforderungen.
|
||||||
|
|
||||||
• Börsenexports
|
|
||||||
• Wallet-Exports
|
|
||||||
• Screenshots
|
|
||||||
• CSVs von Plattformen
|
|
||||||
|
|
||||||
data/processed/
|
|
||||||
|
|
||||||
Bereinigte Daten:
|
|
||||||
|
|
||||||
• vereinheitlichte CSVs
|
|
||||||
• transformierte Exporte
|
|
||||||
• validierte Datensätze
|
|
||||||
|
|
||||||
templates/
|
|
||||||
|
|
||||||
Vorlagen:
|
|
||||||
|
|
||||||
• Excel-Datei
|
|
||||||
• CSV-Vorlagen
|
|
||||||
• To-do-/Kalender-Templates
|
|
||||||
|
|
||||||
scripts/
|
|
||||||
|
|
||||||
Python-Skripte für:
|
|
||||||
|
|
||||||
• Import
|
|
||||||
• Validierung
|
|
||||||
• Normalisierung
|
|
||||||
• Dashboard-Aufbau
|
|
||||||
|
|
||||||
sqlite/
|
|
||||||
|
|
||||||
Alles rund um die spätere Datenbank:
|
|
||||||
|
|
||||||
• Schema
|
|
||||||
• Seed-Daten
|
|
||||||
• Migrationen
|
|
||||||
|
|
||||||
dashboard/
|
|
||||||
|
|
||||||
Später dein lokales UI:
|
|
||||||
|
|
||||||
• Streamlit oder anderes leichtes Frontend
|
|
||||||
• Charts
|
|
||||||
• Bestand
|
|
||||||
• Transaktionsliste
|
|
||||||
• Filter
|
|
||||||
|
|
||||||
notes/
|
|
||||||
|
|
||||||
Für laufende Entscheidungen:
|
|
||||||
|
|
||||||
• was wurde festgelegt
|
|
||||||
• was ist offen
|
|
||||||
• was ändert sich später
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
2) Excel-Vorlage
|
|
||||||
|
|
||||||
Die Excel-Datei sollte so aufgebaut sein, dass sie fast 1:1 als CSV in SQLite übernommen werden
|
|
||||||
kann.
|
|
||||||
|
|
||||||
Blatt 1: Transaktionen
|
|
||||||
|
|
||||||
Pflichtfelder:
|
|
||||||
|
|
||||||
• id
|
|
||||||
• datum_zeit
|
|
||||||
• typ
|
|
||||||
• asset
|
|
||||||
• menge
|
|
||||||
• preis_eur
|
|
||||||
• gebuehren_eur
|
|
||||||
• gesamtwert_eur
|
|
||||||
• plattform
|
|
||||||
• wallet_von
|
|
||||||
• wallet_zu
|
|
||||||
• txid
|
|
||||||
• notiz
|
|
||||||
|
|
||||||
Blatt 2: Wallets
|
|
||||||
|
|
||||||
• wallet_id
|
|
||||||
• name
|
|
||||||
• typ
|
|
||||||
• adresse
|
|
||||||
• notiz
|
|
||||||
|
|
||||||
Blatt 3: Todo
|
|
||||||
|
|
||||||
• id
|
|
||||||
• titel
|
|
||||||
• status
|
|
||||||
• faellig_am
|
|
||||||
• prioritaet
|
|
||||||
• notiz
|
|
||||||
|
|
||||||
Blatt 4: Kalender
|
|
||||||
|
|
||||||
• id
|
|
||||||
• datum
|
|
||||||
• uhrzeit
|
|
||||||
• titel
|
|
||||||
• kategorie
|
|
||||||
• wiederholung
|
|
||||||
• notiz
|
|
||||||
|
|
||||||
Blatt 5: Anleitung
|
|
||||||
|
|
||||||
Kurze Regeln:
|
|
||||||
|
|
||||||
• pro Zeile genau ein Vorgang
|
|
||||||
• Datumsformat immer gleich
|
|
||||||
• keine freien Mischfelder
|
|
||||||
• Transaktionen und Wallets getrennt halten
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
3) To-do + Kalender mit iCloud oder Google Calendar
|
|
||||||
|
|
||||||
Ich würde das in zwei Ebenen aufteilen:
|
|
||||||
|
|
||||||
Ebene A: interne Aufgabenliste
|
|
||||||
|
|
||||||
Für alles, was du selbst pflegst:
|
|
||||||
|
|
||||||
• Transaktionsdaten sammeln
|
|
||||||
• Wallets auflisten
|
|
||||||
• Börsenexports exportieren
|
|
||||||
• TxIDs ergänzen
|
|
||||||
• Gebühren prüfen
|
|
||||||
• doppelte Einträge bereinigen
|
|
||||||
|
|
||||||
Ebene B: Kalendertermine
|
|
||||||
|
|
||||||
Für alles, was zeitlich gebunden ist:
|
|
||||||
|
|
||||||
• Monatsreview
|
|
||||||
• Wochenreview
|
|
||||||
• Steuer-Check
|
|
||||||
• Datenpflege-Slot
|
|
||||||
• Kurs-/Portfolio-Review
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Integration mit Kalender
|
|
||||||
Option 1: Google Calendar
|
|
||||||
|
|
||||||
Gut für:
|
|
||||||
|
|
||||||
• einfache API-Anbindung
|
|
||||||
• später Automatisierung
|
|
||||||
• Sync auf vielen Geräten
|
|
||||||
|
|
||||||
Option 2: iCloud Kalender
|
|
||||||
|
|
||||||
Gut für:
|
|
||||||
|
|
||||||
• Apple-Ökosystem
|
|
||||||
• native Nutzung auf iPhone/Mac
|
|
||||||
• persönliche Termine
|
|
||||||
|
|
||||||
Empfehlung
|
|
||||||
|
|
||||||
Wenn du automatisieren willst, ist Google Calendar meist einfacher.
|
|
||||||
Wenn du primär Apple nutzt, kann iCloud sinnvoller sein.
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Mein Vorschlag für die Praxis
|
|
||||||
Phase 1
|
|
||||||
|
|
||||||
• Projektordner anlegen
|
|
||||||
• Excel-Vorlage erstellen
|
|
||||||
• Dokumentation starten
|
|
||||||
|
|
||||||
Phase 2
|
|
||||||
|
|
||||||
• erste Transaktionen sammeln
|
|
||||||
• To-dos eintragen
|
|
||||||
• Kalendertermine definieren
|
|
||||||
|
|
||||||
Phase 3
|
|
||||||
|
|
||||||
• SQLite-Schema aufsetzen
|
|
||||||
• Excel-Import bauen
|
|
||||||
• Dashboard starten
|
|
||||||
|
|
||||||
────────────────────────────────────
|
|
||||||
|
|
||||||
Wenn du willst, mache ich im nächsten Schritt direkt Punkt 2 als fertige Excel-Struktur zum Kopieren
|
|
||||||
— also mit konkreten Spaltennamen und Beispielzeilen für jedes Blatt.
|
|
||||||
|
|
||||||
· /copy
|
|
||||||
|
|
||||||
· sent OSC52 copy sequence (terminal support required)
|
|
||||||
|
|
||||||
· /copy
|
|
||||||
|
|
||||||
· sent OSC52 copy sequence (terminal support required)
|
|
||||||
|
|
||||||
|
|
||||||
─ ready │ gpt 5.4 mini none │ 40.6k/272k │ [██░░░░░░░░] 15% │ 1h 4m │ ✓ 17m 48s │ voice off ─ {"title
|
|
||||||
bitcoin-finanzen ❯
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
Überblick
|
||||||
|
|
||||||
|
Dieses Projekt ist ein lokales Arbeits- und Dokumentationsprojekt für persönliche Organisation.
|
||||||
|
|
||||||
|
Zweck
|
||||||
|
|
||||||
|
Das Projekt soll folgende Bereiche abdecken:
|
||||||
|
|
||||||
|
• To-dos
|
||||||
|
• Kalendertermine
|
||||||
|
• Projektdokumentation
|
||||||
|
• später Bitcoin-Tracking
|
||||||
|
• später SQLite-basierte Auswertung
|
||||||
|
|
||||||
|
Leitprinzipien
|
||||||
|
|
||||||
|
1. Daten sauber strukturieren
|
||||||
|
2. Eingaben einfach halten
|
||||||
|
3. CSV als Zwischenformat nutzbar machen
|
||||||
|
4. später SQL-Backend ergänzen
|
||||||
|
5. lokale Kontrolle behalten
|
||||||
|
|
||||||
|
Arbeitsweise
|
||||||
|
|
||||||
|
Es gibt zwei Ebenen:
|
||||||
|
|
||||||
|
1. Erfassung
|
||||||
|
|
||||||
|
Neue Einträge werden über eine Eingabemaske erfasst.
|
||||||
|
|
||||||
|
2. Speicherung
|
||||||
|
|
||||||
|
Die Daten werden in CSV abgelegt und später in SQLite überführt.
|
||||||
|
|
||||||
|
Zielbild
|
||||||
|
|
||||||
|
Am Ende soll das Projekt enthalten:
|
||||||
|
|
||||||
|
• eine einfache Eingabemaske
|
||||||
|
• eine saubere Dokumentation
|
||||||
|
• exportierbare Daten
|
||||||
|
• ein lokales Dashboard
|
||||||
|
• Kalenderanbindung
|
||||||
|
• To-do-Verwaltung
|
||||||
|
• später Bitcoin-Verwaltung
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
Der Fokus liegt aktuell auf Dokumentation, Kalender und To-do.
|
||||||
|
Bitcoin-Tracking wird später ergänzt.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
|
||||||
|
To-do- und Kalenderkonzept
|
||||||
|
|
||||||
|
Ziel
|
||||||
|
|
||||||
|
Dieses Projekt soll eine einfache Möglichkeit bieten, Aufgaben und Termine zentral zu erfassen.
|
||||||
|
|
||||||
|
To-do-Felder
|
||||||
|
|
||||||
|
Empfohlene Felder:
|
||||||
|
|
||||||
|
• id
|
||||||
|
• titel
|
||||||
|
• beschreibung
|
||||||
|
• kategorie
|
||||||
|
• prioritaet
|
||||||
|
• status
|
||||||
|
• faellig_am
|
||||||
|
• wiederholen
|
||||||
|
• notiz
|
||||||
|
|
||||||
|
Kalender-Felder
|
||||||
|
|
||||||
|
Empfohlene Felder:
|
||||||
|
|
||||||
|
• id
|
||||||
|
• titel
|
||||||
|
• datum
|
||||||
|
• uhrzeit
|
||||||
|
• dauer_min
|
||||||
|
• kalender
|
||||||
|
• kategorie
|
||||||
|
• erinnerung_min
|
||||||
|
• wiederholen
|
||||||
|
• notiz
|
||||||
|
|
||||||
|
Dropdown-Werte
|
||||||
|
|
||||||
|
Priorität
|
||||||
|
|
||||||
|
• Niedrig
|
||||||
|
• Mittel
|
||||||
|
• Hoch
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
• Offen
|
||||||
|
• In Arbeit
|
||||||
|
• Wartet
|
||||||
|
• Erledigt
|
||||||
|
|
||||||
|
Wiederholen
|
||||||
|
|
||||||
|
• Nein
|
||||||
|
• Täglich
|
||||||
|
• Wöchentlich
|
||||||
|
• Monatlich
|
||||||
|
|
||||||
|
Kalender
|
||||||
|
|
||||||
|
• Arbeit
|
||||||
|
• Privat
|
||||||
|
• Bitcoin
|
||||||
|
• Todo
|
||||||
|
|
||||||
|
Kategorie
|
||||||
|
|
||||||
|
• Allgemein
|
||||||
|
• Dokumentation
|
||||||
|
• Erinnerung
|
||||||
|
• Termin
|
||||||
|
• Aufgabe
|
||||||
|
• Sonstiges
|
||||||
|
|
||||||
|
Eingaberegeln
|
||||||
|
|
||||||
|
• Pflichtfelder müssen ausgefüllt sein
|
||||||
|
• freie Texte nur dort, wo sie sinnvoll sind
|
||||||
|
• Datum und Uhrzeit strikt getrennt
|
||||||
|
• Wiederholungen nur aus erlaubten Werten
|
||||||
|
• Kalenderziel muss auswählbar sein
|
||||||
|
|
||||||
|
Workflow
|
||||||
|
|
||||||
|
1. Eintrag über Maske anlegen
|
||||||
|
2. Daten als CSV speichern
|
||||||
|
3. später nach SQLite importieren
|
||||||
|
4. optional an Google Calendar oder iCloud übergeben
|
||||||
|
|
||||||
|
Ziel der Maske
|
||||||
|
|
||||||
|
Die Maske soll die Pflege einfacher machen als direkte CSV-Bearbeitung.
|
||||||
|
|
||||||
|
Spätere Erweiterung
|
||||||
|
|
||||||
|
• Filter
|
||||||
|
• Suchfunktion
|
||||||
|
• Wiederholungslogik
|
||||||
|
• Kalender-Sync
|
||||||
|
• Erinnerungen
|
||||||
|
• Dashboard-Auswertung
|
||||||
|
|||||||
@@ -0,0 +1,670 @@
|
|||||||
|
Ja — ich schreibe dir die Dateien. Vorher aber die wichtige Antwort zu deinem Token:
|
||||||
|
|
||||||
|
Wo du Gitea-Tokens sicher hinterlegst
|
||||||
|
|
||||||
|
Für Hermes gehört ein Gitea-Token nicht ins Repo, sondern in die profilbezogene .env oder in eine getrennte Secrets-Datei deines
|
||||||
|
Hermes-Profils.
|
||||||
|
|
||||||
|
Für dieses Profil
|
||||||
|
|
||||||
|
Dein aktives Profil ist:
|
||||||
|
/opt/data/profiles/bitcoin-finanzen/
|
||||||
|
|
||||||
|
Dort wäre der sichere Ort typischerweise:
|
||||||
|
|
||||||
|
• /opt/data/profiles/bitcoin-finanzen/.env
|
||||||
|
|
||||||
|
oder
|
||||||
|
|
||||||
|
• die von Hermes verwaltete Profile-Umgebung, falls dort schon ein Secret-Store aktiv ist
|
||||||
|
|
||||||
|
Wichtige Regel
|
||||||
|
|
||||||
|
• nicht ins Git-Repo committen
|
||||||
|
• nicht in README, Docs oder SQL-Dateien schreiben
|
||||||
|
• nicht im Chat lassen
|
||||||
|
|
||||||
|
Zu deiner Vermutung
|
||||||
|
|
||||||
|
Ja, es kann sein, dass bereits irgendwo ein Gitea-Token liegt — aber ich kann das nicht blind annehmen.
|
||||||
|
Wenn du willst, kann ich als Nächstes gezielt nachsehen, ob im aktiven Profil oder in der Hermes-Konfiguration bereits ein Token oder ein
|
||||||
|
Secret-Mechanismus existiert, und dir dann sagen, wo genau du ihn hinterlegen solltest.
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
Jetzt die Dateien
|
||||||
|
|
||||||
|
Unten sind die Texte, die ich dir für dein Repo vorschlage.
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
README.md
|
||||||
|
|
||||||
|
bitcoin-programm
|
||||||
|
|
||||||
|
Lokales Projekt zur strukturierten Erfassung und Verwaltung von:
|
||||||
|
|
||||||
|
• To-dos
|
||||||
|
• Kalendereinträgen
|
||||||
|
• Dokumentation
|
||||||
|
• später: Bitcoin-Transaktionen und Auswertungen
|
||||||
|
|
||||||
|
Ziel
|
||||||
|
|
||||||
|
Das Projekt dient als zentrales Arbeitsverzeichnis für persönliche Verwaltung und spätere Automatisierung.
|
||||||
|
|
||||||
|
Geplant ist:
|
||||||
|
|
||||||
|
• eine einfache Eingabemaske für To-dos und Kalendertermine
|
||||||
|
• CSV als einfache Zwischen- und Exportform
|
||||||
|
• später ein SQLite-Backend für Auswertung und Dashboard
|
||||||
|
• optional Sync mit Google Calendar oder iCloud Kalender
|
||||||
|
|
||||||
|
Aktueller Fokus
|
||||||
|
|
||||||
|
Der aktuelle Fokus liegt auf:
|
||||||
|
|
||||||
|
1. Dokumentation
|
||||||
|
2. To-do-Erfassung
|
||||||
|
3. Kalender-Erfassung
|
||||||
|
4. saubere Datenstruktur für späteren Import nach SQLite
|
||||||
|
|
||||||
|
Bitcoin-Tracking kann später ergänzt werden.
|
||||||
|
|
||||||
|
Projektstruktur
|
||||||
|
|
||||||
|
Empfohlene Struktur:
|
||||||
|
|
||||||
|
─ text
|
||||||
|
bitcoin-programm/
|
||||||
|
├─ README.md
|
||||||
|
├─ docs/
|
||||||
|
├─ data/
|
||||||
|
├─ templates/
|
||||||
|
├─ scripts/
|
||||||
|
├─ sqlite/
|
||||||
|
├─ dashboard/
|
||||||
|
└─ notes/
|
||||||
|
|
||||||
|
Datenprinzip
|
||||||
|
|
||||||
|
• Rohdaten werden getrennt von Verarbeitung gespeichert
|
||||||
|
• CSV-Dateien dienen als einfache Austausch- und Importform
|
||||||
|
• SQLite wird später als strukturierte Datenbasis genutzt
|
||||||
|
• Kalender- und To-do-Daten bleiben nachvollziehbar und versionierbar
|
||||||
|
|
||||||
|
Bedienung
|
||||||
|
|
||||||
|
Geplant ist eine lokale Eingabemaske, mit der Einträge einfacher gepflegt werden können als direkt über CSV.
|
||||||
|
|
||||||
|
Ziele der Maske:
|
||||||
|
|
||||||
|
• Pflichtfelder
|
||||||
|
• Dropdowns für feste Werte
|
||||||
|
• weniger Tippfehler
|
||||||
|
• saubere CSV-Ausgabe
|
||||||
|
• später einfache Anbindung an SQLite
|
||||||
|
|
||||||
|
Langfristige Erweiterung
|
||||||
|
|
||||||
|
Später sollen möglich sein:
|
||||||
|
|
||||||
|
• Kalender-Synchronisation
|
||||||
|
• Wiederholungen
|
||||||
|
• Erinnerungen
|
||||||
|
• Dashboard-Ansicht
|
||||||
|
• Bitcoin-Tracking
|
||||||
|
• Auswertung und Filter
|
||||||
|
|
||||||
|
Hinweise
|
||||||
|
|
||||||
|
Dieses Repo ist bewusst schlank gehalten und wächst schrittweise mit den Anforderungen.
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
docs/00_overview.md
|
||||||
|
|
||||||
|
Überblick
|
||||||
|
|
||||||
|
Dieses Projekt ist ein lokales Arbeits- und Dokumentationsprojekt für persönliche Organisation.
|
||||||
|
|
||||||
|
Zweck
|
||||||
|
|
||||||
|
Das Projekt soll folgende Bereiche abdecken:
|
||||||
|
|
||||||
|
• To-dos
|
||||||
|
• Kalendertermine
|
||||||
|
• Projektdokumentation
|
||||||
|
• später Bitcoin-Tracking
|
||||||
|
• später SQLite-basierte Auswertung
|
||||||
|
|
||||||
|
Leitprinzipien
|
||||||
|
|
||||||
|
1. Daten sauber strukturieren
|
||||||
|
2. Eingaben einfach halten
|
||||||
|
3. CSV als Zwischenformat nutzbar machen
|
||||||
|
4. später SQL-Backend ergänzen
|
||||||
|
5. lokale Kontrolle behalten
|
||||||
|
|
||||||
|
Arbeitsweise
|
||||||
|
|
||||||
|
Es gibt zwei Ebenen:
|
||||||
|
|
||||||
|
1. Erfassung
|
||||||
|
|
||||||
|
Neue Einträge werden über eine Eingabemaske erfasst.
|
||||||
|
|
||||||
|
2. Speicherung
|
||||||
|
|
||||||
|
Die Daten werden in CSV abgelegt und später in SQLite überführt.
|
||||||
|
|
||||||
|
Zielbild
|
||||||
|
|
||||||
|
Am Ende soll das Projekt enthalten:
|
||||||
|
|
||||||
|
• eine einfache Eingabemaske
|
||||||
|
• eine saubere Dokumentation
|
||||||
|
• exportierbare Daten
|
||||||
|
• ein lokales Dashboard
|
||||||
|
• Kalenderanbindung
|
||||||
|
• To-do-Verwaltung
|
||||||
|
• später Bitcoin-Verwaltung
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
Der Fokus liegt aktuell auf Dokumentation, Kalender und To-do.
|
||||||
|
Bitcoin-Tracking wird später ergänzt.
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
docs/01_requirements.md
|
||||||
|
|
||||||
|
Anforderungen
|
||||||
|
|
||||||
|
Hauptziel
|
||||||
|
|
||||||
|
Das Projekt soll eine einfache und verlässliche Verwaltung von To-dos und Kalenderterminen ermöglichen.
|
||||||
|
|
||||||
|
Funktionale Anforderungen
|
||||||
|
|
||||||
|
To-dos
|
||||||
|
|
||||||
|
• To-dos sollen über eine Eingabemaske erfasst werden
|
||||||
|
• Pflichtfelder müssen vorhanden sein
|
||||||
|
• feste Werte sollen per Dropdown gewählt werden
|
||||||
|
• die Daten sollen als CSV exportierbar sein
|
||||||
|
|
||||||
|
Kalender
|
||||||
|
|
||||||
|
• Kalendertermine sollen über eine Eingabemaske erfasst werden
|
||||||
|
• Datum und Uhrzeit müssen wählbar sein
|
||||||
|
• Terminarten sollen per Dropdown auswählbar sein
|
||||||
|
• Wiederholungen sollen unterstützt werden
|
||||||
|
• Erinnerungen sollen vorbereitet sein
|
||||||
|
|
||||||
|
docs/01_requirements.md
|
||||||
|
|
||||||
|
Anforderungen
|
||||||
|
|
||||||
|
Hauptziel
|
||||||
|
|
||||||
|
Das Projekt soll eine einfache und verlässliche Verwaltung von To-dos und Kalenderterminen ermöglichen.
|
||||||
|
|
||||||
|
Funktionale Anforderungen
|
||||||
|
|
||||||
|
To-dos
|
||||||
|
|
||||||
|
• To-dos sollen über eine Eingabemaske erfasst werden
|
||||||
|
• Pflichtfelder müssen vorhanden sein
|
||||||
|
• feste Werte sollen per Dropdown gewählt werden
|
||||||
|
• die Daten sollen als CSV exportierbar sein
|
||||||
|
|
||||||
|
Kalender
|
||||||
|
|
||||||
|
• Kalendertermine sollen über eine Eingabemaske erfasst werden
|
||||||
|
• Datum und Uhrzeit müssen wählbar sein
|
||||||
|
• Terminarten sollen per Dropdown auswählbar sein
|
||||||
|
• Wiederholungen sollen unterstützt werden
|
||||||
|
• Erinnerungen sollen vorbereitet sein
|
||||||
|
|
||||||
|
Datenhaltung
|
||||||
|
|
||||||
|
• CSV als Zwischenspeicher
|
||||||
|
• später SQLite als Datenbasis
|
||||||
|
• klare Trennung von Rohdaten und verarbeiteten Daten
|
||||||
|
|
||||||
|
Nicht-funktionale Anforderungen
|
||||||
|
|
||||||
|
• lokale Nutzung ohne Cloud-Zwang
|
||||||
|
• später synchronisierbar mit Google Calendar oder iCloud
|
||||||
|
• leicht verständlich und wartbar
|
||||||
|
• importfreundlich für SQLite
|
||||||
|
• dokumentierbar und versionierbar
|
||||||
|
|
||||||
|
UI-Anforderungen
|
||||||
|
|
||||||
|
Die Eingabemaske soll enthalten:
|
||||||
|
|
||||||
|
• Pflichtfelder
|
||||||
|
• Dropdowns
|
||||||
|
• Datumsauswahl
|
||||||
|
• Uhrzeitauswahl
|
||||||
|
• Textfelder für Notizen
|
||||||
|
• klare Trennung zwischen To-do und Kalender
|
||||||
|
|
||||||
|
Datenqualität
|
||||||
|
|
||||||
|
• einheitliche Schreibweisen
|
||||||
|
• feste Statuswerte
|
||||||
|
• saubere Datumsformate
|
||||||
|
• keine freien Sonderformate in Pflichtfeldern
|
||||||
|
• keine Mischfelder für unterschiedliche Datentypen
|
||||||
|
|
||||||
|
Priorität
|
||||||
|
|
||||||
|
Aktuell ist Priorität:
|
||||||
|
|
||||||
|
1. Dokumentation
|
||||||
|
2. To-do
|
||||||
|
3. Kalender
|
||||||
|
4. Eingabemaske
|
||||||
|
5. SQLite
|
||||||
|
6. Sync
|
||||||
|
7. spätere Erweiterungen
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
docs/02_todo_calendar.md
|
||||||
|
|
||||||
|
To-do- und Kalenderkonzept
|
||||||
|
|
||||||
|
Ziel
|
||||||
|
|
||||||
|
Dieses Projekt soll eine einfache Möglichkeit bieten, Aufgaben und Termine zentral zu erfassen.
|
||||||
|
|
||||||
|
To-do-Felder
|
||||||
|
|
||||||
|
Empfohlene Felder:
|
||||||
|
|
||||||
|
• id
|
||||||
|
• titel
|
||||||
|
• beschreibung
|
||||||
|
• kategorie
|
||||||
|
• prioritaet
|
||||||
|
• status
|
||||||
|
• faellig_am
|
||||||
|
• wiederholen
|
||||||
|
• notiz
|
||||||
|
|
||||||
|
Kalender-Felder
|
||||||
|
|
||||||
|
Empfohlene Felder:
|
||||||
|
|
||||||
|
• id
|
||||||
|
• titel
|
||||||
|
• datum
|
||||||
|
• uhrzeit
|
||||||
|
• dauer_min
|
||||||
|
• kalender
|
||||||
|
• kategorie
|
||||||
|
• erinnerung_min
|
||||||
|
• wiederholen
|
||||||
|
• notiz
|
||||||
|
|
||||||
|
Dropdown-Werte
|
||||||
|
|
||||||
|
Priorität
|
||||||
|
|
||||||
|
• Niedrig
|
||||||
|
• Mittel
|
||||||
|
• Hoch
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
• Offen
|
||||||
|
• In Arbeit
|
||||||
|
• Wartet
|
||||||
|
• Erledigt
|
||||||
|
|
||||||
|
Wiederholen
|
||||||
|
|
||||||
|
• Nein
|
||||||
|
• Täglich
|
||||||
|
• Wöchentlich
|
||||||
|
• Monatlich
|
||||||
|
|
||||||
|
Kalender
|
||||||
|
|
||||||
|
• Arbeit
|
||||||
|
• Privat
|
||||||
|
• Bitcoin
|
||||||
|
• Todo
|
||||||
|
|
||||||
|
Kategorie
|
||||||
|
|
||||||
|
• Allgemein
|
||||||
|
• Dokumentation
|
||||||
|
• Erinnerung
|
||||||
|
• Termin
|
||||||
|
• Aufgabe
|
||||||
|
• Sonstiges
|
||||||
|
|
||||||
|
Eingaberegeln
|
||||||
|
|
||||||
|
• Pflichtfelder müssen ausgefüllt sein
|
||||||
|
• freie Texte nur dort, wo sie sinnvoll sind
|
||||||
|
• Datum und Uhrzeit strikt getrennt
|
||||||
|
• Wiederholungen nur aus erlaubten Werten
|
||||||
|
• Kalenderziel muss auswählbar sein
|
||||||
|
|
||||||
|
Workflow
|
||||||
|
|
||||||
|
1. Eintrag über Maske anlegen
|
||||||
|
2. Daten als CSV speichern
|
||||||
|
3. später nach SQLite importieren
|
||||||
|
4. optional an Google Calendar oder iCloud übergeben
|
||||||
|
|
||||||
|
Ziel der Maske
|
||||||
|
|
||||||
|
Die Maske soll die Pflege einfacher machen als direkte CSV-Bearbeitung.
|
||||||
|
|
||||||
|
Spätere Erweiterung
|
||||||
|
|
||||||
|
• Filter
|
||||||
|
• Suchfunktion
|
||||||
|
• Wiederholungslogik
|
||||||
|
• Kalender-Sync
|
||||||
|
• Erinnerungen
|
||||||
|
• Dashboard-Auswertung
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
|
||||||
|
on
|
||||||
|
• Wiederholungen
|
||||||
|
• Erinnerungen
|
||||||
|
• Dashboard-Ansicht
|
||||||
|
• Bitcoin-Tracking
|
||||||
|
• Auswertung und Filter
|
||||||
|
|
||||||
|
Hinweise
|
||||||
|
|
||||||
|
Dieses Repo ist bewusst schlank gehalten und wächst schrittweise mit den Anforderungen.
|
||||||
|
|
||||||
|
---
|
||||||
|
## `docs/00_overview.md`
|
||||||
|
```md
|
||||||
|
# Überblick
|
||||||
|
Dieses Projekt ist ein lokales Arbeits- und Dokumentationsprojekt für persönliche Organisation.
|
||||||
|
## Zweck
|
||||||
|
Das Projekt soll folgende Bereiche abdecken:
|
||||||
|
- To-dos
|
||||||
|
- Kalendertermine
|
||||||
|
- Projektdokumentation
|
||||||
|
- später Bitcoin-Tracking
|
||||||
|
- später SQLite-basierte Auswertung
|
||||||
|
## Leitprinzipien
|
||||||
|
1. Daten sauber strukturieren
|
||||||
|
2. Eingaben einfach halten
|
||||||
|
3. CSV als Zwischenformat nutzbar machen
|
||||||
|
4. später SQL-Backend ergänzen
|
||||||
|
5. lokale Kontrolle behalten
|
||||||
|
## Arbeitsweise
|
||||||
|
Es gibt zwei Ebenen:
|
||||||
|
### 1. Erfassung
|
||||||
|
Neue Einträge werden über eine Eingabemaske erfasst.
|
||||||
|
### 2. Speicherung
|
||||||
|
Die Daten werden in CSV abgelegt und später in SQLite überführt.
|
||||||
|
## Zielbild
|
||||||
|
Am Ende soll das Projekt enthalten:
|
||||||
|
- eine einfache Eingabemaske
|
||||||
|
- eine saubere Dokumentation
|
||||||
|
- exportierbare Daten
|
||||||
|
- ein lokales Dashboard
|
||||||
|
- Kalenderanbindung
|
||||||
|
- To-do-Verwaltung
|
||||||
|
- später Bitcoin-Verwaltung
|
||||||
|
## Status
|
||||||
|
Der Fokus liegt aktuell auf Dokumentation, Kalender und To-do.
|
||||||
|
Bitcoin-Tracking wird später ergänzt.
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
docs/01_requirements.md
|
||||||
|
|
||||||
|
Anforderungen
|
||||||
|
|
||||||
|
Hauptziel
|
||||||
|
|
||||||
|
Das Projekt soll eine einfache und verlässliche Verwaltung von To-dos und Kalenderterminen ermöglichen.
|
||||||
|
|
||||||
|
Funktionale Anforderungen
|
||||||
|
|
||||||
|
To-dos
|
||||||
|
|
||||||
|
• To-dos sollen über eine Eingabemaske erfasst werden
|
||||||
|
• Pflichtfelder müssen vorhanden sein
|
||||||
|
• feste Werte sollen per Dropdown gewählt werden
|
||||||
|
• die Daten sollen als CSV exportierbar sein
|
||||||
|
|
||||||
|
Kalender
|
||||||
|
|
||||||
|
• Kalendertermine sollen über eine Eingabemaske erfasst werden
|
||||||
|
• Datum und Uhrzeit müssen wählbar sein
|
||||||
|
• Terminarten sollen per Dropdown auswählbar sein
|
||||||
|
• Wiederholungen sollen unterstützt werden
|
||||||
|
• Erinnerungen sollen vorbereitet sein
|
||||||
|
|
||||||
|
Datenhaltung
|
||||||
|
|
||||||
|
• CSV als Zwischenspeicher
|
||||||
|
• später SQLite als Datenbasis
|
||||||
|
• klare Trennung von Rohdaten und verarbeiteten Daten
|
||||||
|
|
||||||
|
Nicht-funktionale Anforderungen
|
||||||
|
|
||||||
|
• lokale Nutzung ohne Cloud-Zwang
|
||||||
|
• später synchronisierbar mit Google Calendar oder iCloud
|
||||||
|
• leicht verständlich und wartbar
|
||||||
|
• importfreundlich für SQLite
|
||||||
|
• dokumentierbar und versionierbar
|
||||||
|
|
||||||
|
UI-Anforderungen
|
||||||
|
|
||||||
|
Die Eingabemaske soll enthalten:
|
||||||
|
|
||||||
|
• Pflichtfelder
|
||||||
|
• Dropdowns
|
||||||
|
• Datumsauswahl
|
||||||
|
• Uhrzeitauswahl
|
||||||
|
• Textfelder für Notizen
|
||||||
|
• klare Trennung zwischen To-do und Kalender
|
||||||
|
|
||||||
|
Datenqualität
|
||||||
|
|
||||||
|
• einheitliche Schreibweisen
|
||||||
|
• feste Statuswerte
|
||||||
|
• saubere Datumsformate
|
||||||
|
• keine freien Sonderformate in Pflichtfeldern
|
||||||
|
• keine Mischfelder für unterschiedliche Datentypen
|
||||||
|
|
||||||
|
Priorität
|
||||||
|
|
||||||
|
Aktuell ist Priorität:
|
||||||
|
|
||||||
|
1. Dokumentation
|
||||||
|
2. To-do
|
||||||
|
3. Kalender
|
||||||
|
4. Eingabemaske
|
||||||
|
5. SQLite
|
||||||
|
6. Sync
|
||||||
|
7. spätere Erweiterungen
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
docs/02_todo_calendar.md
|
||||||
|
|
||||||
|
To-do- und Kalenderkonzept
|
||||||
|
|
||||||
|
Ziel
|
||||||
|
|
||||||
|
Dieses Projekt soll eine einfache Möglichkeit bieten, Aufgaben und Termine zentral zu erfassen.
|
||||||
|
|
||||||
|
To-do-Felder
|
||||||
|
|
||||||
|
Empfohlene Felder:
|
||||||
|
|
||||||
|
• id
|
||||||
|
• titel
|
||||||
|
• beschreibung
|
||||||
|
• kategorie
|
||||||
|
• prioritaet
|
||||||
|
• status
|
||||||
|
• faellig_am
|
||||||
|
• wiederholen
|
||||||
|
• notiz
|
||||||
|
|
||||||
|
Kalender-Felder
|
||||||
|
|
||||||
|
Empfohlene Felder:
|
||||||
|
|
||||||
|
• id
|
||||||
|
• titel
|
||||||
|
• datum
|
||||||
|
• uhrzeit
|
||||||
|
• dauer_min
|
||||||
|
• kalender
|
||||||
|
• kategorie
|
||||||
|
• erinnerung_min
|
||||||
|
• wiederholen
|
||||||
|
• notiz
|
||||||
|
|
||||||
|
Dropdown-Werte
|
||||||
|
|
||||||
|
Priorität
|
||||||
|
|
||||||
|
• Niedrig
|
||||||
|
• Mittel
|
||||||
|
• Hoch
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
• Offen
|
||||||
|
• In Arbeit
|
||||||
|
• Wartet
|
||||||
|
• Erledigt
|
||||||
|
|
||||||
|
Wiederholen
|
||||||
|
|
||||||
|
• Nein
|
||||||
|
• Täglich
|
||||||
|
• Wöchentlich
|
||||||
|
• Monatlich
|
||||||
|
|
||||||
|
Kalender
|
||||||
|
|
||||||
|
• Arbeit
|
||||||
|
• Privat
|
||||||
|
• Bitcoin
|
||||||
|
• Todo
|
||||||
|
|
||||||
|
Kategorie
|
||||||
|
|
||||||
|
• Allgemein
|
||||||
|
• Dokumentation
|
||||||
|
• Erinnerung
|
||||||
|
• Termin
|
||||||
|
• Aufgabe
|
||||||
|
• Sonstiges
|
||||||
|
|
||||||
|
Eingaberegeln
|
||||||
|
|
||||||
|
• Pflichtfelder müssen ausgefüllt sein
|
||||||
|
• freie Texte nur dort, wo sie sinnvoll sind
|
||||||
|
• Datum und Uhrzeit strikt getrennt
|
||||||
|
• Wiederholungen nur aus erlaubten Werten
|
||||||
|
• Kalenderziel muss auswählbar sein
|
||||||
|
|
||||||
|
Workflow
|
||||||
|
|
||||||
|
1. Eintrag über Maske anlegen
|
||||||
|
2. Daten als CSV speichern
|
||||||
|
3. später nach SQLite importieren
|
||||||
|
4. optional an Google Calendar oder iCloud übergeben
|
||||||
|
|
||||||
|
Ziel der Maske
|
||||||
|
|
||||||
|
Die Maske soll die Pflege einfacher machen als direkte CSV-Bearbeitung.
|
||||||
|
|
||||||
|
Spätere Erweiterung
|
||||||
|
|
||||||
|
• Filter
|
||||||
|
• Suchfunktion
|
||||||
|
• Wiederholungslogik
|
||||||
|
• Kalender-Sync
|
||||||
|
• Erinnerungen
|
||||||
|
• Dashboard-Auswertung
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
sqlite/schema.sql
|
||||||
|
|
||||||
|
─ sql
|
||||||
|
PRAGMA foreign_keys = ON;
|
||||||
|
CREATE TABLE IF NOT EXISTS todo (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
titel TEXT NOT NULL,
|
||||||
|
beschreibung TEXT,
|
||||||
|
kategorie TEXT NOT NULL DEFAULT 'Allgemein',
|
||||||
|
prioritaet TEXT NOT NULL DEFAULT 'Mittel',
|
||||||
|
status TEXT NOT NULL DEFAULT 'Offen',
|
||||||
|
faellig_am TEXT,
|
||||||
|
wiederholen TEXT NOT NULL DEFAULT 'Nein',
|
||||||
|
notiz TEXT,
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||||
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS calendar_event (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
titel TEXT NOT NULL,
|
||||||
|
datum TEXT NOT NULL,
|
||||||
|
uhrzeit TEXT NOT NULL,
|
||||||
|
dauer_min INTEGER NOT NULL DEFAULT 60,
|
||||||
|
kalender TEXT NOT NULL DEFAULT 'Privat',
|
||||||
|
kategorie TEXT NOT NULL DEFAULT 'Sonstiges',
|
||||||
|
erinnerung_min INTEGER NOT NULL DEFAULT 30,
|
||||||
|
wiederholen TEXT NOT NULL DEFAULT 'Nein',
|
||||||
|
notiz TEXT,
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||||
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS settings (
|
||||||
|
key TEXT PRIMARY KEY,
|
||||||
|
value TEXT NOT NULL
|
||||||
|
);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_todo_faellig_am ON todo(faellig_am);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_todo_status ON todo(status);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_calendar_event_datum ON calendar_event(datum);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_calendar_event_kalender ON calendar_event(kalender);
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
Zur Gitea-Token-Frage nochmal konkret
|
||||||
|
|
||||||
|
Wenn du willst, sollten wir den Token nicht im Repo und auch nicht in normalen Projektdateien speichern, sondern in einem Profil-Secret.
|
||||||
|
|
||||||
|
Wahrscheinlich sinnvoll:
|
||||||
|
|
||||||
|
• Hermes-Profil .env
|
||||||
|
• oder ein lokales Secret-File im Profil
|
||||||
|
• anschließend Zugriff nur über die Shell-Umgebung
|
||||||
|
|
||||||
|
Wenn du möchtest, kann ich als Nächstes:
|
||||||
|
|
||||||
|
1. prüfen, ob es in diesem Profil schon einen Gitea-Token gibt
|
||||||
|
2. dir sagen, wo du ihn sauber ablegen kannst
|
||||||
|
3. dann das Repo-Layout auf Gitea aktualisieren
|
||||||
|
|
||||||
|
────────────────────────────────────
|
||||||
|
|
||||||
|
Nächster sinnvoller Schritt
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
─ sql
|
||||||
|
PRAGMA foreign_keys = ON;
|
||||||
|
CREATE TABLE IF NOT EXISTS todo (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
titel TEXT NOT NULL,
|
||||||
|
beschreibung TEXT,
|
||||||
|
kategorie TEXT NOT NULL DEFAULT 'Allgemein',
|
||||||
|
prioritaet TEXT NOT NULL DEFAULT 'Mittel',
|
||||||
|
status TEXT NOT NULL DEFAULT 'Offen',
|
||||||
|
faellig_am TEXT,
|
||||||
|
wiederholen TEXT NOT NULL DEFAULT 'Nein',
|
||||||
|
notiz TEXT,
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||||
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS calendar_event (
|
||||||
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
|
titel TEXT NOT NULL,
|
||||||
|
datum TEXT NOT NULL,
|
||||||
|
uhrzeit TEXT NOT NULL,
|
||||||
|
dauer_min INTEGER NOT NULL DEFAULT 60,
|
||||||
|
kalender TEXT NOT NULL DEFAULT 'Privat',
|
||||||
|
kategorie TEXT NOT NULL DEFAULT 'Sonstiges',
|
||||||
|
erinnerung_min INTEGER NOT NULL DEFAULT 30,
|
||||||
|
wiederholen TEXT NOT NULL DEFAULT 'Nein',
|
||||||
|
notiz TEXT,
|
||||||
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
||||||
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
||||||
|
);
|
||||||
|
CREATE TABLE IF NOT EXISTS settings (
|
||||||
|
key TEXT PRIMARY KEY,
|
||||||
|
value TEXT NOT NULL
|
||||||
|
);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_todo_faellig_am ON todo(faellig_am);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_todo_status ON todo(status);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_calendar_event_datum ON calendar_event(datum);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_calendar_event_kalender ON calendar_event(kalender);
|
||||||
|
|||||||
Reference in New Issue
Block a user