Added README.txt and GPL Header to Source Files
[DHBWCampusApp.git] / app / src / main / java / de / dhbwloe / campusapp / README.txt
1 Die gesamte App wurde auf Basis einer einzigen Activity,
2 auf welcher dynamisch Fragmente ausgetauscht werden aufgebaut.
3
4 Wichtige Java Klassen der App:
5 * CampusApp
6  Die Klasse der haupt Activity.
7  In dieser Klasse befindet sich die initialisierung des Grundgerüsts der App.
8  Dazu gehören die Headerleise inklusive Such-Eingabe, die Navigationsleiste sowie
9  der Platzhalter für spätere Fragmente.
10  Die Klasse bildet den haupt Einstiegspunkt der App (Launcher) und erstellt beim start
11  eine global verfügbare Instanz der Klasse CampusAppContext
12
13 * CampusAppContext
14  Der "Kontext" der App, ein einzelnes zentrales Objekt,
15  was zur Laufzeit für alle weiteren teile der App zur verfügung steht.
16  Innerhalb der Klasse CampusAppContext werden instanzen zum Navigations Manager,
17  Datenbank Manager und der App Activity bereitgestellt.
18
19 * NavigationManager
20  Der Navigationsmanager (instanziert durch CampusAppContext) verwaltet die auf der
21  App Activity angezeigten Fragmente und dient zur App internen Navigation.
22  z.B.  AppContext.getNavigationManager().navigatePage("Dashboard")
23  Die einzelnen Fragmente der App müssen in CampusAppContext eingetragen werden.
24
25 * fragments/*
26  Fragmentspezifischer Code. Jedes Fragment der App wird im Hintergrund von einer
27  eigenen Klasse verwaltet, welche hier zu finden ist.
28  Fragmente, welche auf der App Activity angezeigt werden sollen müssen
29  die Klasse CampusAppFragment erweitern.
30  Die Klassen wurden dabei stets nach dem prinzip
31   <FragmentName>(<Unterfragment>)*(ListAdapter/ListItem)
32  benannt.
33
34 * database/*
35  Datenbankspezifischer Code. Sämmtliche Datenbankabfragen werden durch die Klasse
36  DatabaseManager verwaltet. Je nach Abfrage werden hierbei die entsprechenden Hilfsklassen
37  MensaplanDatabaseHelper, NewsDatabaseHelper, VorlesungsplanDatabaseHelper genutzt.
38  Auch die Struktur der Datenbank wird vom DatabaseManager beim ersten Start der App erstellt
39  und bietet eine einfache Möglichkeit für spätere Updates der Struktur.
40
41 * mensaplan/*
42  Beinhaltet Code zum Herungerladen, Einlesen und Speicherung der durch die
43  XML Schnittstelle bereitgestellten Daten.
44  Die Klasse MensaTagesplan repräsentiert ein einzelnes Menü der Mensa.
45  Diese Klasse dient als Transportobjekt sowohl vom XML Parser zur Datenbank
46  als auch von der Datenbank an andere Teile der App.
47
48 * news/*
49  Selbes Prinzip wie mensaplan/*, jedoch fürs Einlesen der News (XML Parser)
50
51 * vorlesungen/*
52  Selbes Prinzip wie mensaplan/*, jedoch fürs Einlesen der Vorlesungsdaten (ICAL Parser)
53
54 * nfcreader/*
55  Code zum einlesen der Mensakarte. Dieser Code ist zu großen Teilen nicht selbst erstellt.
56  Bereitgestellt durch: https://git.sterul.com/student-projects/dhbw-card-reader
57
58 * search/*
59  Beinhaltet Code zur Verwaltung der App Suche.
60  Auch die entsprechenden HTTP Clients zur weiterleitung der Sucheingaben an die DHBW/STUV Webseite
61  befinden sich hier (DhbwSearchHelper, StuvSearchHelper)
62  Die App interne Suche besteht im grunde aus einem haufen von der App selbst erstellter
63  Search Indices (Klasse SearchIndices) welche in der Datnebank gespeichert werden.
64  Mithilfe der Klasse SearchTarget werden die teilweise mit Parametern bestückten
65  Ziel Seiten dekodiert und aufgerufen. (z.B. #Vorlesungsplan#groupid=15 )
66
67 * network/*
68  Beinhaltet Hilfsklassen für den XML/ISC Parser
69
70 * wifi/*
71  Beinhaltet Hilfsklassen für die automatische WLAN Konfiguration.
72  Unter anderem sind ist hier auch der von der DHBW Bereitgestellte
73  "Secure Login" für das dhbw-wlan realisiert.
74