Für mehr Dokumentation siehe https://pachisi456.github.io.
Die mobile App JobUp soll eine C2C Dienstleistungsvermittlung realisieren. Nutzer können Dienstleistungen anbieten (Anbieter), die von anderen Nutzern umgesetzt werden (Dienstleister). Dabei handelt es sich nicht nur um die Vermittlung von Handwerkern oder Unterehmensdienstleistungen, sondern soll für Privatpersonen die Möglichkeit bieten, Aufgaben auszulagern oder die eigene Arbeitskraft besser zu nutzen.
Diese Personen geben an, dass sie Unterstützung bei der Erledigung von Aktionen benötigen. Das können Rentner oder körperlich eingeschränkte Personen sein, die für die Erledigung physisch nicht in der Lage sind, aber auch Personen die nicht die Zeit, Fachkenntnis o.ä. besitzen, um die Aktion selbst auszuführen.
Diese Personen geben an, dass sie Kapazitäten besitzen, um Jobs zu übernehmen, die von den Anbietern angeboten werden. Das können jugendliche sein, die neben der Schule etwas Geld verdienen möchten, aber auch Vollzeitkräfte, die Geld für einen Urlaub o.ä. dazuverdienen möchten.
Jobs sind meistens lokal und temporär gebunden und stehen daher nur einem gewissen Nutzerkreis zur Verfügung. Die App soll dafür sorgen, dass die Jobs den entsprechenden Nutzern, die in Frage kommen, angezeigt werden.
Die App wird nur funktionieren, wenn sich lokale Nutzerbasen entwickeln, da die Community für die Aufträge und Angebote verantwortlich ist.
Für die plattformunabhängige Entwicklung wird das Cordova Framework verwendet. Darauf operiert das Ionic Framework, das eine moderne und ansprechende Oberfläche durch die Verwendung des Material Designs bereitstellt.
In der Mainpage findet lediglich das Routing der Pages statt. Homepage ist die Suchseite, auf der verfügbare Jobs in der Näche angezeigt werden. Die Elemente werden in einer Kartenansicht dargestellt, die durch ein Plugin realisiert wird, und von einem Provider angefordert, der direkt mit dem Server kommuniziert. Die weiteren Pages funktionieren nach dem selben Prinzip. Sie sind zunächst leere HTML Seiten, die von einem Provider mit Informationen gefüllt werden. Updates etc. werden ebenfalls über die POrovider ausgeführt, die alle Änderungen an den Server kommunizieren.
Die Provider stellen Dienste dar, die von den Pages für vielfältige Zwecke verwendet werden. Die Hauptaufgabe der meisten Provider ist die Kommunikation mit dem Server. Das Teilen von Variablen und Informationen ist eine sekundäre Funktion. Die Client-Server-Kommunnikation findet ausschließlich auf Anfrage des Clients statt und wird durch eine REST-Schnittstelle realisiert. Grundlegende Methoden sind die Ausführung von CRUD-Operationen, die an die Server-DB weitergeleitet werden. Die Route definiert die DB-Operation, Einschränkungen können durch JSONa im Body der Nachricht angegeben werden. Teilweise wird Logik aber auch direkt im Provider ausgeführt.
Der Server operiert in einer Docker-Compose Umgebung, die durch ein einfaches Command den darin enthaltenen Node-Server und die Mongo-DB startet. Als REST-Service wird Express verwendet. Mongoose wird als DBMS eingesetzt. Das hat den Vorteil, dass die eintreffenden JSONs direkt weiter an die Datenbank kommuniziert werden können.
Mit Express werden die Routen definiert, an die sich die Clients wenden können. Der Body der Anfrage wird als Query an Mongoose gegeben. Das Resultat der DB-Operation wird dann an den Client zurück kommuniziert. Eine Besonderheit stellt das Heraussuchen der relevanten Jobs dar, weil direkt auf dem Servergefiltert wird, welche Jobs relevant sind. Diese Route stellt damit die komplexesten Abläufe auf dem Server dar.
- Der Nutzer hat ein eigenes Profil
- Der Nutzer kann
- sich mit seinem Profil einloggen
- sein Pofil ansehen
- sein Profil bearbeiten
- mit einem Bild (Kamera) personalisieren
- Jobs werden
- auf der Hauptseite in Kartenansicht dargestellt
- sinnvoll gefiltert
- nur in der Umgebung angezeigt
- mit einem persönlichen Bild (Kamera) versehen
- Die selbsterstellten Jobs können
- angezeigt werden
- gelöscht werden
- bearbeitet werden
- einem Bewerber zugeordnet werden
- "Gematchte" Jobs können angezeigt werden
- Gewählter Dienstleister oder Anbieter kann kontaktiert werden
- Der Nutzer wird über Benachrichtugungen über neue Inhalte informiert
- Nutzer können sich gegenseitig bewerten
- Die Daten werden persistent auf einem Server gespeichert
- Daten werden sicher übertragen
- Einfache Sicherheitsvorkehrungen sind realisiert
- Bilder können transferiert werden und als Profil- oder Jobbilder verwendet werden
- Die Kamera kann als Bildquelle verwendet werden
- Pushbenachrichtigungen informieren über neue Inhalte
- Nutzer können sich gegenseitig bewerten
- Jobs haben eine genauere Zeitangabe und können mit dem Kalender synchronisiert werden
- Technische und organisatorische Maßnahmen zur Datensicherheit und zum Datenschutz werden realisiert
- Der Loginprozess wird zum Beispiel mit Tokens optimiert
Diese ReadMe ist eine Meta-Dokumentation. Konkrete Codeteile sind direkt in den entsprechenden Dateien kommentiert
Eine Präsentation mit Video kann in der Datei ./doc/slides-deck.html eingesehen werden