Struktur

Das Projekt ist wie folgt strukturiert:

  • subprograms "Unterprogramme", unterschiedlich aussehende Webseiten. Zum Beispiel "web" oder "administrator". subprograms haben ein oder mehrere modules.
  • modules Unterteilen das Programm in einzelne Funktionalitäten wie "Kurswahlsystem" oder "Schulbuchausleihesystem". Können & werden über die subprograms hinweg dupliziert. So hat "web" ein module namens "Kuwasys" für Schüleranmeldungen und "administrator" ein module namens "Kuwasys" um diese zu verwalten.
    modules können wiederrum modules als Kinder haben, die die Funktionalitäten nochmals unterteilen, zum Beispiel "Kurwahlen ansehen" oder "Schüler hinzufügen".

Ordnerstruktur

  • /code Enthält den eigentlichen Code des Programmes.
  • /code/administrator Enthält alle PHP-Dateien für das subprogram administrator.
  • /code/web Enthält alle PHP-Dateien für das subprogram web.
  • /code/publicData Enthält alle PHP-Dateien für das subprogram publicData. Wird benutzt für öffentliche Daten, erreichbar ohne vorherigem Login.
  • /code/include Enthält Dateien die über die subprograms hinweg im ganzen Projekt benutzt werden.
  • /code/include/3rdParty PHP-Bibliotheken
  • /code/include/<ModuleName> PHP-Klassen die zu einem Modul gehören und über mehrere Subprograms hinweg genutzt werden.
  • /code/include/models Enthält Daten zur Datenbank-Struktur für die Doctrine2-Bibliothek.
  • /code/include/sql_access Größtenteils Wrapper-Klassen für SQL-Befehle. Wird nach und nach durch Doctrine2 ersetzt.
  • /code/include/tmpFiles Enthält temporär generierte Dateien. Kann/sollte regelmäßig gelöscht werden.
  • /code/include/cjs Coffeescript-Dateien, die mithilfe von gulp zu Javascript-Dateien konvertiert werden. Die JS-Dateien landen in /code/include/js.
  • /code/include/cjs/modules Coffeescript-React-Dateien. Diese werden ebenfalls mithilfe von gulp in Javascript übersetzt und mithilfe von browserify gebündelt. Die JS-Dateien landen in /code/include/js/dist.
  • /code/locale Enthält die Lokalisierungsdateien für Übersetzungen des Programmes. Wird momentan nicht mehr weiter in das Programm integriert.
  • /code/smarty_templates Enthält Html-Templates, die von der Smarty-Bibliothek geparst werden.

Beachtenswerte Dateien

  • /code/include/sql_access/databaseValues.orig.php Enthält die Daten für den Login zur Datenbank. Muss nach "databaseValues.php" kopiert werden und diese dann ausgefüllt werden.
  • /doctrine_update_entities.sh Bei Änderung der Datenbank-Struktur müssen die Daten in /code/include/models/mapping angepasst werden. Um diese Änderungen zu übernehmen, wird die Shell-Datei ausgeführt.