No description
- Vue 62%
- TypeScript 33.2%
- CSS 4.2%
- HTML 0.6%
| .vscode | ||
| public | ||
| src | ||
| .gitignore | ||
| AGENTS.md | ||
| index.html | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| tsconfig.app.json | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
Projekt Morsen
Projekt Morsen ist eine Vue 3 + TypeScript + Vite Single-Page-Anwendung zum Ueben des Morsealphabets. Die App kombiniert einen interaktiven Trainer mit einem Keyer, speichert Fortschritte lokal und unterstuetzt Deutsch sowie Englisch.
Hinweis: Dieses Projekt wurde zu 90% von Opencode mit dem Modell GPT 5.2-codex erstellt.
Ziele und Funktionen
- Morse-Training mit Lektionen, Fortschritt und Genauigkeit
- Lernfortschritt lokal speichern und wiederherstellen
- Import/Export des Trainingsstands als JSON
- Anpassbare Einstellungen (Eingabemodus, Tempo, Lektionstumfang, Inhalte)
- I18n fuer DE/EN
Voraussetzungen
- Node.js (empfohlen: aktuelle LTS)
- npm
Installation
cd morse-webapp
npm install
Entwicklung
cd morse-webapp
npm run dev
Build
cd morse-webapp
npm run build
Preview
cd morse-webapp
npm run preview
Projektstruktur
morse-webapp/src/main.tsundmorse-webapp/src/App.vue: Einstiegmorse-webapp/src/components/*.vue: UI-Komponentenmorse-webapp/src/composables/*.ts: wiederverwendbare Logikmorse-webapp/src/state/progress.ts: Trainingszustand, Schema, Persistenzmorse-webapp/src/data/morse.ts: Morsealphabetmorse-webapp/src/i18n/strings.ts: Texte und Uebersetzungenmorse-webapp/src/style.css: globale Styles und Tokens
Bedienung und Daten
- Der Trainingsstand wird in
localStoragegespeichert. - Export erzeugt eine JSON-Datei, Import validiert und migriert Daten.
- Bei Schemaaenderungen wird die Version in
morse-webapp/src/state/progress.tshochgezaehlt.
i18n
- Alle sichtbaren Texte kommen aus
morse-webapp/src/i18n/strings.ts. - Neue Keys muessen in DE und EN gepflegt werden.
Entwicklungskonventionen (Kurzfassung)
- Vue 3 Composition API mit
<script setup lang="ts"> - TypeScript strict, keine ungenutzten Imports
- Komponente klein halten, Logik in Composables auslagern
- Props/Emits typisiert,
v-modelueberupdate:* - CSS Variablen und
color-mix()verwenden, wo etabliert
Mitwirken
- Kleine, klare Aenderungen bevorzugen
- UI-Text in DE/EN konsistent halten
- Vor einem Release
npm run buildausfuehren
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe LICENSE Datei für Details.
Das Projekt steht zur freien Nutzung, Veränderung und Weitergabe zur Verfügung.