Digitaler Mitgliedsantrag für Feuerwehrverein mit Flatfile-Speicherung und Admin-Backend.
index.php + assets/js/form.jsapi/load-draft.phpapi/save-draft.phpapi/submit.phpapi/reset.phpadmin/login.phpadmin/index.phpadmin/application.phpadmin/download.phpadmin/download-zip.phpadmin/delete.phpsrc/Storage/JsonStore.phpsrc/Storage/FileUploadStore.phpsrc/Form/Validator.phpsrc/Security/Csrf.phpsrc/Security/RateLimiter.phpsrc/Mail/Mailer.php (PHPMailer-basiert, HTML-Mails + PDF-Anhänge)src/Mail/PdfGenerator.php (TCPDF/FPDI, erzeugt Antrags- und Anlagen-PDFs)src/Mail/SubmissionFormatter.php (Formatierung der Formulardaten für Mail/PDF)load-draft prüft zuerst Submission (Unique-Constraint), dann Draft.save-draft; Uploads werden zusätzlich sofort nach Dateiauswahl hochgeladen.storage/uploads/{application_key}/{field}/{rand8}/{original_filename} geschrieben.submit führt atomaren Lock + Validierung + Submission + Mailversand aus.mod_rewrite.AllowOverride All muss aktiv sein, damit die Root-.htaccess greift..htaccess blockiert.config/form_schema.phpconfig/form_schema.php (required / required_if)config/app.local.php + optional pro Feld im Schemaconfig/app.local.php + src/Admin/Auth.phpconfig/mail.local.php + src/Mail/Mailer.phpsrc/Mail/PdfGenerator.phpconfig/app.local.php + Cron bin/cleanup.phpconfig/app.local.php -> rate_limit (Details: docs/RATE_LIMITING.md)config/app.local.php -> disclaimer + index.phpconfig/app.sample.php, config/mail.sample.phpconfig/app.local.php, config/mail.local.phpphpmailer/phpmailer — HTML-Mails mit MIME-Multipart und PDF-Anhängen.tecnickcom/tcpdf — PDF-Erzeugung (Formulardaten, Bild-Einbettung).setasign/fpdi — Import bestehender PDF-Seiten in kombinierte Anlagen-PDFs.vendor/ wird committed (kein Composer-CLI auf Shared Hosting).