# đ OpenWall

**Ein Smart Home Dashboard fĂźr modernes Wohnen**
*Kalender-Synchronisation, Notizen und Einkaufslisten mit nahtloser Handy- und Tablet-Integration*
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
[](https://reactjs.org/)
[](https://electronjs.org/)
[Funktionen](#-funktionen) ⢠[Architektur](#-architektur) ⢠[Schnellstart](#-schnellstart) ⢠[Installation](#-installation) ⢠[Entwicklung](#-entwicklung)
---
## đ Funktionen
### đ
**Kalender-Integration**
- Synchronisation mit Ihren bevorzugten Kalender-Diensten
- Saubere, intuitive Benutzeroberfläche optimiert fßr Touch-Displays
- Perfekt fĂźr wandmontierte Tablets und Smart Displays
### đ **Notizen-Verwaltung**
- Schnelle Notizerstellung und -organisation
- Nahtlose Synchronisation zwischen Geräten
- Touch-freundliche Benutzeroberfläche fßr einfache Bedienung
### đ **Intelligente Einkaufslisten**
- Gemeinsame Einkaufslisten fĂźr Familien
- Echtzeit-Synchronisation zwischen Geräten
- Mobile-optimierte Begleit-App
- Automatische Bereinigung erledigter Einträge
### đ¨ **SchĂśnes Design**
- Moderne, responsive Benutzeroberfläche
- Optimiert fßr Hochformat-Displays (9:16 Verhältnis)
- Atemberaubende Hintergrundbilder
- Touch-First Interaktionsdesign
### đą **Multi-Platform UnterstĂźtzung**
- **Desktop**: Vollständiges Electron Dashboard
- **Mobile**: Progressive Web App fĂźr Einkaufslisten
- **Embedded**: Benutzerdefinierte Linux OS Installation fĂźr dedizierte Displays
## đď¸ Architektur
OpenWall ist als modernes, skalierbares System mit mehreren Komponenten aufgebaut:
```
đŚ OpenWall
âââ đĽď¸ dashboard/ # Electron Desktop-Anwendung
âââ đą mobile-shopping/ # Mobile PWA fĂźr Einkaufslisten
âââ đ§ server/ # Express.js Backend API
âââ đ§ os/ # Linux OS Installer & Konfiguration
```
### Technologie-Stack
| Komponente | Technologie | Zweck |
|------------|-------------|-------|
| **Frontend** | React 19 + Vite | Moderne, schnelle UI-Entwicklung |
| **Desktop** | Electron 35 | PlattformĂźbergreifende Desktop-App |
| **Mobile** | PWA + React | Native-ähnliche mobile Erfahrung |
| **Backend** | Express.js + SQLite | RESTful API & Datenpersistierung |
| **Styling** | Sass | SchĂśne, wartbare Stylesheets |
| **Package Manager** | pnpm | Schnelles, effizientes Dependency Management |
## đ Schnellstart
### Voraussetzungen
- **Node.js** 18 oder hĂśher
- **pnpm** (empfohlen) oder npm
- **Git**
### 1. Repository klonen
```bash
git clone https://github.com/yourusername/OpenWall.git
cd OpenWall
```
### 2. Backend-Server starten
```bash
cd server
pnpm install
pnpm start
```
Der Server startet auf `http://localhost:3001`
### 3. Dashboard starten
```bash
cd ../dashboard
pnpm install
pnpm dev
```
Das Dashboard Ăśffnet sich automatisch im Entwicklungsmodus.
### 4. Mobile App ausprobieren (Optional)
```bash
cd ../mobile-shopping
pnpm install
pnpm dev
```
Zugriff auf die mobile App unter `http://localhost:5173`
## đ§ Installation
### Option 1: Entwicklungsumgebung
Perfekt fĂźr Entwicklung und Tests:
```bash
# Alle Abhängigkeiten installieren
pnpm install
# Alle Services im Entwicklungsmodus starten
pnpm dev
```
### Option 2: Produktions-Deployment
FĂźr dedizierte Wanddisplays und Smart Home Setups:
#### Manuelle Installation
```bash
# Dashboard bauen
cd dashboard
pnpm install
pnpm build
# Mobile App bauen
cd ../mobile-shopping
pnpm install
pnpm build
# Produktionsserver starten
cd ../server
pnpm install
NODE_ENV=production pnpm start
```
#### Automatisierte Linux Installation
FĂźr Debian-basierte Systeme mit automatischem Kiosk-Modus Setup:
```bash
# Als root ausfĂźhren
sudo ./os/install.sh
```
Dieser Installer wird:
- â
Einen dedizierten Benutzeraccount erstellen
- â
Alle Abhängigkeiten installieren
- â
Wayland/Sway fĂźr Touch-Displays konfigurieren
- â
Auto-Start beim Booten einrichten
- â
FĂźr 9:16 Hochformat-Displays optimieren
- â
Touch-Input-Kalibrierung aktivieren
## đť Entwicklung
### Projektstruktur
```
dashboard/ # Haupt-Electron-Anwendung
âââ src/
â âââ main/ # Electron Hauptprozess
â âââ preload/ # Preload-Skripte
â âââ renderer/ # React Frontend
â âââ src/
â â âââ pages/ # Anwendungsseiten
â â âââ common/ # Geteilte Komponenten
â â âââ services/ # API Services
â â âââ utils/ # Hilfsfunktionen
â âââ index.html
âââ build/ # Build-Assets (Icons, etc.)
âââ package.json
mobile-shopping/ # Mobile PWA
âââ src/
â âââ services/ # API Integration
â âââ utils/ # Geteilte Hilfsmittel
âââ public/ # PWA Assets
server/ # Backend API
âââ models/ # Datenbank-Modelle
âââ routes/ # API Routen
âââ database.sqlite # SQLite Datenbank
âââ index.js # Haupt-Server-Datei
os/ # System-Installation
âââ install.sh # Automatisierter Installer
âââ build-iso.sh # Custom ISO Builder
```
### VerfĂźgbare Skripte
#### Dashboard (Electron)
```bash
pnpm dev # Entwicklungsmodus mit Hot Reload
pnpm build # FĂźr Produktion bauen
pnpm start # Gebaute Anwendung starten
pnpm build:mac # macOS App bauen
pnpm build:win # Windows App bauen
pnpm build:linux # Linux App bauen
```
#### Mobile Shopping (PWA)
```bash
pnpm dev # Entwicklungsserver
pnpm build # FĂźr Produktion bauen
pnpm preview # Gebaute App anzeigen
```
#### Server (Express.js)
```bash
pnpm start # Produktionsserver starten
pnpm dev # Entwicklung mit nodemon
```
### API Endpunkte
| Methode | Endpunkt | Beschreibung |
|---------|----------|--------------|
| `GET` | `/api/health` | Server-Gesundheitscheck |
| `GET` | `/api/shopping` | Alle Einkaufsartikel abrufen |
| `POST` | `/api/shopping` | Neuen Einkaufsartikel erstellen |
| `PUT` | `/api/shopping/:id` | Einkaufsartikel aktualisieren |
| `DELETE` | `/api/shopping/:id` | Einkaufsartikel lĂśschen |
### Umgebungsvariablen
Erstellen Sie `.env` Dateien im Server-Verzeichnis:
```env
PORT=3001
NODE_ENV=development
DATABASE_URL=sqlite:./database.sqlite
```
## đŻ Anwendungsfälle
### đ **Smart Home Display**
Perfekt fßr wandmontierte Tablets in Kßchen, Fluren oder Familienzimmern. Die Hochformat-Ausrichtung und touch-optimierte Benutzeroberfläche machen es ideal fßr schnelle Interaktionen.
### đ¨âđŠâđ§âđŚ **Familienorganisation**
Halten Sie alle mit geteilten Kalendern, Familiennotizen und gemeinsamen Einkaufslisten synchron, die nahtlos auf allen Geräten funktionieren.
### đ˘ **BĂźro & Co-Working**
Verwenden Sie es in BĂźroumgebungen fĂźr Teamkalender, geteilte Notizen und BĂźromaterial-Verwaltung.
### đď¸ **Digitaler Kiosk**
Einsatz als eigenständiges Kiosk-System mit der enthaltenen Linux-Installation fßr dedizierte Displays.
## đ Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die [LICENSE](LICENSE) Datei fĂźr Details.
## đ Danksagungen
- **Electron** Team fĂźr das exzellente Desktop-Framework
- **React** Community fĂźr das groĂartige Ăkosystem
- **Pixabay** fĂźr die schĂśnen Hintergrundbilder
## đ Support
- đ **Issues**: [GitHub Issues](https://github.com/yourusername/OpenWall/issues)
- đŹ **Diskussionen**: [GitHub Discussions](https://github.com/yourusername/OpenWall/discussions)
- đ§ **E-Mail**: [your-email@example.com](mailto:your-email@example.com)
---
**Erstellt mit â¤ď¸ von [Mathias Wagner](https://git.gnm.dev/Mathias/OpenWall)**
*Verwandeln Sie Ihren Raum mit OpenWall in eine intelligente, vernetzte Umgebung*