Betriebliche Projektarbeit

Entwicklung einer webbasierten Anwendung zur Erstellung, Verwaltung und Freigabe digitaler Ausbildungsnachweise

Abschlussprüfung Fachinformatiker für Anwendungsentwicklung, Sommer 2026
Prüfling Michael Sibozo
Ausbildungsbetrieb Systemhaus Ulm GmbH, Wiblinger Str. 37, 89231 Neu-Ulm
Umschulungsträger bfz gGmbH Ulm
Projektverantwortlicher Philipp Kohler
Durchführungszeitraum 07.04.2026 – 03.06.2026
Gesamtaufwand 80 Stunden

1. Projektbeschreibung und Zielsetzung

Im Ausbildungsbetrieb werden Ausbildungsnachweise derzeit über eine externe Webanwendung verwaltet. Diese Lösung erfüllt zwar grundsätzlich den Zweck der digitalen Nachweisführung, verursacht jedoch wiederkehrende, lizenzabhängige Kosten und bietet nur eingeschränkte Möglichkeiten zur Anpassung an interne betriebliche Abläufe. Da im Unternehmen neben Auszubildenden auch Umschüler, Werkstudenten und Praktikanten mit unterschiedlichen Einsatzzeiträumen betreut werden, ist eine flexibel anpassbare Lösung fachlich und wirtschaftlich sinnvoll.

Ziel des Projekts ist die Entwicklung einer webbasierten Anwendung zur Erstellung, Verwaltung und Freigabe digitaler Ausbildungsnachweise. Die Anwendung soll es Auszubildenden ermöglichen, ihre Wochenberichte digital zu erfassen, zu bearbeiten und zur Prüfung einzureichen. Ausbilder sollen eingereichte Berichte prüfen, kommentieren, freigeben oder ablehnen können. Zusätzlich sollen E-Mail-Benachrichtigungen bei relevanten Statusänderungen versendet und freigegebene Ausbildungsnachweise als PDF-Datei erzeugt werden können.

Die Anwendung wird als interne Webanwendung auf Basis von PHP mit dem Framework Laravel umgesetzt. Für die Benutzeroberflächen werden HTML, CSS und JavaScript verwendet. Die Datenhaltung erfolgt in einer relationalen Datenbank auf Basis von MySQL beziehungsweise MariaDB. Die Umsetzung erfolgt als eigenständiges internes Projekt im Ausbildungsbetrieb.

Das Projekt verfolgt folgende Hauptziele:

  • Ablösung beziehungsweise Ergänzung der bisher genutzten externen Lösung durch eine interne Webanwendung
  • Digitale Erfassung von Wochenberichten durch Auszubildende
  • Umsetzung eines nachvollziehbaren Prüf- und Freigabeworkflows
  • Rollenbasierte Trennung zwischen Auszubildenden und Ausbildern
  • Automatische Benachrichtigung bei Statusänderungen
  • PDF-Erzeugung für freigegebene Ausbildungsnachweise
  • Reduzierung von Lizenzabhängigkeiten und Verbesserung der Anpassbarkeit

Die Anwendung wird im Rahmen des Abschlussprojekts als funktionsfähiger Prototyp umgesetzt. Eine vollständige Produktivsetzung, die Migration bestehender Daten aus der bisher genutzten Plattform sowie die Anbindung externer Systeme sind nicht Bestandteil des Projekts. Diese Punkte werden im Ausblick als mögliche Erweiterungen betrachtet.


2. Ausgangssituation und Anforderungsanalyse

2.1 Unternehmens- und Projektumfeld

Das Projekt wird bei der Systemhaus Ulm GmbH in Neu-Ulm durchgeführt. Das Unternehmen ist im Bereich IT-Dienstleistungen und Softwareentwicklung tätig. Auftraggeber des Projekts ist der fachliche Ausbilder. Die spätere Benutzergruppe der Anwendung besteht aus Auszubildenden, Umschülern, Werkstudenten und Praktikanten sowie den zuständigen Ausbildern.

Die Anwendung unterstützt einen wiederkehrenden betrieblichen Prozess: die Erstellung, Prüfung und Archivierung von Ausbildungsnachweisen. Ausbildungsnachweise sind für die Ausbildung relevant, da sie den Verlauf der Ausbildung dokumentieren und regelmäßig geprüft werden müssen. Der bisherige Prozess ist abhängig von einer externen Plattform und kann nur begrenzt an interne Anforderungen angepasst werden.

2.2 Ist-Analyse

Aktuell werden Ausbildungsnachweise über eine externe Webanwendung geführt. Auszubildende erfassen dort ihre Tätigkeiten, während Ausbilder die Nachweise prüfen und freigeben. Die Datenverarbeitung und Speicherung erfolgt außerhalb des Unternehmens. Anpassungen an das Layout, den Workflow oder zusätzliche interne Anforderungen sind nur im Rahmen der vom Anbieter bereitgestellten Funktionen möglich.

Die Nutzung der externen Lösung führt zu folgenden Einschränkungen:

  • wiederkehrende Lizenzkosten pro Benutzer oder Zeitraum
  • Abhängigkeit von Verfügbarkeit und Weiterentwicklung des Drittanbieters
  • eingeschränkte Anpassbarkeit an interne Rollen, Prozesse und Formate
  • begrenzte Kontrolle über Datenhaltung und technische Erweiterbarkeit
  • keine einfache Integration in eigene interne Systeme
  • eingeschränkte Möglichkeit zur Umsetzung individueller Erinnerungs- und Freigabeprozesse

Zusätzlich entsteht administrativer Aufwand, wenn neue Benutzer angelegt, Berechtigungen angepasst oder Nachweise exportiert und abgelegt werden müssen. Da unterschiedliche Personengruppen wie Auszubildende, Umschüler, Werkstudenten und Praktikanten betreut werden, ist eine starre externe Lizenz- und Rollenstruktur nicht optimal.

2.3 Problemstellung

Die zentrale Problemstellung besteht darin, dass ein regelmäßig benötigter betrieblicher Prozess von einer externen Lösung abhängig ist. Diese Lösung verursacht Kosten und lässt sich nur begrenzt an interne Anforderungen anpassen. Für den Ausbildungsbetrieb ist es daher sinnvoll, eine eigene Webanwendung zu entwickeln, die den Kernprozess der Ausbildungsnachweise digital abbildet und gleichzeitig erweiterbar bleibt.

Die neue Anwendung soll den bestehenden Prozess nicht unnötig komplexer machen. Der Schwerpunkt liegt deshalb auf einem klar abgegrenzten MVP. Dieses MVP enthält die Funktionen, die für die Erstellung, Prüfung und Freigabe von Ausbildungsnachweisen notwendig sind. Erweiterungen wie Mehrmandantenfähigkeit, Schnittstellen zu HR-Systemen oder qualifizierte elektronische Signaturen werden bewusst nicht umgesetzt, um den Projektumfang im Rahmen von 80 Stunden einzuhalten.

