Frontend
Es soll eine Webseite mit HTML, CSS und JavaScript erstellt werden. Die Webseite soll hierbei eine Finanzverwaltung mit doppelter Buchführung abbilden.
Anforderungen:
- Inhalt:
- Es sind zwei Unterseiten vorzusehen:
- Übersicht über alle Konten
- Liste der Buchungen eines Kontos
- Die Übersichtsseite enthält je Konto mindestens folgende Angaben:
- Name des Kontos
- Beschreibung des Kontos
- Kontonummer
- Aktuelle Summe
- Es sind zwei Unterseiten vorzusehen:
Die Konten sollen hierbei hierarchisch angeordnet werden (beispielsweise Aufwendungen mit den Unterkonten Miete, Lebensmittel und Semesterbeitrag).
Die Übersicht soll nach Kontonummer sortiert sein.
-
- Die Buchungsliste für ein Konto enthält je Buchung mindestens folgende Angaben: - Titel der Buchung - Betrag der Buchung auf dem Konto - Gegenkonto
- Navigation:
- Zwischen Übersichtsseite und Buchungslisten soll eine Navigation über Hyperlinks möglich sein.
- Struktur:
- Es gibt auf allen Seiten einen einheitlichen Header und Footer.
- Stylesheets:
- CSS-Stylesheets sollen als separate Datei eingebunden werden
- Für das Styling des Headers und Footers ist ein gemeinsames Stylesheet zu nutzen.
- Die aktuelle Summe ist grün bei positiven, rot bei negativen und schwarz beim Betrag null zu formatieren.
- Es werden keine CSS-Frameworks eingesetzt (Bootstrap o.Ä.)
- Die Darstellung auf Smartphones und Desktop-Geräten soll sich unterscheiden (Responsive Design).
- Schnittstelle:
- Für den Abruf der Daten soll die bereitgestellte API genutzt werden.
- Unter der URL, die ihr im ersten Labor erhaltet, sind die Endpunkte der API mit OpenAPI dokumentiert und können dort auch getestet werden.
- Liefert die Schnittstelle einen Fehler zurück, soll dieser angemessen behandelt werden (d.h. Anzeige einer für den Benutzer sichtbaren und verständlichen Fehlermeldung).
- Bearbeitung:
- Buchungen sollen erstellt, bearbeitet und gelöscht werden können.
- Konten sollen erstellt, bearbeitet und gelöscht werden können.
- Mehrteilige Buchungen:
- Buchungen sollen auch so erstellt werden können, dass in einer
Buchung mehr als zwei Konten aufgeführt sind.
- Buchungen sollen auch so erstellt werden können, dass in einer
- Gesamtbuchungsübersicht:
- Es ist eine zusätzliche Seite zu erstellen, welche die Buchungen
aller Konten enthält.
- Es ist eine zusätzliche Seite zu erstellen, welche die Buchungen
- Sortieren und Filtern:
- Auf der Buchungsübersicht und der Gesamtbuchungsübersicht ist eine Sortier- und Filterfunktion zu implementieren.
- Die Sortierung muss auf- und absteigend erfolgen können nach:
- Buchungsdatum
- Wertstellungsdatum
- Die Filterung muss erfolgen können nach:
- Datum oder Zeitraum (Datum von - bis) für
- Buchungsdatum
- Wertstellungsdatum
- Titel der Buchung
- case-insensitive (Groß-/Kleinschreibung ignorieren)
- auch Teilausdrücke finden (beispielsweise soll "Brot" den Eintrag "Abendbrot für Sonntag" finden)
- Der Filter soll direkt beim Tippen angewandt werden, ohne dass eine Bestätigung notwendig ist.
- Betrag der Buchung (größer als .../kleiner als ...)
- Datum oder Zeitraum (Datum von - bis) für
Sind mehrere Filter gleichzeitig aktiv, werden diese logisch und-verknüpft.
-
- Standardmäßig sollen nur Buchungen des laufenden Kalenderjahres absteigend sortiert nach Buchungsdatum angezeigt werden.
- Paginierung:
- Die Anzeige auf der Buchungsübersicht und der Gesamtbuchungsübersicht soll paginierbar sein, das heißt, es werden auf einer Seite nur eine bestimmte Menge (initial 10) an Buchungen angezeigt.
- Die Seitengröße soll hierbei auf 10, 20, 50, 100 und „Alle“ einstellbar sein.
- Sind weniger als 10 Einträge vorhanden, sollen die Einstellungen zur Paginierung (Seitenauswahl, Seitengröße) verborgen werden.
- Echtzeitupdates:
- Die Anwendung soll Änderungen bei den Buchungen über SSE empfangen und in Echtzeit anzeigen. Hierfür dient der Endpunkt /live des Backends.