Modulhandbuch-Verwaltungssystem

  • Kunde: Fachhochschule Bingen
  • Veranstaltung: PROJ
  • Wintersemester 2014
  • Betreuender Professor: Prof. Dr. Hans-Christian Rodrian
  • Arbeitsstunden: 1200

Projektteam:

Name: Studiengang:
Mathias Dickenscheid Bachelor Informatik
Inmgar Jakob Bachelor Informatik
Mischa Nehrbass Bachelor Informatik
Christian Wittig Bachelor Informatik

Projektidee:

Das Ziel des Projekts ist es, ein System zu entwickeln, mit dem die Verwaltung der einzelnen Module und ihrer Beschreibungen erleichtert wird. Durch ein zentrales Verwaltungssystem wird verhindert, dass redundante oder inkonsistente Datensätze entstehen können. Auch eine Versionierung der einzelnen Modulbeschreibungen und der Modulhandbücher wird unterstützt.

Den Dozenten wird ermöglicht, ihre vorhandenen Module zu bearbeiten und neue anzulegen. Dabei wird zwischen geplanten und tatsächlich angebotenen Modulen unterschieden.

Den Studiengangleitern wird ermöglicht, das Modulhandbuch ihres jeweiligen Studienganges zusammenzustellen und als PDF-Dokument zu exportieren.

Realisierung:

Das git-Repository ist hier zu finden: https://github.com/mdPlusPlus/mhb-vs
Dokumentation: https://github.com/mdPlusPlus/mhb-vs/tree/master/doc



- Symfony:
Symfony ist ein kostenloses open-source PHP-Framework von SensioLabs. Es verfolgt ein MVC-Pattern und implementiert damit klassisches HTTP-Request-ResponseHandling.

Symfony verwendet zur Ausführung unterschiedliche Umgebungen und kapselt damit gezielt die Produktivumgebung von der Entwicklungs- oder Testumgebung ab.

Wir verwenden Symfony in der Version 2.6.3, es wird jedoch aktiv von einer großen EntwicklerCommunity weiterentwickelt, weshalb bereits dieses Jahr mit dem nächsten Major-Release, Version 3.0, zu rechnen ist. (http://symfony.com/doc/current/contributing/community/releases.html)


- KnpSnappyBundle / Snappy / wkhtmltopdf:
wkhtmltopdf ist ein open-source Kommandozeilen-Tool um HTML in PDF umzuwandeln. (http://wkhtmltopdf.org)
Snappy ist ein PHP-Wrapper für wkhtmltopdf. (https://github.com/KnpLabs/snappy)
KnpSnappyBundle bietet eine simple Integration von Snappy in ein Symfony-Projekt. (https://github.com/KnpLabs/KnpSnappyBundle).


- Twig:
Twig ist eine Template-Engine für PHP und Bestandteil des Symfony-Frameworks und wird ebenso von SensioLabs entwickelt.


- Doctrine:
Doctrine stellt mit seinem Object Relational Mapper (ORM) und dem Abstract Database Layer (DBAL) eine Art Middleware zwischen PHP und SQL dar. Doctrine ermöglicht es auf einfache Weise PHP-Objekte in Datenbanken zu hinterlegen. Statt per SQL-Befehl greift man durch das ORM objektorientiert auf die Daten zu. In Symfony wird dies durch den sogenannten Entity-Manager realisiert.
Die objektrelationale Funktionalität wird den Objekten selbst zugewiesen, ohne dass hierfür eine aufwändige Programmierung nötig wäre.


- MySQL:
MySQL ist ein relationales Datenbankmanagementsystem (RDBMS).


- Composer
Composer ist ein Kommandozeilen-Paketmanager für PHP. Er wird benötigt um Symfony und alle zugehörigen Abhängigkeiten auf einem System zu installieren.
Composer kann von https://getcomposer.org/download bezogen werden.