Erstellung einer Anwenderoberfläche für eine Klausurverwaltung mit Python Michael Morosow Seminararbeit Scientific Programming 836940 23.02.2012 © FH AAC HEN UNIVERSITY OF APPLIED SCIENCES | FACHBEREICH ELEKTROTECHNIK UND INFORMATIONSTECHNIK | WWW.FH-AACHEN.DE Agenda Problemstellung ● Ziele ● Grundlagen ● Python ● Web.py ● JavaScript ● Jquery ● Model-View-Controller-Prinzip ● Realisierung ● Kern ● Aufbau der Oberfläche ● Demonstration ● Problemstellung 1. Klausurenverwaltung 2. Viele Beteiligte 3. Redundante Daten 4. Keine zentrale Sammelstelle 5. Aufwändige Webapplikation 6. Direkte Manipulation der Datenbank > Jeder Datensatz wird manuell angepasst © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 3 Ziele 1. Erleichterung der Arbeitsabläufe 2. Entwicklung einer Webapplikation – Benutzerfreundlich – Intuitive Bedienung – Interaktion mit der Datenbank © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 4 Grundlagen Python ● ● Entwickelt in den 1990er Jahren Namensgebung durch eine Komikergruppe – „Monty Python“ ● Besonderheit – Interpretierte Skriptsprache – Compilierte Programmiersprache © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 5 Grundlagen Python ● Besonderheit – Quellcode besonders gut lesbar > Zeilenumbrüche > Einrückungen ● Dynamische Datentypen ● Datentyp nicht definierbar ● Bestimmung des Typs nach Duck-Typing-Prinzip © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 6 Grundlagen Python ● ● ● ● Webframework für Python Sehr schlank Keine neue Syntax notwendig Funktionalität – URL-Struktur dient als Navigation – Pythonquellcode in HTML-Dateien – Notwendigen Interaktionen mit dem Client > Session > Cookies © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 7 Grundlagen JavaScript Veröffentlicht 1995 unter dem Namen Livescript ● Durch Sun Mycrosystems in JavaScript umbenannt ● Client-seitig ausgeführte Skriptsprache ● Syntax an C angelehnt ● Hauptaufgaben – Manipulation von DOM-Elementen – Dynamische Änderungen in einer Webseite © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 8 Grundlagen JavaScript Hauptaufgaben – Validieren von Formularen – Echtzeit Markierungen von Textfeldern – Hinweistexte einblenden © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 9 Grundlagen JavaScript ● Basiert auf dem Sandbox-Prinzip ● Keine fensterübergreifenden Aktionen ● Schutz vor permanenter Überwachung ● Kein Datenträger zugriff ● Keine automatische Fenstermanipulation © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 10 Grundlagen jQuery ● ● JavaScript-Framework >Motto „Write less, do more“ Besonderheit – schnellen Zugriff auf beliebige DOM Elemente – Anpassung von Animationen an alle Browser – Viele Plugins von Dritt-Anbietern © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 11 Grundlagen Model-View-Controller © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 12 Realisierung Kern ● Zwei Komponenten – Ansichten und Interaktionsverarbeitung – Datenbankanbindung > Interaktionen durch ein Interface © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 13 Realisierung Kern Ansichen und Interaktionsverarbeitung Drei wesentliche Dateien > settings.py > handler.py > dbHandler.py © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 14 Realisierung Kern settings.py – Verarbeitet einkommende Anfragen urls = ('/termine/', 'dates', '/admin/interface/overview/' ,'adminOverview', '/admin/interface/edit/(\w+)[_](\w+)','adminEdit', '/admin/interface/create/(\w+)','adminEdit' , '/ajax/autoSuggestion/','autoSuggestion') – Leitet Anfragen an die jeweilige Klasse weiter – Klassen übergeben handler.py die notwendigen Parameter – Gibt Inhalte zurück an den Client © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 15 Realisierung - Kern handler.py – Verarbeitet Paramater – fordert Datenbankdaten von dbHandler.py – generiert die HTML-Dokumente – fertige Dokumente zurück an settings.py © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 16 Realisierung Kern dbHandler.py – stellt Verbindung zur Datenbank her – verarbeitet Anfragen – gibt Daten zurück an handler.py © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 17 Realisierung Aufbau der Oberfläche ● Model-View-Controller-Prinzip – Wartung und Erweiterbarkeit ● Wichtigsten Kritikpunkte – Keine Informationsflut – Klar strukturierte Darstellung – Intuitive benutzerfreundliche Bedienbarkeit © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 18 Realisierung Aufbau der Oberfläche Aufbau ● ● Leicht erweiterbar Drei flexible Grundansichten > Terminansicht > Übersicht über alle Datensätze > Bearbeitungs- und Erstellungsansicht © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 19 Ende Vielen Dank für Ihre Aufmerksamkeit! © FH A AC HEN UNIVERSITY OF APPLIED SCIENCES 23. Februar 2012 | 20