faq.php zeigte bislang fuer jeden Mandanten denselben, komplett AOK-spezifischen Inhalt (Kaffeemaschinen-Bedienung, interner Ansprechpartner) - fuer andere Kunden unbrauchbar und inhaltlich falsch. - Neue Tabelle faq_entries (tenant-scoped, Soft-Delete, sort_order). - Migration uebernimmt die bisherigen AOK-Inhalte einmalig als FAQ des migrierten Default-Mandanten; andere Mandanten sehen sie nicht. - Neue Mandanten bekommen bei der Registrierung automatisch eine kurze generische Starter-FAQ (faq_seed_default_entries), frei editierbar. - faq.php: lesbar fuer alle angemeldeten Mitglieder eines Mandanten, Anlegen/Bearbeiten/Entfernen auf owner/admin beschraenkt. - Landingpage verweist nicht mehr auf faq.php (jetzt interner, mandantengebundener Inhalt statt oeffentlicher Marketing-Seite). Live getestet: AOK-Carry-over fuer Default-Mandant, frisch registrierter Test-Mandant bekam isolierte generische Starter-FAQ, Anlegen mit HTML-Payload (korrekt escaped), Bearbeiten und Soft-Delete geprueft. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
144 lines
8.6 KiB
PHP
144 lines
8.6 KiB
PHP
<?php require_once __DIR__ . '/app/bootstrap.php'; ?>
|
||
<!DOCTYPE HTML>
|
||
<html lang="de">
|
||
<head>
|
||
<title>Kaffeeliste – die digitale Kaffeekasse für Teams</title>
|
||
<meta charset="utf-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
||
<meta name="description" content="Kaffeeliste ist die digitale Kaffeekasse für Teams, Büros und Vereine: Striche erfassen, Guthaben im Blick behalten, bequem per PayPal ausgleichen." />
|
||
<link rel="stylesheet" href="assets/css/main.css" />
|
||
<link rel="stylesheet" href="assets/css/public.css" />
|
||
</head>
|
||
<body class="is-preload public-page">
|
||
<div class="public-shell">
|
||
<section class="public-hero">
|
||
<nav class="public-nav" aria-label="Hauptnavigation">
|
||
<strong>Kaffeeliste</strong>
|
||
<ul class="actions">
|
||
<li><a href="login.php" class="button">Login</a></li>
|
||
<li><a href="register.php" class="button primary">Registrieren</a></li>
|
||
</ul>
|
||
</nav>
|
||
<div class="public-hero-content">
|
||
<h1>Die Kaffeekasse, die von allein mitrechnet</h1>
|
||
<p>Schluss mit Strichlisten auf Papier und Kopfrechnen beim Kassensturz: Kaffeeliste hält für dein Team, Büro oder deinen Verein fest, wer wie viele Striche gemacht hat, wer bezahlt hat und wer gerade offen ist – jederzeit einsehbar, für jeden nachvollziehbar.</p>
|
||
<ul class="actions">
|
||
<li><a href="register.php" class="button primary big">Kostenlos einrichten</a></li>
|
||
<li><a href="login.php" class="button big">Zur App</a></li>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="public-section">
|
||
<header class="major">
|
||
<h2>So funktioniert's</h2>
|
||
</header>
|
||
<div class="public-grid public-steps">
|
||
<article class="public-feature">
|
||
<span class="public-step-number">1</span>
|
||
<h3>Kaffee nehmen</h3>
|
||
<p>Wie bisher: Kaffee holen, Tee, Wasser – ganz ohne App am Automaten oder an der Maschine selbst.</p>
|
||
</article>
|
||
<article class="public-feature">
|
||
<span class="public-step-number">2</span>
|
||
<h3>Strich setzen</h3>
|
||
<p>Der Strich landet in der Kaffeeliste – entweder durch eine verantwortliche Person gesammelt oder, wenn gewünscht, direkt selbst im eigenen Dashboard.</p>
|
||
</article>
|
||
<article class="public-feature">
|
||
<span class="public-step-number">3</span>
|
||
<h3>Bei Bedarf bezahlen</h3>
|
||
<p>Der aktuelle Stand ist jederzeit sichtbar. Ausgleich bequem per PayPal, wenn dein Team das nutzt – ganz ohne Bargeld und Wechselgeld.</p>
|
||
</article>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="public-section">
|
||
<header class="major">
|
||
<h2>Alles rund um die Kaffeekasse</h2>
|
||
</header>
|
||
<div class="public-grid">
|
||
<article class="public-feature">
|
||
<h3>Mitglieder & Rollen</h3>
|
||
<p>Mitglieder anlegen, deaktivieren oder anonymisieren. Zugang mit passender Rolle (Admin, Kassenwart, Mitglied) gezielt vergeben oder wieder entziehen.</p>
|
||
</article>
|
||
<article class="public-feature">
|
||
<h3>Guthaben & Einzahlungen</h3>
|
||
<p>Striche, Einzahlungen und Korrekturen laufen über ein durchgängiges Journal – jede Buchung bleibt nachvollziehbar, auch nachträglich.</p>
|
||
</article>
|
||
<article class="public-feature">
|
||
<h3>PayPal-Zahlung</h3>
|
||
<p>Offene Beträge lassen sich optional direkt per PayPal ausgleichen, inklusive automatischem Abgleich in der Liste.</p>
|
||
</article>
|
||
<article class="public-feature">
|
||
<h3>CSV-Import & Export</h3>
|
||
<p>Zahlungen aus einem PayPal-Export einlesen, mit Vorschau und Dublettenprüfung vor der Übernahme. Kaffeeliste als PDF für den Ausdruck exportieren.</p>
|
||
</article>
|
||
<article class="public-feature">
|
||
<h3>Mandantenfähig</h3>
|
||
<p>Jeder Kunde arbeitet in einem eigenen, streng getrennten Bereich mit eigenen Mitgliedern, Einstellungen und Buchungen.</p>
|
||
</article>
|
||
<article class="public-feature">
|
||
<h3>Hinweise & Info-Mails</h3>
|
||
<p>Aktuelle Hinweise für alle sichtbar einblenden, und bei Bedarf eine Info-Mail mit dem aktuellen Stand an alle Mitglieder verschicken.</p>
|
||
</article>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="public-section public-demo">
|
||
<header class="major">
|
||
<h2>So sieht's in der App aus</h2>
|
||
<p>Klares Layout, aufgeräumte Tabellen, alles auf einen Blick – die Kaffeeliste bleibt bewusst eine Arbeitsoberfläche statt einer verspielten Marketing-App.</p>
|
||
</header>
|
||
<div class="public-demo-frame">
|
||
<img src="assets/images/demo-kaffeeliste.png" alt="Ausschnitt aus der Kaffeeliste: Gesamtübersicht mit aktivem Mitglied, Stand, Ausgabe, Strichen und Einzahlungen" loading="lazy">
|
||
</div>
|
||
</section>
|
||
|
||
<section class="public-section">
|
||
<header class="major">
|
||
<h2>Häufige Fragen</h2>
|
||
</header>
|
||
<div class="public-faq">
|
||
<div class="public-panel">
|
||
<h3>Wie schnell ist meine Kaffeeliste startklar?</h3>
|
||
<p>Kundenkonto anlegen, Mitglieder eintragen, loslegen. Es ist keine Einrichtung durch uns nötig, und die bestehenden Abläufe rund um Striche und Einzahlungen bleiben dieselben.</p>
|
||
</div>
|
||
<div class="public-panel">
|
||
<h3>Sind unsere Daten von denen anderer Kunden getrennt?</h3>
|
||
<p>Ja. Jeder Kunde hat einen eigenen, isolierten Bereich für Mitglieder, Buchungen und Einstellungen. Diese Trennung ist fester Bestandteil der App und wird automatisiert geprüft.</p>
|
||
</div>
|
||
<div class="public-panel">
|
||
<h3>Wer darf in unserem Team was ändern?</h3>
|
||
<p>Ihr vergebt Rollen wie Administrator, Kassenwart oder Mitglied gezielt pro Person – und könnt den Zugang jederzeit wieder entziehen, ohne den Mitgliedseintrag selbst zu löschen.</p>
|
||
</div>
|
||
<div class="public-panel">
|
||
<h3>Können wir unsere Daten exportieren oder löschen lassen?</h3>
|
||
<p>Ja. Ihr könnt alle gespeicherten Daten jederzeit als Export herunterladen und einzelne Mitglieder oder euren gesamten Kundenbereich selbstständig wieder entfernen lassen.</p>
|
||
</div>
|
||
<div class="public-panel">
|
||
<h3>Müssen wir PayPal nutzen?</h3>
|
||
<p>Nein, PayPal ist optional und lässt sich in den Mandant-Einstellungen aktivieren. Einzahlungen können weiterhin auch manuell erfasst werden.</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<section class="public-section public-cta">
|
||
<header class="major">
|
||
<h2>Bereit für eine Kaffeekasse, die mitdenkt?</h2>
|
||
<p>In wenigen Minuten eingerichtet, für dein ganzes Team nutzbar.</p>
|
||
</header>
|
||
<ul class="actions">
|
||
<li><a href="register.php" class="button primary big">Kundenkonto anlegen</a></li>
|
||
<li><a href="login.php" class="button big">Zur App</a></li>
|
||
</ul>
|
||
</section>
|
||
</div>
|
||
|
||
<script src="assets/js/jquery.min.js"></script>
|
||
<script src="assets/js/browser.min.js"></script>
|
||
<script src="assets/js/breakpoints.min.js"></script>
|
||
<script src="assets/js/util.js"></script>
|
||
<script src="assets/js/main.js"></script>
|
||
</body>
|
||
</html>
|