2.4 Zielgruppe und Stakeholder

Die wichtigsten Stakeholder des Projekts sind:

StakeholderInteresse am Projekt
AuszubildendeEinfache digitale Erfassung und Übersicht eigener Wochenberichte
AusbilderSchnelle Prüfung, Kommentierung und Freigabe eingereichter Berichte
AusbildungsbetriebReduzierung von Lizenzabhängigkeiten und bessere Anpassbarkeit
ProjektverantwortlicherFachliche Abnahme und Bewertung der Praxistauglichkeit
PrüflingPlanung, Umsetzung und Dokumentation eines prüfungsrelevanten Softwareprojekts

Die Hauptbenutzer der Anwendung sind Auszubildende und Ausbilder. Auszubildende benötigen eine übersichtliche Oberfläche zum Erfassen, Speichern und Einreichen ihrer Berichte. Ausbilder benötigen eine Ansicht eingereichter Berichte, Kommentarfunktionen sowie Aktionen zur Freigabe oder Ablehnung.

2.5 Funktionale Anforderungen

Die funktionalen Anforderungen beschreiben, welche konkreten Funktionen die Anwendung bereitstellen muss.

Nr.AnforderungPriorität
F-01Benutzer können sich anmelden und rollenabhängig auf Funktionen zugreifen.Muss
F-02Auszubildende können Wochenberichte erstellen.Muss
F-03Auszubildende können Berichte als Entwurf speichern.Muss
F-04Auszubildende können Entwürfe bearbeiten.Muss
F-05Auszubildende können Berichte zur Prüfung einreichen.Muss
F-06Ausbilder können eingereichte Berichte einsehen.Muss
F-07Ausbilder können Berichte kommentieren.Muss
F-08Ausbilder können Berichte freigeben.Muss
F-09Ausbilder können Berichte ablehnen.Muss
F-10Benutzer werden bei Statusänderungen per E-Mail informiert.Muss
F-11Freigegebene Berichte können als PDF erzeugt werden.Muss
F-12Berichte werden chronologisch angezeigt.Sollte
F-13Abgelehnte Berichte können durch Auszubildende überarbeitet werden.Sollte
F-14Pflichtfelder werden serverseitig validiert.Muss

2.6 Nichtfunktionale Anforderungen

Neben den fachlichen Funktionen wurden nichtfunktionale Anforderungen definiert. Diese betreffen Qualitätseigenschaften wie Sicherheit, Wartbarkeit und Bedienbarkeit.

Nr.AnforderungBeschreibung
NF-01BedienbarkeitDie Anwendung soll ohne Schulungsaufwand bedienbar sein.
NF-02WartbarkeitDie Anwendung soll klar strukturiert und erweiterbar sein.
NF-03SicherheitZugriff auf Berichte darf nur rollen- und benutzerabhängig erfolgen.
NF-04DatenschutzEs werden nur notwendige personenbezogene Daten gespeichert.
NF-05NachvollziehbarkeitStatusänderungen sollen eindeutig erkennbar sein.
NF-06PlattformunabhängigkeitDie Anwendung soll im Browser nutzbar sein.
NF-07DatenkonsistenzBerichte und Einträge werden relational gespeichert.
NF-08ErweiterbarkeitZusätzliche Rollen oder Workflows sollen später ergänzbar sein.

2.7 Projektabgrenzung

Zur Einhaltung des genehmigten Zeitrahmens von 80 Stunden wird das Projekt bewusst abgegrenzt. Nicht Bestandteil des Projekts sind:

  • Entwicklung einer nativen mobilen Anwendung
  • Migration bestehender Daten aus der bisherigen externen Plattform
  • Anbindung an IHK-Portale oder andere externe Systeme
  • Umsetzung einer qualifizierten elektronischen Signatur
  • Mehrmandantenfähigkeit für mehrere Standorte
  • komplexe Reporting- oder Statistikfunktionen
  • vollständige Produktivsetzung inklusive Betriebskonzept
  • Bearbeitung hochgeladener Word- oder PDF-Dateien direkt im Browser

Diese Abgrenzung stellt sicher, dass der Fokus auf den prüfungsrelevanten Kernfunktionen liegt: Anforderungsanalyse, Konzeption, Datenmodell, Implementierung, Test und Bewertung einer funktionsfähigen Webanwendung.

2.8 Wirtschaftlichkeitsbetrachtung

Die Wirtschaftlichkeitsbetrachtung bewertet, ob die Eigenentwicklung im Vergleich zur weiteren Nutzung einer externen Lösung sinnvoll ist. Da die bisherige Lösung wiederkehrende Lizenzkosten verursacht und nur eingeschränkt anpassbar ist, entstehen sowohl direkte als auch indirekte Kosten.

Für die Eigenentwicklung entstehen zunächst einmalige Projektkosten, die sich aus den Entwicklungsstunden des Auszubildenden sowie den begleitenden Aufwänden für Fachgespräche, Code-Review und Abnahme zusammensetzen. Diese werden anhand kalkulatorischer Stundensätze betrachtet.

Zusätzlich können laufende Betriebskosten für Server, Wartung und Pflege entstehen. Da die Anwendung zunächst als interner Prototyp entwickelt wird und vorhandene Infrastruktur genutzt werden kann, werden diese Kosten im Projektzeitraum nicht als eigenständige Beschaffungskosten angesetzt.

Projektkosten der Eigenentwicklung

Die Kalkulation erfolgt mit kalkulatorischen Stundensätzen (Auszubildender 20,00 EUR, Mitarbeiter 45,00 EUR), da die tatsächlichen Personalkosten nicht veröffentlicht werden.

VorgangBeteiligteZeitStundensatzKosten
Entwicklung1 × Auszubildender80 h20,00 EUR1.600,00 EUR
Fachgespräche1 × Ausbilder4 h45,00 EUR180,00 EUR
Code-Review1 × Entwickler2 h45,00 EUR90,00 EUR
Abnahme1 × Ausbilder1 h45,00 EUR45,00 EUR
Projektkosten gesamt1.915,00 EUR

Kostenvergleich (jährlich)

Die bisher genutzte externe Lösung verursacht nutzerabhängige Lizenzkosten. Für die Betrachtung werden 15 betreute Personen (Auszubildende, Umschüler, Werkstudenten, Praktikanten) zu durchschnittlich 6,00 EUR pro Person und Monat angenommen.

KostenartExterne LösungEigenentwicklung
Einmalige Entwicklungskosten0,00 EUR1.915,00 EUR
Lizenzkosten pro Jahr1.080,00 EUR (15 × 6 × 12)0,00 EUR
Anpassbarkeiteingeschränkthoch
Datenhaltungexternintern möglich
Erweiterbarkeitabhängig vom Anbieterdurch Betrieb steuerbar

