HOWTO? Datenaustausch App/Webserver/Datenbank

  • Hey Leute, habe heuer Projekt und habe mich entschlossen eine
    Wepapplikation zur bestellung von Mietwagen (incl. Fahrer) zu erstellen.
    Eine Kunden-App (ebenfalls zweck Bestellung) ist auch vorgesehen.
    Diese Bestellungen sollen auf der Firmen-App des Unternehmers
    als NEUER AUFTRAG eingehen sobald diese vom Kunden aufgegeben wurden.
    Eine Datenbank ist ebenfalls vorgesehen.
    Der Unternehmer soll jetzt die Möglichkeit haben entweder den Auftrag
    selbst auszuführen und als BEENDET zu markieren, oder aber einem
    Mitarbeiter weiterzuleiten -der diese auf seiner Firmenapp- erhält.
    Der Mitarbeiter wiederum muss entscheiden dürfen ob er diesen Auftrag ANNIMMT
    oder ABLEHNT.
    IN BEIDEN FÄLLEN muss der UNTERNEHMER eine Rückmeldung auf seiner
    Firmen-App erhalten um evt. einen anderen Mitarbeiter beauftragen zu können.


    meine Ziele:
    Kunde muss über die Homepage (Formular) eine bestellung absetzen können.
    Kunde muss über eine Handy-App eine Bestellung absetzen können.
    Chef erhält info über Firmen-App, dass ein neuer Auftrag eingegangen ist.
    Chef kann Auftrag weiterleiten ODER selbst fahren.
    Mitarbeiter kann die vom Chef weitergeleiteten Aufträge ANNEHMEN oder ABLEHNEN (wobei
    der chef über auswahl informiert werden muss)


    Meine Bitte an euch:
    könntet ihr mir behilflich sein wie ich diese Problemstellung logisch angehen sollte?
    bzw. wie stelle ich die kommunikation zwischen der chef app und der mitarbeiter app her?
    Erstelle ich eigene Apps für kunden, mitarbeiter und chef oder lässt sich das mit einer
    einzigen App (evt. log-in-möglichkeiten) realisieren.
    Der webserver+datenbank muss auf .net/c# schiene gebastelt werden, was wiederrum zur frage führt
    wie die app mit dem webserver+datenbank kommunizieren muss?


    Bitte entschuldigt die etwas schwammige beschreibung aber ich hoffe ihr entschuldigt meine
    wissenslücken.
    Ich möchte im Vorfeld logik und denkfehler so gut wie möglich vermeiden um nachher genug
    zeit für die Implementiereung zu haben (welche ich dringend brauchen werde)
    Abgabetermin ist mitte märz, VIELEN Dank an ALLE brauchbaren Kommentare.

  • Hmm das klingt nach dem typischen Fass ohne Boden.


    Eine Frage zum Anfang, Projekt heisst du entwickelst das nur für Dich oder das soll mal was wirklich produktives werden ? (Einsatz in der "real" World?)


    Wichtig ist halt das du Dir erst mal ein Backend/Schnittstellen zusammen baust um deine Abläufe irgendwie abzubilden. Als 0815 und Hobbyentwickler würde ich das halt alles mit PHP, MYSQL lösen. Kommunikation per REST und Datenaustausch schön per JSON im Idealfall auch noch alles verschlüsselt.


    Datenbank, da musst du halt selber noch mal schauen wie Kleinteilig es werden soll. (Ware würde ja dann ein Mietauto sein -> Typ, Farbe, ect pp)


    1 Tabelle -> Kundendaten (Kunde muss sich ja registrieren und anmelden können)
    1 Tabelle -> Aufträge (je nach
    1 Tabelle -> Mitarbeiter (um eventl nach zu vollziehen, welcher Mitarbeiter hat wieviele Aufträge bekommen, abgeleht ect pp)
    div Kreuztabellen um die n:m Beziehungen herzustellen


    Zitat

    Kunde muss über die Homepage (Formular) eine bestellung absetzen können.
    Kunde muss über eine Handy-App eine Bestellung absetzen können.


    Homepage kommuniziert über Frontend mit deinem Backend (Formulare ect pp)
    App würde im Grunde das selbe über eine definierte Schnittstelle (REST irgend etwas anderes machen)
    -> Hier würde dann das Thema Datensicherheit, Verschlüsselung ect ebenfalls eine Rolle spielen.


    Zitat

    Chef erhält info über Firmen-App, dass ein neuer Auftrag eingegangen ist.


    -> sobald Kunde Auftrag auslöst und die gewünschten "Auftragsdaten" in die Datenbank übermittelt wurden, kannst
    du hier unterschiedlich weitermachen.


    old school und böse, ist das sogenannte Polling. D.h. App vom Chef fragt in einem definierten Interval beim Server an ob neue Aufträge vorliegen und
    zieht sie sich aufs Handy. Da Chef keinen Auftrag verpassen möchte, müsste hier das Interval relativ klein sein -> nicht sehr effizient.


    stromsparender und Akkufreundlich wäre hier eine PUSH Lösung, Google Cloud Messages sind ja ein kostenloser Service, diverse andere Anbieter (Enterprise Services gibt es auch) -> Pushnachrichten müssen ja nicht immer "Nachrichten" sein, das können auch eigens definierte Events sein. Sprich du kannst Dir eine eigene Kommunikationstruktur (zb per JSOn einfallen lassen und damit operieren).
    Sprich nach dem die Datenbank gefüllt wurde, wird der App des Chef entweder der komplette Aufrag gepushed (GCM Nachrichten haben einen Payload von 4kb) oder du versendest nur ein Event an die App "Hallo neuer Auftrag" und das Handy holt sich die Daten selber vom Server.


    Zitat

    Chef kann Auftrag weiterleiten ODER selbst fahren.


    -> wäre dann die Auftragsbestätigung und wieder eine Backendaufgabe, Chef klickt in der App ja und dein Backend kümmert sich um den Rest (Kunde wird informiert ect pp)


    -> Wenn Chef den Auftrag weitervermitteln will, dann z.b. wieder über den Push Weg

    Zitat


    Mitarbeiter kann die vom Chef weitergeleiteten Aufträge ANNEHMEN oder ABLEHNEN (wobei
    der chef über auswahl informiert werden muss)


    -> siehe Chef.


    Das kann im Grunde die selbe App sein. Mitarbeiter meldet sich mit seinem Mitarbeiter Login an und hat damit Zugriff auf bestimmte Funktionalität.


    Mitarbeiter - Chef hat also alle Features
    Mitarbeiter - Mitarbeiter (Arbeitsbiene) kann halt nur Aufträge annehmen oder ablehnen.



    Kunden und Mitarbeiter App zu vereinen ist natürlich möglich, ich denke aber eine Trennung wäre sauberer.


    Zitat

    Der webserver+datenbank muss auf .net/c# schiene gebastelt werden, was wiederrum zur frage führt
    wie die app mit dem webserver+datenbank kommunizieren muss?


    REST

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!