Fujimod
Try your camera firmware in the browser and build Fujimod SD boot files.
Paare speichern gemeinsame Erinnerungen, Fotos und Meilensteine in einem interaktiven Baum
Translation pending
AI summary · website and README
LifestylePython · HTMLGitHub @User420-bitOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Euer privates digitales Erinnerungsbuch — eine Web-App für Paare, um gemeinsame Erinnerungen, Fotos und Meilensteine festzuhalten, visualisiert als wachsender interaktiver Baum. Die App ist nach Paaren getrennt: jedes Paar hat seine eigenen Erinnerungen, Fotos und Einstellungen und sieht nichts von den anderen. Eine offene Registrierung gibt es bewusst nicht — neue Konten entstehen nur über einen Einladungscode, den der Betreiber mit python scripts/create_invite.py erzeugt. Screenshots DashboardRead the full README ↗
Euer privates digitales Erinnerungsbuch — eine Web-App für Paare, um gemeinsame Erinnerungen, Fotos und Meilensteine festzuhalten, visualisiert als wachsender interaktiver Baum.
Die App ist nach Paaren getrennt: jedes Paar hat seine eigenen Erinnerungen, Fotos und Einstellungen und sieht nichts von den anderen. Eine offene Registrierung gibt es bewusst nicht — neue Konten entstehen nur über einen Einladungscode, den der Betreiber mit
python scripts/create_invite.pyerzeugt.
git clone https://github.com/User420-bit/MemoryTree.git
cd MemoryTree
# 1. Einmalig: Skript ausführbar machen
chmod +x start.sh stop.sh
# 2. App starten (erledigt beim ersten Mal alles automatisch)
./start.sh
Das Skript richtet beim ersten Start alles automatisch ein:
.venv).env-KonfigurationAuf macOS öffnet sich http://localhost:8000 automatisch im Browser. Auf Linux/Windows den Link manuell aufrufen.
Ab dem zweiten Start reicht: ./start.sh
Unter Windows läuft Memory Tree am einfachsten in einem Docker-Container — keine Python-Installation, kein venv, keine Pfad-Probleme.
# 1. Konfiguration anlegen (einmalig)
copy .env.example .env
# 2. SECRET_KEY in .env eintragen — sicheren Wert generieren mit:
docker run --rm python:3.11-slim python -c "import secrets; print(secrets.token_urlsafe(64))"
# 3. App bauen und starten
docker compose -f docker-compose.yml up --build
Anschließend http://localhost:8000 im Browser öffnen.
# In einem zweiten Terminal, während die App läuft:
docker compose -f docker-compose.yml exec app python scripts/create_users.py
# Im laufenden Terminal: Ctrl+C
# Oder aus einem anderen Terminal:
docker compose -f docker-compose.yml down
Die SQLite-Datenbank und alle hochgeladenen Bilder bleiben im Ordner
./data/ auf dem Host erhalten und überstehen jeden Container-Rebuild.
Hinweis: Die Datei
compose.yamlist die Production-Variante für den Raspberry Pi (mit Caddy als Reverse-Proxy). Für lokale Entwicklung unter Windows/macOS/Linux immerdocker-compose.ymlmit dem-f-Flag verwenden.
# Option A: Im Terminal, wo der Server läuft
CTRL+C
# Option B: Aus einem anderen Terminal
./stop.sh
Nach dem Start http://localhost:8000 im Browser öffnen.
| Benutzername | Passwort |
|---|---|
partner_a | test1234 |
partner_b | test1234 |
⚠️ Diese Zugangsdaten gelten nur wenn
DEBUG=truein der.envgesetzt ist (Standard nach Erstinstallation).
In Production (DEBUG=false) werden diese Accounts nicht automatisch angelegt — eigene Accounts überpython scripts/create_users.pyanlegen.
DenSECRET_KEYin der.env-Datei vor dem produktiven Einsatz ändern.
python scripts/create_invite.py --name "Anna & Ben" # Paar + Code anlegen
python scripts/create_invite.py --list # offene Codes anzeigen
Das Skript druckt einen Registrierungslink (/auth/register?code=…). Der Code
ist zweimal einlösbar — der erste Einlöser wird Partner A, der zweite Partner B —
und standardmäßig 30 Tage gültig.
Für einen frischen Klon lassen sich fiktive, anonyme Demo-Erinnerungen und -Meilensteine einspielen, um die App direkt vollständig auszuprobieren:
python scripts/seed_demo_data.py
⚠️ Das Skript löscht alle bestehenden Erinnerungen, Meilensteine und Fotos und ersetzt sie durch Demo-Daten. Nur in Entwicklungsumgebungen ausführen.
⇧⌘B (Shift+Cmd+B) → startet die App direkt aus VS Code.
Oder: Terminal → Aufgabe ausführen → ▶ Memory Tree starten
F5 → startet die App im Debug-Modus mit Breakpoint-Unterstützung.
memory-tree/
├── main.py # FastAPI Einstiegspunkt
├── models.py # SQLAlchemy Datenmodelle
├── database.py # DB-Verbindung & Session
├── auth.py # JWT-Authentifizierung
├── config.py # App-Konfiguration
├── schemas.py # Pydantic Request/Response Schemas
├── routers/
│ ├── auth.py # Login/Logout
│ ├── memories.py # CRUD Erinnerungen
│ ├── photos.py # Foto-Upload
│ └── milestones.py # Meilensteine
├── templates/ # Jinja2 HTML-Templates
├── static/ # CSS, JS, Bilder, Uploads
├── start.sh # App starten
├── stop.sh # App stoppen
└── requirements.txt # Python-Abhängigkeiten
| Komponente | Technologie |
|---|---|
| Backend | FastAPI (Python 3.11+) |
| Datenbank | SQLite + SQLAlchemy 2.0 |
| Templates | Jinja2 + Tailwind CSS |
| Auth | JWT (python-jose) + bcrypt |
| Visualisierung | D3.js (Baum), Leaflet.js (Karte) |
Die App wird über die .env-Datei konfiguriert:
| Variable | Beschreibung | Standard |
|---|---|---|
SECRET_KEY | JWT-Signaturschlüssel — zwingend ändern | dein-geheimer-schluessel-hier-aendern |
DATABASE_URL | SQLite-Datenbankpfad | sqlite:///./data/memory_tree.db |
ACCESS_TOKEN_EXPIRE_MINUTES | Session-Dauer in Minuten | 480 |
UPLOAD_DIR | Verzeichnis für Foto-Uploads | data/uploads |
MAX_IMAGE_SIZE | Max. Bildbreite/-höhe in Pixeln | 1920 |
Vollständige Vorlage mit allen Pflichtfeldern und Erklärungen: .env.example.
Zwingend anzupassen ist mindestens SECRET_KEY — ohne einen sicheren,
mindestens 32 Zeichen langen Wert startet die App im Production-Modus nicht.
Dieses Projekt steht unter der MIT-Lizenz.