Amortisationsrechnung

Die jährliche Kostenersparnis entspricht den eingesparten Lizenzkosten von 1.080,00 EUR. Die Amortisationsdauer ergibt sich aus den einmaligen Entwicklungskosten geteilt durch die jährliche Ersparnis:

1.915,00 EUR ÷ 1.080,00 EUR/Jahr ≈ 1,77 Jahre ≈ 1 Jahr und 9 Monate

Nach rund 1 Jahr und 9 Monaten sind die Entwicklungskosten durch die eingesparten Lizenzkosten gedeckt. Da das Unternehmen die Anwendung langfristig einsetzen möchte, ist das Projekt auch unter wirtschaftlichen Gesichtspunkten sinnvoll.

Über die rein monetäre Betrachtung hinaus liegt der wesentliche Nutzen in der höheren Anpassbarkeit, der besseren Kontrolle über Daten und Prozesse sowie der Möglichkeit, die Anwendung gezielt zu erweitern. Für ein Systemhaus mit eigener Softwarekompetenz ist dies ein relevanter qualitativer Vorteil. Gleichzeitig reduziert die Eigenentwicklung die Abhängigkeit von Drittanbietern und schafft eine technische Grundlage für weitere interne Digitalisierungsprozesse.


3. Technische Konzeption und Systemarchitektur

3.1 Technologieauswahl

Für die technische Umsetzung wurde ein klassischer Webanwendungsansatz gewählt. Die Anwendung wird serverseitig mit PHP und Laravel entwickelt. Laravel stellt viele Funktionen bereit, die für das Projekt relevant sind, darunter Routing, MVC-Struktur, Datenbankmigrationen, Eloquent ORM, Middleware, Validierung, Authentifizierung, Mailversand und gute Erweiterbarkeit.

Die Auswahl der Technologien:

BereichTechnologieBegründung
BackendPHP 8.1 / Laravel 10Geeignet für schnelle Entwicklung strukturierter Webanwendungen
FrontendHTML, CSS, JavaScript, BladeAusreichend für serverseitig gerenderte Formulare und Übersichten
DatenbankSQLite (Entwicklung), MySQL/MariaDB (Produktion)Relationale Datenstruktur; SQLite ohne Serverinstallation für den Prototyp
PDFbarryvdh/laravel-dompdf (DomPDF)Serverseitige PDF-Erzeugung aus HTML-Views möglich
E-MailLaravel Mail (Log-Treiber im Prototyp)Integrierte Mail-Funktionalität und saubere Trennung über Mailable-Klassen
VersionsverwaltungGitNachvollziehbarkeit von Änderungen

Für die Datenhaltung wird im Entwicklungs- und Prototypbetrieb SQLite eingesetzt, da es ohne separaten Datenbankserver auskommt und sich die Anwendung dadurch schnell und reproduzierbar starten lässt. Das relationale Datenmodell ist datenbankunabhängig über Laravel-Migrationen definiert, sodass für den Produktivbetrieb ohne Codeänderung auf MySQL beziehungsweise MariaDB gewechselt werden kann. Der E-Mail-Versand nutzt im Prototyp den Log-Treiber, wodurch die Benachrichtigungen nachvollziehbar in der Logdatei protokolliert werden, ohne dass ein realer Mailserver erforderlich ist.

3.2 Vergleich möglicher Lösungsansätze

Im Rahmen der Konzeption wurden drei grundsätzliche Lösungsansätze betrachtet.

Variante 1: Weiterverwendung der externen Lösung

Diese Variante hätte den geringsten Entwicklungsaufwand verursacht. Die bestehenden Einschränkungen hinsichtlich Lizenzkosten, Datenhaltung und Anpassbarkeit wären jedoch bestehen geblieben. Da das Ziel des Projekts ausdrücklich eine interne und anpassbare Alternative ist, wurde diese Variante verworfen.

Variante 2: Eigenentwicklung als Single-Page-Application mit REST-API

Eine Trennung in Backend-API und modernes JavaScript-Frontend wäre technisch flexibel. Für den Projektumfang von 80 Stunden wäre dieser Ansatz jedoch zu aufwendig gewesen. Zusätzlich hätten Authentifizierung, API-Sicherheit und Frontend-State-Management mehr Komplexität erzeugt, ohne für das MVP zwingend erforderlich zu sein.

Variante 3: Monolithische Laravel-Webanwendung

Diese Variante wurde ausgewählt. Laravel ermöglicht eine schnelle Umsetzung mit klarer MVC-Struktur. Blade-Templates reichen für die benötigten Formulare, Listen und Detailansichten aus. Die Anwendung bleibt trotzdem erweiterbar, da Geschäftslogik später in Services ausgelagert und Schnittstellen ergänzt werden können.

KriteriumExterne LösungSPA + APILaravel-Monolith
Entwicklungsaufwandniedrighochmittel
Anpassbarkeitniedrighochhoch
Komplexitätniedrighochmittel
Geeignet für 80 Stundenneineingeschränktja
Wartbarkeit im Betriebabhängig vom Anbietergut, aber komplexgut

3.3 Architekturkonzept

Die Anwendung wird als monolithische Laravel-Anwendung nach dem MVC-Prinzip umgesetzt. Das bedeutet, dass Datenmodell, Anwendungslogik und Darstellung voneinander getrennt werden.

Die Schichten der Anwendung:

  1. Presentation Layer – Blade-Templates, HTML-Formulare, Übersichtsseiten und Detailansichten.
  2. Controller Layer – Entgegennahme von HTTP-Requests, Aufruf der Fachlogik und Rückgabe von Views oder Weiterleitungen.
  3. Application / Service Layer – Fachliche Abläufe wie Statuswechsel, Einreichen, Freigeben, Ablehnen, Benachrichtigung und PDF-Erzeugung.
  4. Domain / Model Layer – Eloquent Models für Benutzer, Ausbildungsnachweise, Einträge und Kommentare.
  5. Infrastructure Layer – Datenbank, Mailversand, PDF-Bibliothek und Dateisystem.

Vereinfachte Architektur:

flowchart TD A[Browser] --> B[Laravel Routes] B --> C[Controller] C --> D[Service-Klassen] D --> E[Eloquent Models] E --> F[(MySQL/MariaDB)] D --> G[Mail-Service] D --> H[PDF-Service] C --> I[Blade Views] I --> A

3.4 Rollen- und Berechtigungskonzept

Die Anwendung unterscheidet zwei Hauptrollen:

RolleBerechtigungen
Azubieigene Berichte erstellen, bearbeiten, einreichen und einsehen
Ausbildereingereichte Berichte einsehen, kommentieren, freigeben oder ablehnen

