# đŸ€ MischCRM - Personal Relationship Manager Willkommen bei **MischCRM**, deinem eleganten, privaten und vollautomatisierten Beziehungsmanager (Personal CRM). Diese Anwendung wurde entwickelt, um lose Textnotizen (z. B. aus Obsidian) durch eine intuitive, saubere Web-OberflĂ€che zu ersetzen, mit der du deine Freundschaften, gemeinsamen Treffen, offenen GesprĂ€chsthemen und Meilensteine mĂŒhelos verwalten kannst. Das gesamte System lĂ€uft **vollstĂ€ndig lokal und privat** ohne externe Tracker oder Cloud-Dienste auf deinem Server (z. B. MischNAS). --- ## ✹ Features * **Premium Glassmorphism Dark Theme**: Ein luxuriöses, modernes Interface mit Outfits-Schriftart, Radial-Glows, UnschĂ€rfe-Effekten (`backdrop-filter`) und flĂŒssigen Mikro-Animationen. * **Interaktives Ehre-Rating**: Ein dynamisches Ehre-ZĂ€hler-Modul (+/- Buttons) direkt auf den Profilkarten und im Detailbereich mit spĂŒrbarem UI-Feedback. * **Schnell-Log fĂŒr Treffen**: Trage mit wenigen Klicks Treffen direkt vom Dashboard oder aus einem Freundesprofil ein (AktivitĂ€t, Stimmung/Vibe, detaillierte GesprĂ€chsnotizen). * **"Lange nicht gesehen"-Warner**: Eine automatische Liste auf dem Dashboard, die Freunde nach dem Datum des letzten Treffens sortiert und dich warnt, wenn du dich lĂ€nger nicht gemeldet hast. * **Geburtstags-Tabelle**: Zeigt anstehende Geburtstage in den nĂ€chsten 30 Tagen an, berechnet die Tage bis zum Geburtstag und das neue Lebensalter. * **Dinge zum Ansprechen (GesprĂ€chsthemen-Checkliste)**: Verwalte offene Fragen, D&D-Ideen oder Themen fĂŒr das nĂ€chste Treffen direkt auf dem Profil des Freundes. * **Obsidian Markdown Import**: Ein intelligenter Parser, der Obsidian `.md`-Notizen einliest, YAML-Frontmatter und Überschriften analysiert und die Profildaten direkt in die SQLite-Datenbank ĂŒberfĂŒhrt. * **Dockerized Deployment**: Perfekt vorbereitet fĂŒr das einfache Hosting auf deinem `MischNAS` mittels Docker und Docker Compose. --- ## 🚀 Lokale Installation & Entwicklung ### Voraussetzungen * **Node.js** (v18 oder neuer) * **npm** oder **pnpm** ### Setup 1. Installiere die AbhĂ€ngigkeiten im CRM-Verzeichnis: ```bash npm install ``` 2. Starte den Server im Entwicklungsmodus (mit automatischem Reload bei CodeĂ€nderungen): ```bash npm run dev ``` Der Server lĂ€uft nun auf [http://localhost:8085](http://localhost:8085). --- ## 🐳 Bereitstellung mit Docker (MischNAS) MischCRM lĂ€sst sich mit einem einzigen Befehl per Docker Compose deployen. ### Starten FĂŒhre folgenden Befehl im Verzeichnis aus, in dem sich die `docker-compose.yml` befindet: ```bash docker compose up -d ``` Die Anwendung ist anschließend unter **[http://localhost:38090](http://localhost:38090)** erreichbar (Port `38090` auf dem Host wird auf Port `8085` im Container weitergeleitet). ### đŸ’Ÿ Daten-Persistenz & Backups Das CRM verwendet **SQLite** zur Datenhaltung. Die Datenbankdatei `crm.db` wird im Host-Ordner `./data/` abgelegt, welcher in den Container gemountet wird (`/app/data`). * **Kein Datenverlust**: Selbst wenn der Container gelöscht, geupdatet oder neu gebaut wird, bleiben alle deine Freunde, Treffen und Notizen in `./data/crm.db` sicher auf deinem Host-System gespeichert. * **Einfache Backups**: Sichere einfach die Datei `./data/crm.db`, um ein vollstĂ€ndiges Backup deines CRMs zu erstellen. --- ## 📂 Obsidian Import Guide Du kannst bestehende Markdown-Notizen aus deinem Obsidian-Vault direkt in MischCRM importieren. Kopiere dazu einfach den gesamten Text der Notiz in das Feld unter dem Tab **Obsidian Import**. ### UnterstĂŒtzte Markdown-Struktur: Der Parser ist optimiert auf folgende Struktur (siehe z. B. dein Notizenformat fĂŒr *Aaron Lingel*): ```markdown --- tags: - Freund --- ## Allgemeines - Name: Aaron Lingel - Geburtstag: 13.08.1999 - Kontakt: +49 172 1821612 - Wohnort: Am schlaggraben 18, 71272 renningen - Beziehungsstatus: FOREVER ALONE (aber hat mich) - Familie: Mama Lingel und Papa Africano - Ehre: +32 ## Aktuelle Lebenssituation - Arbeit/Studium: Studium / Arbeit - Hobbys/Interessen: Ehrenbruder sein, D&D, Gaming Auf der Suche nach neuen Abenteuern. ## Persönliche Meilensteine - Hat ein stabiles Freundschaftsprofil bekommen - Neue Wohnung bezogen ## Random Infos - Lieblingsessen/-getrĂ€nk: Pizza, KaltgetrĂ€nke - Sonstige Infos: Bester Kumpel. Immer am Start. ``` ### So funktioniert der Import: 1. Der Parser extrahiert den Namen aus dem Dateinamen oder dem Feld `Name:` unter `## Allgemeines`. 2. Geburtstage im Format `DD.MM.YYYY` werden automatisch in das Standardformat `YYYY-MM-DD` konvertiert. 3. Der ZĂ€hler fĂŒr **Ehre** (z. B. `+32`) wird extrahiert und als Startwert festgelegt. 4. Alle Unterabschnitte werden den entsprechenden Datenbankspalten zugeordnet. 5. Nach dem Import kannst du direkt per Klick auf das neu erstellte CRM-Profil springen! --- ## đŸ› ïž Technologien * **Backend**: Node.js, Express.js, SQLite (`sqlite3`) * **Frontend**: Vanilla HTML5, CSS3 (luxuriöse HSL-Variablen, Backdrop-Filter), Vanilla JavaScript (SPA, state-driven rendering) * **Icons**: Lucide Icons (per CDN geladen)