Initial commit: Deklinationstrainer German declension trainer
Vite + React app for daily German declension practice with localStorage-backed progress. Includes Coolify deploy instructions. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
# Deklinationstrainer
|
||||
|
||||
A daily-practice German declension trainer. Self-hosted so your progress actually saves.
|
||||
|
||||
## Deploy to Coolify
|
||||
|
||||
### One-time setup
|
||||
|
||||
1. Push these files to a git repo (GitHub / Gitea / whatever Coolify is connected to).
|
||||
|
||||
2. In Coolify, create a new **Application**:
|
||||
- Source: your git repo
|
||||
- Build pack: **Nixpacks** (auto-detects Vite) or **Static**
|
||||
- Build command: `npm run build`
|
||||
- Publish directory: `dist`
|
||||
- Port: not needed for static output (Coolify serves it directly)
|
||||
|
||||
3. Add a domain (e.g. `deklination.yourdomain.com`). Coolify provisions HTTPS via Caddy/Traefik automatically.
|
||||
|
||||
4. Deploy. Visit the URL on any device.
|
||||
|
||||
### Local dev
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev # http://localhost:5173
|
||||
npm run build # outputs to ./dist
|
||||
```
|
||||
|
||||
## On iPhone
|
||||
|
||||
Open the URL in Safari, tap Share → **Add to Home Screen**. It opens fullscreen like a native app, and progress saves in localStorage across reboots, sessions, and app closes.
|
||||
|
||||
## Storage
|
||||
|
||||
The app tries `window.storage` first (Claude artifact environment), then falls back to `localStorage`. When self-hosted, only localStorage runs, which iOS Safari persists reliably.
|
||||
|
||||
To wipe progress: open browser devtools → Application → Local Storage → delete the `gd-v10` key. Or on iPhone: Settings → Safari → Advanced → Website Data → search your domain → delete.
|
||||
Reference in New Issue
Block a user