commit 737c3064bd2a7b94f4fd9cef6a6141b4e6c2a203 Author: Torsten Schulz (local) Date: Tue Oct 21 00:41:12 2025 +0200 Initial commit: Harheimer TC Website - Vue 3 + Nuxt 3 Framework - Tailwind CSS Styling - Responsive Design mit schwarz-roten Vereinsfarben - Dynamische Galerie mit Lightbox - Event-Management über CSV-Dateien - Mannschaftsübersicht mit dynamischen Seiten - SMTP-Kontaktformular - Google Maps Integration - Mobile-optimierte Navigation mit Submenus - Trainer-Übersicht - Vereinsmeisterschaften, Spielsysteme, TT-Regeln - Impressum mit Datenschutzerklärung diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..50ebe34 --- /dev/null +++ b/.gitignore @@ -0,0 +1,141 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules/ +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp +.cache + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# OS +.DS_Store +Thumbs.db + +# Temporary files +*.tmp +*.temp \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..cddfaee --- /dev/null +++ b/README.md @@ -0,0 +1,94 @@ +# Harheimer TC Website + +Moderne Website für den Harheimer Tischtennis Club (HTC) in Frankfurt-Harheim. + +## Technologie-Stack + +- **Framework**: Vue 3 + Nuxt 3 +- **Styling**: Tailwind CSS +- **Icons**: Lucide Vue Next +- **Build Tool**: Vite +- **Sprache**: JavaScript (ES6) + +## Features + +- 🏓 **Responsive Design** - Optimiert für alle Geräte +- 📱 **Mobile-First** - Perfekte Darstellung auf Smartphones +- 🎨 **Moderne UI** - Schwarze-rote Vereinsfarben +- 📸 **Dynamische Galerie** - Zeigt nur Bilder an, wenn vorhanden +- 📅 **Event-Management** - Termine aus CSV-Dateien +- 👥 **Mannschaftsübersicht** - Dynamische Team-Seiten +- 📋 **Kontaktformular** - SMTP-basierte E-Mail-Versendung +- 🗺️ **Kartenintegration** - Google Maps für Trainingsort + +## Projektstruktur + +``` +harheimertc/ +├── components/ # Vue-Komponenten +├── pages/ # Seiten-Routing +├── public/ # Statische Dateien +│ ├── data/ # CSV-Dateien (Termine, Mannschaften) +│ ├── documents/ # PDF-Dokumente +│ └── galerie/ # Galerie-Bilder +├── server/ # API-Endpunkte +└── assets/ # CSS und Bilder +``` + +## Installation + +```bash +# Dependencies installieren +npm install + +# Entwicklungsserver starten (Port 3100) +npm run dev + +# Produktions-Build +npm run build + +# Preview des Builds +npm run preview +``` + +## Konfiguration + +### SMTP-Einstellungen + +Für das Kontaktformular müssen folgende Umgebungsvariablen gesetzt werden: + +```bash +SMTP_HOST=your-smtp-host +SMTP_PORT=587 +SMTP_USER=your-email@domain.com +SMTP_PASS=your-password +SMTP_FROM=your-email@domain.com +SMTP_TO=club@harheimertc.de +``` + +### Datenverwaltung + +- **Termine**: `public/data/termine.csv` +- **Mannschaften**: `public/data/mannschaften.csv` +- **Galerie**: Bilder in `public/galerie/` ablegen + +## Entwicklung + +### Lokale Entwicklung + +```bash +npm run dev +``` + +Die Website ist dann unter `http://localhost:3100` erreichbar. + +### Deployment + +```bash +npm run build +npm run preview +``` + +## Lizenz + +© 2025 Harheimer Tischtennis Club. Alle Rechte vorbehalten. \ No newline at end of file diff --git a/app.vue b/app.vue new file mode 100644 index 0000000..be9cfa7 --- /dev/null +++ b/app.vue @@ -0,0 +1,14 @@ + + + diff --git a/assets/css/main.css b/assets/css/main.css new file mode 100644 index 0000000..27c6b3b --- /dev/null +++ b/assets/css/main.css @@ -0,0 +1,39 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + html { + font-family: 'Inter', system-ui, sans-serif; + scroll-behavior: smooth; + } + + h1, h2, h3, h4, h5, h6 { + font-family: 'Montserrat', system-ui, sans-serif; + } +} + +@layer utilities { + .text-balance { + text-wrap: balance; + } +} + +/* Custom scrollbar */ +::-webkit-scrollbar { + width: 10px; +} + +::-webkit-scrollbar-track { + background: #f1f1f1; +} + +::-webkit-scrollbar-thumb { + background: #dc2626; + border-radius: 5px; +} + +::-webkit-scrollbar-thumb:hover { + background: #b91c1c; +} + diff --git a/assets/images/logos/Harheimer TC.png b/assets/images/logos/Harheimer TC.png new file mode 100644 index 0000000..f00260f Binary files /dev/null and b/assets/images/logos/Harheimer TC.png differ diff --git a/assets/images/logos/Harheimer TC.svg b/assets/images/logos/Harheimer TC.svg new file mode 100644 index 0000000..9efda3c --- /dev/null +++ b/assets/images/logos/Harheimer TC.svg @@ -0,0 +1,241 @@ + + + +1954 e.V. diff --git a/components/About.vue b/components/About.vue new file mode 100644 index 0000000..5e3533f --- /dev/null +++ b/components/About.vue @@ -0,0 +1,106 @@ + + + + diff --git a/components/Calendar.vue b/components/Calendar.vue new file mode 100644 index 0000000..29023b1 --- /dev/null +++ b/components/Calendar.vue @@ -0,0 +1,124 @@ + + + + diff --git a/components/Contact.vue b/components/Contact.vue new file mode 100644 index 0000000..1450de7 --- /dev/null +++ b/components/Contact.vue @@ -0,0 +1,238 @@ +