from docx import Document from docx.shared import Pt DOC_PATH = "/Users/azu/Desktop/VTubeAwards/VTuber Star Awards - Website V2.docx" def add_paragraph(doc: Document, text: str, style: str | None = None): paragraph = doc.add_paragraph(style=style) paragraph.paragraph_format.space_after = Pt(5) paragraph.paragraph_format.line_spacing = 1.1 paragraph.add_run(text) def main(): doc = Document(DOC_PATH) doc.add_heading("26. Session- und Login-Stand", level=1) add_paragraph( doc, "Der aktuelle Entwicklungsstand enthaelt nun eine echte, datenbankgestuetzte Session-Schicht statt rein manueller Demo-User-IDs in den Produktflows. Fuer die Entwicklung wird ein leichtgewichtiges Dev-Login verwendet, das Viewer- und Admin-Sessions erstellt und damit die End-to-End-Kopplung zwischen Frontend, Backend und Datenbank abbildet.", ) add_paragraph(doc, "Aktueller Umfang", style="Heading 2") add_paragraph( doc, "Viewer-Sessions schalten Nominierung und Voting frei; Admin-Sessions schalten den Admin-Bereich und die Season-/Category-Verwaltung frei. Die Public-Submit-Endpunkte koennen die User-Identitaet nun direkt aus der Session lesen, und die Admin-Endpunkte sind serverseitig gegen nicht autorisierte Zugriffe abgesichert.", ) add_paragraph(doc, "Produktive Weiterentwicklung", style="Heading 2") add_paragraph( doc, "Diese Session-Schicht ist bewusst so angelegt, dass sie spaeter durch echten Twitch OAuth ersetzt werden kann, ohne den restlichen App-Flow neu modellieren zu muessen. Damit ist der MVP bereits als zusammenhaengende Application nutzbar, waehrend die produktive Authentifizierung als naechster Ausbaupunkt klar vorbereitet ist.", ) doc.save(DOC_PATH) if __name__ == "__main__": main()