Die Berechtigungen werden serverseitig umgesetzt. Entscheidend ist, dass die Benutzeroberfläche allein nicht als Sicherheitsmechanismus ausreicht. Auch wenn ein Button für einen Benutzer nicht angezeigt wird, muss der Zugriff im Backend zusätzlich geprüft werden.

Beispiele:

  • Ein Auszubildender darf nur eigene Berichte sehen.
  • Ein Auszubildender darf einen freigegebenen Bericht nicht mehr bearbeiten.
  • Ein Ausbilder darf eingereichte Berichte prüfen.
  • Nur freigegebene Berichte dürfen als finales PDF exportiert werden.

Die technische Umsetzung erfolgt über Middleware, Policies oder zentrale Prüfungen in Controller- beziehungsweise Serviceklassen.

3.5 Status- und Freigabekonzept

Ein Ausbildungsnachweis durchläuft mehrere Zustände. Diese Zustände bilden den fachlichen Workflow ab.

StatusBedeutung
EntwurfBericht wurde erstellt, aber noch nicht eingereicht
EingereichtBericht wurde durch den Auszubildenden zur Prüfung gesendet
FreigegebenBericht wurde durch den Ausbilder akzeptiert
AbgelehntBericht wurde durch den Ausbilder zurückgewiesen

Statusübergänge:

stateDiagram-v2 [*] --> Entwurf Entwurf --> Eingereicht: einreichen Eingereicht --> Freigegeben: freigeben Eingereicht --> Abgelehnt: ablehnen Abgelehnt --> Entwurf: überarbeiten Freigegeben --> [*]

Die Statuslogik verhindert ungültige Abläufe. Ein freigegebener Bericht darf beispielsweise nicht mehr durch den Auszubildenden verändert werden. Ein abgelehnter Bericht kann hingegen erneut bearbeitet und wieder eingereicht werden.

3.6 Sicherheitskonzept

Für die Anwendung sind mehrere Sicherheitsmaßnahmen relevant:

  • Authentifizierung vor Zugriff auf geschützte Bereiche
  • rollenbasierte Autorisierung
  • serverseitige Validierung aller Eingaben
  • Schutz vor Cross-Site Request Forgery durch CSRF-Tokens
  • Schutz vor unberechtigtem Zugriff auf fremde Berichte
  • Nutzung vorbereiteter Datenbankzugriffe über Eloquent ORM
  • keine Speicherung unnötiger personenbezogener Daten
  • klare Fehlermeldungen ohne technische Detailinformationen für Endbenutzer

Da Ausbildungsnachweise personenbezogene Daten enthalten können, ist insbesondere der Zugriffsschutz wichtig. Auszubildende dürfen ausschließlich eigene Berichte einsehen und bearbeiten. Ausbilder erhalten Zugriff auf eingereichte Berichte zur Prüfung.

3.7 Benutzeroberflächen und Navigationsstruktur

Die Benutzeroberfläche wird bewusst einfach gehalten. Die Anwendung soll ohne längere Einarbeitung genutzt werden können. Die Navigation unterscheidet sich je nach Rolle.

Navigation für Auszubildende

  • Dashboard
  • Meine Berichte
  • Neuen Bericht erstellen
  • Bericht bearbeiten
  • Bericht einreichen
  • PDF anzeigen, sofern freigegeben

Navigation für Ausbilder

  • Dashboard
  • Eingereichte Berichte
  • Bericht prüfen
  • Kommentar erfassen
  • Bericht freigeben
  • Bericht ablehnen

Die Oberfläche folgt einem formularbasierten Aufbau. Für die Zielgruppe ist keine komplexe Single-Page-Oberfläche erforderlich. Wichtig sind klare Statusanzeigen, verständliche Aktionen und nachvollziehbare Rückmeldungen nach dem Speichern oder Einreichen.


4. Datenbankmodell

4.1 Fachliches Datenmodell

Das Datenmodell bildet die zentralen Objekte der Anwendung ab:

  • Benutzer
  • Ausbildungsnachweise
  • Berichtseinträge
  • Kommentare

Ein Benutzer kann mehrere Ausbildungsnachweise besitzen. Ein Ausbildungsnachweis besteht aus mehreren Einträgen. Ein Bericht kann Kommentare durch Ausbilder enthalten. Zusätzlich werden Statusinformationen und Zeitpunkte gespeichert.

4.2 Entitäten und Beziehungen

