Bildbeschreibung und Urheberrecht WH54 Lastenheft

PHP-Suchfunktionen in der Mathe-AC online-Lernumgebung

IST-Zustand

Auf einem Webserver gibt es unterschiedliche Ordner, die für jeweils eine Themenrubrik einer Online-Lernumgebung stehen. Auf der Benutzeroberfläche gibt es ein Suchfeld für Texteingaben. Für jede der zur Zeit zehn Themenrubriken gibt es einen Submit-Button. Ein Button löst eine Suche nach passenden Dateien in der jeweiligen Rubrik aus. Als passend gelten Dateinamen, die identisch oder ähnlich zum Suchbegriff sind oder den Suchbegriff als Teilstring enthalten. Gibt es mehrere Dateinamen, die den Suchbegriff enthalten, so wird eine anklickbare Trefferliste angezeigt. Diese Trefferliste zeigt (unerwünschterweise) neben den Dateinamen auch die Pfade und Dateierweiterung an.

Die Funktionalität ist über die zwei PHP5-Skripte suche.php und suche_pdf.php umgesetzt. Die Performance ist im Moment ausreichend. In der Rubrik "lex" (Lexikon) gibt es gut 43000 Einträge, die Treffer werden innerhalb einer Sekunde angezeigt.

Was beibehalten werden soll:

-> Keine Benutzung von Datenbanken
-> Generelles Look- und Feel der Benutzeroberfläche
-> Alle vorhandenen Funktionalitäten beim Suchen und Anzeigen
-> Dateinamen dürfen auch Sonderzeichen beinhalten
-> Gibt es keinen Treffer, wird nichts angezeigt

Code-Bereinigung

-> Möglichst komfortable Benutzung auf mobilen Geräten, Iframes?
-> Sichere Benutzung auf allen Standardbrowsern
-> Zwei php-Suchskripte in einem zusammenfassen
-> php-Code auf Deprecated-Befehle untersuchen
-> Keine proprietären Komponenten im Code
-> Ausführliche Dokumentation auch für Gelegenheitsprogrammierer
-> Formel-Parser (Miles Kaufmann-Script) als Klasse auslagern
-> Automatische Erkennung ob suche.php lokal oder im Netz läuft
-> Welche Sicherheitsaspekte sollten bertrachtet werden (Validierungen)?

Erweiterungen

-> Angezeigter Suchbegriff soll immer aktueller Seite entsprechen
-> Gibt es nur eine Datei mit dem Suchbegriff als Teilstring, soll deren Inhalt sofort angezeigt werden
-> Graphenfunktion (Funktionsgleichung wird in Graph umgesetzt)
-> Pfadinformation aus Trefferliste entfernen
-> Dateinamenserweiterung aus Trefferliste entfernen

Ausführlich

Keine Pfade in Trefferliste

Liefert eine Suche in einer Kategorie mehrere Dateinamen, die den Suchbegriff enthalten, dann wird zurzeit eine anklickbare Auswahlliste angezeigt werden. Diese Liste enthält auch Pfadangaben. Die Pfadinformationen sollen nicht mit angezeigt werden.

Keine Extensions in Trefferliste

Liefert eine Suche in einer Kategorie mehrere Dateinamen, die den Suchbegriff enthalten, dann wird zurzeit eine anklickbare Auswahlliste angezeigt werden. Diese Liste enthält Dateinamenserweiterungen wie txt oder pdf. Die Ergänzungen sollen nicht mit angezeigt werden.

Erfolgssensitive Submit-Buttons

Jeder Button entspricht einer Kategorie in der gesucht werden kann. Löst ein Benutzer eine Suche aus, dann sollen im Hintergrund alle Rubriken durchsucht werden (unhabhängig davon, welcher Button gedrückt wurde). Wird in einer (oder mehreren) Rubrik ein Treffer gefunden, dann wird die Farbe des Submit-Buttons automatisch auf grün gestellt. Bei erfolgloser Suche bleibt die Farbe hellblau bestehen. Als Sucherfolg gilt, wenn der Suchbegriff als Teilstring in einem Dateinamen enthalten ist. Um eine schnelle Anzeige der Inhalte zu gewährleisten soll aber zunächst nur in der gewählten Kategorie gesucht werden. Mögliche Treffer dort sollen sofort angezeigt werden. Erst anschließend soll dann in den verbleibenden Kategorien weitergesucht werden und die Farbe der Buttons angepasst werden. Die Buttonfarbe soll immer dem im Moment sichtbaren Begriff im Suchfeld entsprechen.

Suchfeldeintrag folgt Klicks

Klickt man in einer Trefferliste auf eine Datei, so soll der Name der Datei automatisch als Suchbegriff im Suchfeld aktualisiert werden. Die Dateiergänzung (pdf, txt etc.) gilt dabei nicht als Teil des Dateinamens. Dies löst dann automatisch auch eine neue erfolgssensitive Anpassung der Button-Farben aus.

Graphenfunktion

Wenn möglich soll man im Suchfeld eine mathematische Funktion wie z. B. f(x)=x² eingeben können. Über einen Submit-Button soll diese Funktion an ein kostenloses php-Skript übergeben werden, welches den Graphen direkt anzeigt. Es genügen eine Anzeige des Kurvenverlaufs in einem voreingestellen Intervall sowie die Möglichkeit zu Zoomen und den Graphen zu verschieben.

Softwarespezifikation

-> Nur PHP und HTML
-> Keine Datenbank
-> Keine "deprecated" Elemente
-> Keine proprietären Bausteine Dritter
-> Kein kryptisch-kurzer Code
-> Lieber "lesbarer" Code mit Zwischenschritten

Abnahme

-> Anwendung wie oben beschrieben in der endgültigen Webumgebung (1&1 Webserver von Mathe-AC)
-> Vollständige Dokumentation wie oben beschrieben
-> Schriftliche Rechnung

Eckdaten zum Vertrag

-> Bezahlung pauschal nach Abnahme
-> Fester Liefertermin nach Vorschlag durch Entwickler
-> Zahlung anteilig investierter Zeit falls Auftraggeber Auslieferung nicht mehr wünscht
-> Zusatzwünsche während Entwicklung sollen zu einer preislichen Anpassung und zu einem neuen Auslieferungstermin führen (in gegenseitiger Absprache).
-> Ab der vierten Testung durch den Auftraggeber, die Abweichungen von der Spezifikation oben findet, mindert jeder Test den Preis um jeweils vier Prozent des Anfangspreises.
-> Jede Verlängerung der Entwicklungszeit um 10 Prozent von der vereinbarten Zeit mindert den Endpreis um jeweils 4 Prozent vom Anfangspreis. Dabei gilt der jeweils zuletzt gemeinsam besprochene Auslieferungstermin.
-> Nach Zahlung gehen alle Rechte am Programm an den Auftraggeber über.
-> Auf Wunsch des Programmierers schreibt der Aufftraggeber nach der Auslieferung eine Referenz.






Startseite
Impressum
© 2019