mail drin
fehlende routen drin
prod-reife erreicht.
TODOS:
Deine aktuellen offenen TODOs
1. Rate-Limiting (Spam-Schutz VOR dem reCAPTCHA)
Das reCAPTCHA hält zwar Bots ab, aber wenn jemand böswillig ein Script schreibt, das 1.000 POST-Requests pro Sekunde an /api/v1/submissions sendet, muss dein Backend jedes Mal Google kontaktieren und die Datenbank befragen. Das frisst Server-Ressourcen.
Todo: Einbinden von Flask-Limiter und Absichern der API-Route (z.B. max. 10 Submissions pro Minute pro IP-Adresse oder Tenant).
2. Billing & Feature-Enforcement (Limits pro Tenant durchsetzen)
Die Mandanten-Architektur und das config-Feld im JSON existieren bereits. Aber wir erzwingen diese Limits aktuell nicht im Backend.
Todo: Im Dashboard (templates/admin/tenants/view.html) UI-Controls einbauen, um Feature-Flags für einen Tenant festzulegen:
max_forms (z.B. 1 für Free-User, 10 für Pro-User).
allow_instant_mail (Dürfen E-Mails an den Tenant gesendet werden?).
allow_autoresponder (Darf der Autoresponder für Endkunden genutzt werden?).
Todo: Diese Limits hart im Backend (beim Erstellen von Forms und beim Mailversand) kontrollieren. (Der Mailer prüft das zwar schon halbwegs, das UI zum Pflegen fehlt aber noch komplett).
3. E-Mail Templates aufwerten (HTML statt Plain-Text)
Bisher versendet der Service E-Mails als reinen Text (plain). Für eine professionelle SaaS-Lösung sollten diese Mails ansprechend aussehen.
Todo: Im services/mailer.py den MIMEMultipart so erweitern, dass er saubere HTML-Mails aus einem Jinja2-Template (templates/emails/...) generiert, inklusive Branding/Logo deines Services.
4. Frontend-Snippet "Graceful Degradation"
Das embed.js arbeitet aktuell sehr gut. Aber was ist, wenn das Formeleon-Backend mal für 5 Minuten down ist?
Todo: Einen sauberen Timeout im fetch einbauen und dem Endkunden auf der Webseite eine schöne, fallback HTML-Meldung anzeigen ("Entschuldigung, das Formular ist momentan nicht erreichbar"), anstatt dass sich das Script lautlos in der Console mit einem CORS/Network-Error verabschiedet.
5. CI/CD Pipeline (Deployment)
Wenn der Code fertig ist, willst du ihn sicher nicht immer händisch per git pull auf deinen Produktionsserver schieben und dort docker compose up tippen.
Todo: Eine simple Pipeline (Github Actions / Gitea Actions) anlegen, die den Code testet und automatisch auf dem Zielserver ausrollt.
57 lines
1.3 KiB
Gettext
57 lines
1.3 KiB
Gettext
# German translations for PROJECT.
|
|
# Copyright (C) 2026 ORGANIZATION
|
|
# This file is distributed under the same license as the PROJECT project.
|
|
# FIRST AUTHOR <EMAIL@ADDRESS>, 2026.
|
|
#
|
|
msgid ""
|
|
msgstr ""
|
|
"Project-Id-Version: PROJECT VERSION\n"
|
|
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
|
"POT-Creation-Date: 2026-09-28 17:10+0200\n"
|
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
"Language: de\n"
|
|
"Language-Team: de <LL@li.org>\n"
|
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
"MIME-Version: 1.0\n"
|
|
"Content-Type: text/plain; charset=utf-8\n"
|
|
"Content-Transfer-Encoding: 8bit\n"
|
|
"Generated-By: Babel 2.18.0\n"
|
|
|
|
#: routes/admin.py:76
|
|
msgid "Admin privileges required"
|
|
msgstr "Admin Privilegien erforderlich"
|
|
|
|
#: templates/base.html:12 templates/index.html:13
|
|
msgid "Formeleon - Form Generator"
|
|
msgstr "Formeleon - Formular Generator"
|
|
|
|
#: templates/navbar.html:23
|
|
msgid "Dashboard"
|
|
msgstr "Übersicht"
|
|
|
|
#: templates/navbar.html:31
|
|
msgid "Tenants"
|
|
msgstr "Mandanten"
|
|
|
|
#: templates/navbar.html:43
|
|
msgid "Forms"
|
|
msgstr "Formulare"
|
|
|
|
#: templates/navbar.html:56
|
|
msgid "Submissions"
|
|
msgstr "Einträge"
|
|
|
|
#: templates/navbar.html:64
|
|
msgid "Users"
|
|
msgstr "Benutzer"
|
|
|
|
#: templates/navbar.html:76
|
|
msgid "Settings"
|
|
msgstr "Einstellungen"
|
|
|
|
#: templates/navbar.html:99
|
|
msgid "Login"
|
|
msgstr "Anmelden"
|
|
|