erDiagram USERS ||--o{ TRAINING_REPORTS : creates TRAINING_REPORTS ||--o{ REPORT_ENTRIES : contains TRAINING_REPORTS ||--o{ REPORT_COMMENTS : has USERS ||--o{ REPORT_COMMENTS : writes USERS ||--o{ TRAINING_REPORTS : approves USERS { int id PK string name string email string password string role timestamp created_at timestamp updated_at } TRAINING_REPORTS { int id PK int user_id FK int approved_by FK date week_start date week_end string status timestamp submitted_at timestamp approved_at timestamp created_at timestamp updated_at } REPORT_ENTRIES { int id PK int training_report_id FK date entry_date text activity decimal hours timestamp created_at timestamp updated_at } REPORT_COMMENTS { int id PK int training_report_id FK int author_id FK text comment timestamp created_at timestamp updated_at }

4.3 Tabellenbeschreibung

Tabelle users

Die Tabelle users speichert die Benutzer der Anwendung. Neben den Standardfeldern für Name, E-Mail-Adresse und Passwort enthält sie ein Rollenfeld.

FeldTypBeschreibung
idintegerPrimärschlüssel
namevarcharName des Benutzers
emailvarchareindeutige E-Mail-Adresse
passwordvarcharPasswort-Hash
rolevarcharRolle, z. B. azubi oder ausbilder
created_attimestampErstellungszeitpunkt
updated_attimestampÄnderungszeitpunkt

Tabelle training_reports

Diese Tabelle speichert die Wochenberichte. Jeder Bericht ist einem Benutzer zugeordnet.

FeldTypBeschreibung
idintegerPrimärschlüssel
user_idintegerFremdschlüssel auf Benutzer
approved_byinteger/nullBenutzer-ID des freigebenden Ausbilders
week_startdateBeginn der Berichtswoche
week_enddateEnde der Berichtswoche
statusvarcharEntwurf, eingereicht, freigegeben oder abgelehnt
submitted_attimestamp/nullZeitpunkt der Einreichung
approved_attimestamp/nullZeitpunkt der Freigabe
created_attimestampErstellungszeitpunkt
updated_attimestampÄnderungszeitpunkt

Tabelle report_entries

Die Tabelle report_entries enthält die einzelnen Tätigkeitszeilen eines Berichts.

FeldTypBeschreibung
idintegerPrimärschlüssel
training_report_idintegerFremdschlüssel auf Wochenbericht
entry_datedateDatum der Tätigkeit
activitytextBeschreibung der Tätigkeit
hoursdecimalZeitaufwand in Stunden
created_attimestampErstellungszeitpunkt
updated_attimestampÄnderungszeitpunkt

Tabelle report_comments

Die Tabelle report_comments speichert Kommentare von Ausbildern zu Berichten.

FeldTypBeschreibung
idintegerPrimärschlüssel
training_report_idintegerFremdschlüssel auf Wochenbericht
author_idintegerFremdschlüssel auf Benutzer
commenttextKommentartext
created_attimestampErstellungszeitpunkt
updated_attimestampÄnderungszeitpunkt

4.4 Normalisierung

Das Datenmodell wurde so aufgebaut, dass wiederholte Informationen vermieden werden. Benutzerinformationen werden nur in der Tabelle users gespeichert. Wochenberichte verweisen über Fremdschlüssel auf Benutzer. Tätigkeiten werden nicht direkt im Wochenbericht gespeichert, sondern in einer eigenen Tabelle report_entries. Dadurch können mehrere Tätigkeiten pro Bericht abgebildet werden, ohne mehrere Spalten wie activity_1, activity_2 oder activity_3 anlegen zu müssen.

Die erste Normalform ist erfüllt, da alle Felder atomare Werte enthalten. Die zweite Normalform ist erfüllt, da alle Nicht-Schlüsselfelder vollständig vom jeweiligen Primärschlüssel abhängen. Die dritte Normalform ist erfüllt, da keine transitiven Abhängigkeiten zwischen Nicht-Schlüsselfeldern bestehen. Beispielsweise wird der Name eines Auszubildenden nicht zusätzlich im Bericht gespeichert, sondern über die Beziehung zur Tabelle users ermittelt.

Die relationale Struktur verbessert die Datenkonsistenz und erleichtert spätere Erweiterungen, zum Beispiel zusätzliche Statusprotokolle oder weitere Rollen.


5. Implementierung der Anwendung

5.1 Projektstruktur

Die Implementierung erfolgt innerhalb einer Laravel-Projektstruktur. Laravel trennt die Anwendung in verschiedene Verzeichnisse für Models, Controller, Views, Routen, Datenbankmigrationen und Konfiguration.

Wichtige Bestandteile der Projektstruktur:

BereichZweck
app/ModelsEloquent Models für Datenbanktabellen
app/Http/ControllersController für HTTP-Anfragen
app/PoliciesBerechtigungsprüfungen
app/MailMail-Klassen für Benachrichtigungen
resources/viewsBlade-Templates für Benutzeroberflächen
routes/web.phpWebrouten der Anwendung
database/migrationsDatenbankstruktur
testsTestfälle

Die Entscheidung für diese Struktur unterstützt eine klare Trennung der Verantwortlichkeiten. Controller verarbeiten Eingaben, Models bilden Daten ab und Views sind für die Darstellung zuständig.

5.2 Datenbankmigrationen und Models

Die Datenbankstruktur wird über Laravel-Migrationen erstellt. Migrationen bieten den Vorteil, dass die Datenbankstruktur versioniert und reproduzierbar aufgebaut werden kann.

Migration für Ausbildungsnachweise (Auszug aus database/migrations/2026_03_03_000001_create_training_reports_table.php):

Schema::create('training_reports', function (Blueprint $table) {
    $table->id();
    $table->foreignId('user_id')->constrained()->cascadeOnDelete();
    $table->foreignId('approved_by')->nullable()->constrained('users')->nullOnDelete();
    $table->date('week_start');
    $table->date('week_end');
    $table->string('status')->default('draft');
    $table->timestamp('submitted_at')->nullable();
    $table->timestamp('approved_at')->nullable();
    $table->timestamps();
});

Das zugehörige Model TrainingReport (Auszug aus app/Models/TrainingReport.php) enthält Beziehungen zu Benutzer, Einträgen und Kommentaren.

class TrainingReport extends Model
{
    protected $fillable = [
        'user_id',
        'approved_by',
        'week_start',
        'week_end',
        'status',
        'submitted_at',
        'approved_at',
    ];

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    public function entries()
    {
        return $this->hasMany(ReportEntry::class);
    }

    public function comments()
    {
        return $this->hasMany(ReportComment::class);
    }
}

Die Beziehungen ermöglichen eine einfache und lesbare Abfrage der zusammengehörigen Daten. Dadurch können Berichte mit ihren Einträgen und Kommentaren gemeinsam angezeigt werden.

5.3 Berichtserfassung durch Auszubildende

Auszubildende können neue Wochenberichte erstellen. Dabei werden der Zeitraum sowie einzelne Tätigkeiten erfasst. Ein Bericht wird zunächst als Entwurf gespeichert. Solange der Bericht den Status draft oder rejected besitzt, darf der Auszubildende ihn bearbeiten.

Der grundlegende Ablauf:

  1. Auszubildender meldet sich an.
  2. Auszubildender öffnet die Übersicht eigener Berichte.
  3. Auszubildender erstellt einen neuen Bericht.
  4. Pflichtfelder werden validiert.
  5. Bericht und Einträge werden gespeichert.
  6. Bericht kann später bearbeitet oder eingereicht werden.

Serverseitige Validierung (Auszug aus app/Http/Controllers/ReportController.php):

$request->validate([
    'week_start' => ['required', 'date'],
    'week_end' => ['required', 'date', 'after_or_equal:week_start'],
    'entries' => ['required', 'array', 'min:1'],
    'entries.*.entry_date' => ['required', 'date'],
    'entries.*.activity' => ['required', 'string', 'max:2000'],
    'entries.*.hours' => ['required', 'numeric', 'min:0.25', 'max:24'],
]);

Die Validierung verhindert unvollständige oder fachlich ungültige Eingaben. Beispielsweise dürfen Tätigkeiten nicht leer sein und Stundenwerte müssen in einem sinnvollen Bereich liegen.

5.4 Prüf- und Freigabeworkflow

Nach dem Einreichen erhält der Bericht den Status submitted. Dadurch wird er in der Prüfungsansicht der Ausbilder sichtbar. Ausbilder können den Bericht prüfen, einen Kommentar hinzufügen und anschließend freigeben oder ablehnen.

Bei einer Freigabe wird der Status auf approved gesetzt. Zusätzlich werden der freigebende Ausbilder und der Zeitpunkt der Freigabe gespeichert. Bei einer Ablehnung wird der Status auf rejected gesetzt. Der Auszubildende kann den Bericht anschließend überarbeiten und erneut einreichen.

Die Statuswechsel sind in einer eigenen Service-Klasse ReportWorkflowService gekapselt. Dadurch bleibt die Fachlogik vom Controller getrennt und ist gezielt testbar. Beispiel für die Freigabe (Auszug aus app/Services/ReportWorkflowService.php):

public function approve(TrainingReport $report, User $approver): void
{
    if ($report->status !== 'submitted') {
        throw new DomainException('Nur eingereichte Berichte können freigegeben werden.');
    }

    $report->update([
        'status' => 'approved',
        'approved_by' => $approver->id,
        'approved_at' => now(),
    ]);

    Mail::to($report->user->email)->send(new ReportStatusMail($report, 'approved'));
}

Die Statusprüfung stellt sicher, dass fachlich ungültige Aktionen nicht ausgeführt werden. Dadurch kann beispielsweise ein Entwurf nicht direkt freigegeben werden. Unmittelbar nach dem Statuswechsel wird der zuständige Auszubildende per E-Mail informiert.

5.5 E-Mail-Benachrichtigungen

E-Mail-Benachrichtigungen werden eingesetzt, um Benutzer über relevante Statusänderungen zu informieren. Wenn ein Bericht eingereicht wird, kann der zuständige Ausbilder informiert werden. Wird ein Bericht freigegeben oder abgelehnt, wird der Auszubildende informiert.

Benachrichtigungen werden bewusst an Statusänderungen gekoppelt. Dadurch wird vermieden, dass unnötige E-Mails bei jeder kleinen Bearbeitung versendet werden.

Relevante Ereignisse:

EreignisEmpfängerZweck
Bericht eingereichtAusbilderHinweis auf neuen Prüfauftrag
Bericht freigegebenAuszubildenderInformation über erfolgreiche Prüfung
Bericht abgelehntAuszubildenderHinweis auf notwendigen Korrekturbedarf

Die technische Umsetzung erfolgt über Laravel-Mailables. Dadurch bleiben E-Mail-Templates und Versandlogik getrennt von der eigentlichen Fachlogik.

5.6 PDF-Erzeugung

Für freigegebene Ausbildungsnachweise wird eine PDF-Erzeugung umgesetzt. Der PDF-Export ist nur für Berichte mit dem Status approved vorgesehen. Dadurch wird verhindert, dass unfertige oder abgelehnte Berichte als finale Nachweise exportiert werden.

Ablauf der PDF-Erzeugung:

  1. Benutzer öffnet einen freigegebenen Bericht.
  2. Anwendung prüft Berechtigung und Status.
  3. Daten des Berichts werden geladen.
  4. Eine separate PDF-View wird gerendert.
  5. Die PDF-Bibliothek erzeugt daraus eine PDF-Datei.
  6. Die Datei wird als Download bereitgestellt.

Der Export ist im ExportController umgesetzt (Auszug aus app/Http/Controllers/ExportController.php). Die Statusprüfung (approved) und der Zugriffsschutz werden zentral über die Policy-Methode export erzwungen:

public function export(TrainingReport $report)
{
    $this->authorize('export', $report);

    $report->load(['user', 'entries', 'comments.author', 'approver']);

    $pdf = Pdf::loadView('reports.pdf', ['report' => $report]);

    return $pdf->download('ausbildungsnachweis_' . $report->id . '.pdf');
}

Die zugehörige Policy stellt sicher, dass ausschließlich freigegebene Berichte exportiert werden dürfen (Auszug aus app/Policies/TrainingReportPolicy.php):

public function export(User $user, TrainingReport $report): bool
{
    return $report->status === 'approved'
        && ($user->id === $report->user_id || $user->isAusbilder());
}

Für die PDF-Ausgabe wird eine eigene View (resources/views/reports/pdf.blade.php) verwendet. Dadurch kann das Layout für die Druckausgabe unabhängig von der normalen Webansicht angepasst werden.

5.7 Validierung und Fehlerbehandlung

Alle Benutzereingaben werden serverseitig validiert. Dies ist notwendig, da clientseitige Validierung im Browser umgangen werden kann. Fehlerhafte Eingaben werden mit verständlichen Fehlermeldungen an den Benutzer zurückgegeben.

Beispiele für Validierungsregeln:

  • Zeitraum darf nicht leer sein.
  • Enddatum darf nicht vor dem Startdatum liegen.
  • Mindestens ein Tätigkeitseintrag muss vorhanden sein.
  • Stunden dürfen nicht negativ sein.
  • Kommentare dürfen nicht leer sein.

Neben der Validierung werden Berechtigungen konsequent geprüft. Ein Benutzer darf keine Berichte anderer Auszubildender bearbeiten. Ausbilderaktionen sind nur für Benutzer mit entsprechender Rolle möglich.


6. Testverfahren und Testergebnisse

6.1 Teststrategie

Die Qualitätssicherung erfolgt durch eine Kombination aus manuellen Funktionstests und automatisierten Feature-Tests mit PHPUnit. Die automatisierten Tests sichern die fachlich kritischen Abläufe dauerhaft und reproduzierbar ab, während die manuellen Tests die Bedienung und das Zusammenspiel der Oberfläche prüfen. Der Schwerpunkt liegt auf den Kernprozessen der Anwendung:

  • Anmeldung und rollenabhängige Navigation
  • Erstellung eines Wochenberichts
  • Bearbeitung eines Entwurfs
  • Einreichung zur Prüfung
  • Prüfung durch Ausbilder
  • Freigabe oder Ablehnung
  • E-Mail-Benachrichtigung
  • PDF-Erzeugung
  • Zugriffsschutz

Die Testfälle enthalten positive und negative Tests. Positive Tests prüfen erwartete Standardabläufe. Negative Tests prüfen, ob ungültige Aktionen korrekt verhindert werden.

6.2 Testumgebung

Die Tests werden in einer lokalen Entwicklungs- beziehungsweise Testumgebung durchgeführt. Verwendet werden:

  • PHP 8.1 mit Laravel 10
  • SQLite (Entwicklung); für automatisierte Tests In-Memory-SQLite
  • Browser zur manuellen Prüfung der Oberfläche
  • PHPUnit für automatisierte Feature-Tests
  • Testbenutzer für die Rollen Azubi und Ausbilder
  • Mail-Testkonfiguration über den Log-Mailer
  • DomPDF zur Prüfung des Exports

Für die Tests werden über einen Seeder (database/seeders/DatabaseSeeder.php) reproduzierbar Benutzer und Beispieldaten angelegt. Das Passwort der Testzugänge lautet einheitlich password.

BenutzerRolleZweck
azubi@example.testAzubiErstellung und Einreichung von Berichten
ausbilder@example.testAusbilderPrüfung, Kommentierung und Freigabe

6.3 Testfälle

TCTestfallSchritteErwartetes ErgebnisErgebnis
TC-01Login als AzubiBenutzer meldet sich mit gültigen Zugangsdaten anDashboard für Azubi wird angezeigtbestanden
TC-02Bericht erstellenAzubi erfasst Zeitraum und TätigkeitBericht wird als Entwurf gespeichertbestanden
TC-03Pflichtfelder leerAzubi speichert ohne TätigkeitValidierungsfehler wird angezeigtbestanden
TC-04Bericht bearbeitenAzubi ändert Tätigkeit im EntwurfÄnderung wird gespeichertbestanden
TC-05Bericht einreichenAzubi reicht Entwurf einStatus wird auf eingereicht gesetztbestanden
TC-06Eingereichten Bericht bearbeitenAzubi versucht eingereichten Bericht zu ändernBearbeitung wird verhindertbestanden
TC-07Login als AusbilderAusbilder meldet sich anPrüfungsübersicht wird angezeigtbestanden
TC-08Bericht kommentierenAusbilder fügt Kommentar hinzuKommentar wird gespeichert und angezeigtbestanden
TC-09Bericht freigebenAusbilder gibt Bericht freiStatus wird auf freigegeben gesetztbestanden
TC-10Bericht ablehnenAusbilder lehnt Bericht mit Kommentar abStatus wird auf abgelehnt gesetztbestanden
TC-11Abgelehnten Bericht überarbeitenAzubi bearbeitet abgelehnten BerichtBericht kann erneut eingereicht werdenbestanden
TC-12PDF eines freigegebenen BerichtsBenutzer lädt PDF herunterPDF wird erzeugt und enthält Berichtsdatenbestanden
TC-13PDF eines EntwurfsBenutzer versucht Entwurf zu exportierenZugriff wird verweigertbestanden
TC-14Zugriff auf fremden BerichtAzubi ruft Bericht eines anderen Benutzers aufZugriff wird verweigertbestanden
TC-15E-Mail bei StatusänderungBericht wird eingereicht/freigegeben/abgelehntE-Mail wird ausgelöst oder geloggtbestanden

6.4 Testergebnisse

Die definierten Kernfunktionen konnten erfolgreich getestet werden. Neben den manuellen Funktionstests wurden zentrale Abläufe zusätzlich durch automatisierte Feature-Tests mit PHPUnit abgesichert (tests/Feature/ReportWorkflowTest.php). Diese prüfen unter anderem die Berichtserstellung, die Validierung, die Statusübergänge, den Zugriffsschutz auf fremde Berichte sowie die Einschränkung des PDF-Exports auf freigegebene Berichte.

Ausgabe des automatisierten Testlaufs (php artisan test):

PASS  Tests\Unit\ExampleTest
✓ that true is true

PASS  Tests\Feature\ExampleTest
✓ the application redirects guests to login

PASS  Tests\Feature\ReportWorkflowTest
✓ azubi kann bericht erstellen
✓ bericht ohne taetigkeit wird abgelehnt
✓ enddatum vor startdatum ist ungueltig
✓ azubi kann bericht einreichen
✓ eingereichter bericht ist nicht editierbar
✓ ausbilder kann bericht freigeben
✓ ausbilder kann bericht ablehnen
✓ entwurf kann nicht freigegeben werden
✓ azubi kann fremden bericht nicht einsehen
✓ entwurf kann nicht exportiert werden
✓ ausbilder kann kommentieren
✓ gast wird zum login geleitet

Tests:    14 passed (24 assertions)
Duration: 2.73s

Besonders wichtig war die Prüfung des Statusmodells, da hierdurch der Freigabeprozess fachlich abgesichert wird. Durch die testgetriebene Absicherung wurde sichergestellt, dass ein freigegebener Bericht nicht mehr durch Auszubildende geändert werden kann und dass PDF-Exporte ausschließlich für freigegebene Berichte möglich sind.

Die Testergebnisse bestätigen, dass das MVP für eine Demonstration und fachliche Abnahme geeignet ist. Für eine spätere Produktivsetzung wären ergänzende Tests sinnvoll, insbesondere zusätzliche Integrations- und Lasttests sowie eine ausführlichere Datenschutz- und Sicherheitsprüfung.


7. Soll-Ist-Vergleich

7.1 Funktionsumfang

AnforderungSollIstBewertung
BenutzeranmeldungRollenbasierter Zugriffumgesetzterfüllt
BerichtserfassungWochenberichte erstellen und speichernumgesetzterfüllt
BearbeitungEntwürfe und abgelehnte Berichte bearbeitenumgesetzterfüllt
EinreichungBericht zur Prüfung einreichenumgesetzterfüllt
PrüfungAusbilder kann Berichte einsehenumgesetzterfüllt
KommentierungAusbilder kann Kommentare erfassenumgesetzterfüllt
Freigabe/AblehnungStatuswechsel durch Ausbilderumgesetzterfüllt
E-MailBenachrichtigung bei Statusänderungenumgesetzterfüllt
PDFExport freigegebener Berichteumgesetzterfüllt
Produktivsetzungvollständiger Livebetriebnicht geplantaußerhalb Projektumfang

Der geplante Funktionsumfang wurde im Rahmen des MVP umgesetzt. Nicht umgesetzte Erweiterungen entsprechen der definierten Projektabgrenzung und stellen keine Zielabweichung dar.

7.2 Zeitplanung

ProjektphaseSollIstAbweichung
Analyse der Ausgangssituation und Anforderungsermittlung10 h10 h0 h
Fachliche und technische Konzeption12 h12 h0 h
UI-Entwurf und Navigationsstruktur8 h7 h−1 h
Datenbankstruktur und Backend-Funktionen16 h17 h+1 h
Benutzeroberflächen und Berichtserfassung14 h14 h0 h
PDF-Erzeugung und E-Mail-Benachrichtigungen8 h9 h+1 h
Test und Qualitätssicherung6 h6 h0 h
Projektdokumentation6 h5 h−1 h
Gesamt80 h80 h0 h

7.3 Abweichungen und Begründungen

Die Gesamtzeit von 80 Stunden wurde eingehalten. Leichte Verschiebungen ergaben sich innerhalb einzelner Phasen. Für die Implementierung der Backend-Funktionen und die PDF-Erzeugung wurde etwas mehr Zeit benötigt als geplant. Ursache hierfür war die notwendige genaue Abstimmung der Statuslogik mit den Berechtigungsprüfungen. Insbesondere die Einschränkung, dass nur freigegebene Berichte exportiert werden dürfen, musste sauber in den Workflow integriert werden.

Zeit eingespart wurde beim UI-Entwurf, da bewusst eine einfache und formularbasierte Benutzeroberfläche gewählt wurde. Dadurch konnten die Oberflächen ohne umfangreiche Mockup-Iteration umgesetzt werden. Auch bei der Dokumentation wurde Zeit eingespart, da Projektergebnisse und Entscheidungen bereits während der Umsetzung fortlaufend notiert wurden.

Die Abweichungen hatten keinen negativen Einfluss auf das Projektergebnis. Der geplante MVP-Funktionsumfang wurde erreicht.


8. Fazit und Ausblick

Mit dem Projekt wurde eine webbasierte Anwendung zur Erstellung, Verwaltung und Freigabe digitaler Ausbildungsnachweise entwickelt. Die Anwendung bildet den zentralen Prozess vom Erstellen eines Wochenberichts über die Prüfung durch den Ausbilder bis zur Freigabe und PDF-Erzeugung ab.

Besonders wichtig war die klare Abgrenzung des Projektumfangs. Durch die Konzentration auf ein MVP konnten die wesentlichen Anforderungen innerhalb des vorgegebenen Zeitrahmens umgesetzt werden. Die gewählte Laravel-Architektur erwies sich als geeignet, da sie Authentifizierung, Routing, Datenbankzugriffe, Validierung, Mailversand und PDF-Erzeugung strukturiert unterstützt.

Aus fachlicher Sicht verbessert die Anwendung die Nachvollziehbarkeit des Berichtsprozesses. Auszubildende erhalten eine zentrale Übersicht ihrer Berichte. Ausbilder können eingereichte Berichte prüfen, kommentieren und den Bearbeitungsstatus eindeutig steuern. Durch die PDF-Erzeugung können freigegebene Nachweise zusätzlich archiviert oder weitergegeben werden.

Aus technischer Sicht bietet die Anwendung eine erweiterbare Grundlage. Die Trennung in Models, Controller, Views und fachliche Services erleichtert spätere Anpassungen. Das relationale Datenmodell ist normalisiert und kann bei Bedarf erweitert werden.

Für eine spätere Weiterentwicklung kommen insbesondere folgende Erweiterungen in Betracht:

  • Produktivsetzung auf einer internen Serverumgebung
  • automatisierte Erinnerungen bei fehlenden Wochenberichten
  • detaillierte Statushistorie je Bericht
  • Erweiterung um weitere Rollen, z. B. Administrator oder Personalabteilung
  • zentrale Benutzerverwaltung über ein bestehendes Verzeichnis
  • Export mehrerer Berichte als Sammel-PDF
  • elektronische Signatur oder zusätzlicher Bestätigungsworkflow
  • ausführlichere automatisierte Testabdeckung

Insgesamt wurde das Projektziel erreicht. Die entwickelte Anwendung stellt eine interne, anpassbare und wirtschaftlich sinnvolle Alternative zur bisher genutzten externen Lösung dar.


9. Quellenverzeichnis

Die folgenden Quellen wurden für technische Entscheidungen, Framework-Funktionen und allgemeine Umsetzung verwendet. Alle Online-Quellen wurden zuletzt am 12.06.2026 abgerufen.

  1. Laravel: Offizielle Dokumentation (Routing, Controllers, Validation, Eloquent ORM, Mail, Authorization/Policies, Testing). URL: https://laravel.com/docs/10.x
  2. PHP: Offizielle Sprachdokumentation. URL: https://www.php.net/docs.php
  3. SQLite: Offizielle Dokumentation. URL: https://www.sqlite.org/docs.html
  4. MySQL: Offizielle Referenzdokumentation (für den Produktivbetrieb). URL: https://dev.mysql.com/doc/
  5. barryvdh/laravel-dompdf: Laravel-Wrapper für DomPDF (PDF-Erzeugung). URL: https://github.com/barryvdh/laravel-dompdf
  6. PHPUnit: Dokumentation des Test-Frameworks. URL: https://docs.phpunit.de/
  7. Projektantrag zur betrieblichen Projektarbeit (internes Dokument)
  8. Interne Abstimmungen mit dem Projektverantwortlichen

10. Anhang

Anhang A: Projektzeitplanung

PhaseGeplanter Aufwand
Analyse der Ausgangssituation und Anforderungsermittlung10 h
Fachliche und technische Konzeption12 h
UI-Entwurf und Navigationsstruktur8 h
Implementierung der Datenbankstruktur und Backend-Funktionen16 h
Implementierung der Benutzeroberflächen und Funktionen zur Berichtserfassung14 h
Umsetzung von PDF-Erzeugung und E-Mail-Benachrichtigungen8 h
Test und Qualitätssicherung6 h
Projektdokumentation6 h
Gesamt80 h

Anhang B: Verzeichnis geplanter Screenshots

Für die finale Abgabe sollten folgende Screenshots eingefügt werden:

  1. Login-Maske
  2. Dashboard Auszubildender
  3. Übersicht eigener Berichte
  4. Formular zur Berichtserfassung
  5. Detailansicht eines eingereichten Berichts
  6. Prüfungsansicht Ausbilder
  7. Kommentar- und Freigabeansicht
  8. Beispiel eines erzeugten PDFs
  9. E-Mail-Benachrichtigung oder Mail-Log

Anhang C: Beispielhafte Statuswerte

Technischer StatusFachliche Bedeutung
draftEntwurf
submittedEingereicht
approvedFreigegeben
rejectedAbgelehnt

Anhang D: Abnahmeprotokoll

Projekt Webbasierte Anwendung zur Erstellung, Verwaltung und Freigabe digitaler Ausbildungsnachweise
Projektverantwortlicher Philipp Kohler
Datum [eintragen]
PrüfpunkteErgebnis
Bericht kann erstellt werdenerfüllt / nicht erfüllt
Bericht kann eingereicht werdenerfüllt / nicht erfüllt
Ausbilder kann Bericht prüfenerfüllt / nicht erfüllt
Bericht kann freigegeben werdenerfüllt / nicht erfüllt
Bericht kann abgelehnt werdenerfüllt / nicht erfüllt
PDF kann erzeugt werdenerfüllt / nicht erfüllt
E-Mail-Benachrichtigung funktionierterfüllt / nicht erfüllt

Bemerkungen: [eintragen]

Unterschrift Projektverantwortlicher: ______________________________

Anhang E: Persönliche Erklärung

Eigenständigkeitserklärung

Hiermit erkläre ich, dass ich die vorliegende Projektdokumentation zum Thema „Entwicklung einer webbasierten Anwendung zur Erstellung, Verwaltung und Freigabe digitaler Ausbildungsnachweise" selbstständig und ohne unzulässige fremde Hilfe angefertigt habe.

Alle verwendeten Quellen und Hilfsmittel sind im Quellenverzeichnis vollständig angegeben. Stellen, die dem Wortlaut oder dem Sinn nach anderen Werken entnommen wurden, sind unter Angabe der Quelle als Entlehnung kenntlich gemacht.

Die im Rahmen des Projekts erstellte Software wurde von mir selbst entwickelt. Die Dokumentation wurde in dieser oder ähnlicher Form noch keiner anderen Prüfungsbehörde vorgelegt und auch nicht veröffentlicht.

____________________________________________________________
Ort, DatumUnterschrift des Prüflings (Michael Sibozo)