Dies ist die Abgabe für das Programmierprojekt Datenbanken Semester 4. Für eine Live-Demo der App, ohne etwas herunterladen zu müssen, funktioniert dieser Link:
Anmerkung: Aus Kompatibilitätsgründen funktioniert die Darstellung am besten für Pixel 4 oder höher.
Ich habe zwei Testnutzer erstellt, @eike und @franz. Am besten ist es, zunächst einen neuen Nutzer über Sign up zu erstellen. Da das Internet über die Demo sehr langsam ist, kann es sein, dass requests schnell einen timeout bekommen. In der Regel sollte es allerdings funktionieren.
Danach kann man in der Nutzersuche (mittlerer Tab auf der Unterseite) franz eingeben und schauen, wie diese beiden Nutzer interagiert haben. Daran werden alle Kernfunktionalitäten der App sichbar.
Der Server ist über heroku deployed, die Datenbank wird über MongoDB Atlas bereitgestellt. Alternativ kann man auch den gesamten Server inklusive Datenbank lokal auf seinem eigenen Rechner laufen lassen. Folgende Schritte sind dazu notwendig:
- Herunterladen des Codes, entweder über das zip-Verzeichnis oder
git clone https://github.com/Eikeike/MicroBlog_DB.git
- Wechseln in das Server-Verzeichnis mit
cd server
- Installieren der Notwenigen pakete über
npm install
- Eventuell anpassen von Datenbank und Port: Ändern der Konfiguration
MONGO_URI
undPORT
in utils/.env oder utils/config.js npm start
Die einfachste Möglichkeit, die App zu nutzen, besteht in der Nutzung über die Live-Demo. Alternativ kann auch die .apk - Datei heruntergeladen und auf einem x86 Android-Device oder Emulator zum Laufen gebracht werden. Des Weiteren kann sie über den expo-client genutzt werden. Für die Installation im expo-client sind folgende Schritte notwendig:
- Installation von
expo-cli
(Anleitung) - Insatllation der notwendigen Pakete über
npm install
- Start des Development-Servers über
expo start
- Ausführen der App auf dem gewünschten Gerät
- Empfohlen: Webbrowser-Nutzung . Die App ist dafür geeignet und es treten wenige Probleme auf. Layout ist immer noch Mobil, es gibt keine adaptive Desktop-Ansicht
Eine eigenständige Durchführung der Tests kann nach erfolgter Installation wie folgt durchgeführt werden:
npm test
in der Konsole eingeben- Um die Tests mit angegezeigter Code-Coverage laufen zu lassen,
npm test-coverage
nutzen
Der von mir durchgeführte Coverage-Report sieht wie folgt aus:
Die App gliedert sich in Frontend und Backend. Frontend-Code ist unter ClientApp zu finden, Backend-Code unter server.
-
- Alle Screens, die angezeigt werden können. Jede mögliche Ansicht ist ein neuer Screen
-
- Alle wichtigen Komponenten (=Teilbausteine der Seiten), für Wiederverwendbarkeit
-
- Globaler Kontext, den jeder Screen kennen muss, unabhängig von Position auf dem Call-Stack
-
- App-interne Konfiguration
-
- Handler für die Navigation der App, also das Hin- und Her- Navigieren zwischen Screens
-
- Wichtige Logos, Bilder und Texte
-
- Hilfsfunktionen, die von allen Komponenten und Screens genutzt werden können, also unabhängig vom jeweiligen Kontext funktionieren
-
- Deklaration aller Routen, auf die Clients zugreifen können
-
- Definitionen der Funktionen, die über die Routen aufgerufen werden können. Hier befindet sich die Hauptlogik der App
-
- Hier befinden sich funktionen, die vor dem eigentlichen Aufruf der Controller genutzt werden, beispielsweise zur Authentifizierung der aufrufenden Nutzer oder zur Fehlerbehandlung
-
- Definition der Datenmodelle, die vom Mongoose-Client verwendet werden
-
- Hilfs- und Konfigurationsdaten für den Server
-
- Test- Files für automatisierte Unit-Tests
-
- Bericht über die Code-Coverage der Unit-Tests