Hallo Zusammen,
es geht um ein Projekt nach dem Konzept "offline first".
Ich habe einen eigenen REST-API Server, geschrieben in Delphi, der gleichzeitig mehrere Firebird Datenbanken in unterschiedlichen Versionen bedient.
Eine Handvoll Anwender sollen mit Tablets ausgestattet werden die direkt beim Kunden Aufträge annehmen können. Ein Auftrag besteht aus ca. 80 Feldern. Dazu kommen fünf Tabellen mit insgesamt ca. 10.000 Datensätzen als Lookup für die Aufträge. Pro Tag wird ein Anwender ca. 20 Aufträge anlegen. Aufträge können jedoch auch vom Büro vorab angelegt werden die der Anwender bedien muss. Die Datenmänge ist also nicht besonder groß.
Die Schwierigkeit dabei ist, wir leben im 21. Jahrhundert in Deutschland ohne flächendeckendes Internet. Jetzt soll der Anwender immer einen Auftrag anlegen können auch wenn kein Internet besteht. Ich könnte mir dafür auch eine native Android App erstellen. Ich habe das Wissen und die Werkzeuge dazu.Da ich zur Zeit total auf Web-Anwendung stehe möchte ich zuerst diesen Weg versuchen. Sollte ich scheitern, dann muss es eben eine native Android App sein.
Ich habe viel über PWA gelesen und etliche Videos angeschaut. Doch ein paar signifikante Fragen sind noch offen. Ich hoffe das liest hier jemand der eine Ahnung davon hat.
Die meisten Beispiele gehen davon aus, man verwendet CouchDB, MondoDB auf Serverseite und PouchDB oder IndexDB auf Clientseite und lässt sie synchronisieren.
Serverseitig würde ich gerne Node.JS verwenden. Ich habe bereits ein NodeJS Projekt aufgesetzt und kann auf meinen REST-API zugreifen. Auch die Client Seiten kann ich damit rendern. Die Aufrufe sind auch über JWT abgesichert. Jetzt stehe ich auf dem Schlauch und weis nicht weiter.
Soll ich nach den Beispielen gehen und z.B CouchDB aufsetzen? Ich müsste also über NodeJS die Daten vom REST Server abrufen und diese in CouchDB schreiben damit die Clients die Daten replizieren können?
Clientseitig müsste ich die komplette CRUD Funktionalität mittels JavaScript für die Nutzung von IndexDB umsetzen. Ich habe jedoch jede Menge Logik die vom Server(NodeJS) kommen sollte. Es geht hier nicht um statische Seiten die lokal gecached werden können. Also muss ich die business logic ebenfalls auf dem Client umsetzen. Wenn dem so ist, macht der NodeJS Server keinen Sinn. Dann müsste der Client direkt mit meinen REST Server kommunizieren.
Ich würde ungern ein Framework wie Angular oder VueJS zusätzlich zu NodeJS verwenden wollen, weil es einfach zu viel für mich wird außer, es geht nicht mit NodeJS alleine oder die Vorteile würden überwiegen.
Wenn ich das Projekt starten müsste komplette ohne Daten, dann würde eine Kombination von CouchDB und IndexDB sicherlich eine gute Wahl sein. Aber für mein Scenario sehe ich richtig Schwarz für eine PWA. Irgendwie möchte ich doch eine Webanwendung umsetzen da es für mich einen großen Lerneffekt hätte.
Schöne Grüße
Kostas
es geht um ein Projekt nach dem Konzept "offline first".
Ich habe einen eigenen REST-API Server, geschrieben in Delphi, der gleichzeitig mehrere Firebird Datenbanken in unterschiedlichen Versionen bedient.
Eine Handvoll Anwender sollen mit Tablets ausgestattet werden die direkt beim Kunden Aufträge annehmen können. Ein Auftrag besteht aus ca. 80 Feldern. Dazu kommen fünf Tabellen mit insgesamt ca. 10.000 Datensätzen als Lookup für die Aufträge. Pro Tag wird ein Anwender ca. 20 Aufträge anlegen. Aufträge können jedoch auch vom Büro vorab angelegt werden die der Anwender bedien muss. Die Datenmänge ist also nicht besonder groß.
Die Schwierigkeit dabei ist, wir leben im 21. Jahrhundert in Deutschland ohne flächendeckendes Internet. Jetzt soll der Anwender immer einen Auftrag anlegen können auch wenn kein Internet besteht. Ich könnte mir dafür auch eine native Android App erstellen. Ich habe das Wissen und die Werkzeuge dazu.Da ich zur Zeit total auf Web-Anwendung stehe möchte ich zuerst diesen Weg versuchen. Sollte ich scheitern, dann muss es eben eine native Android App sein.
Ich habe viel über PWA gelesen und etliche Videos angeschaut. Doch ein paar signifikante Fragen sind noch offen. Ich hoffe das liest hier jemand der eine Ahnung davon hat.
Die meisten Beispiele gehen davon aus, man verwendet CouchDB, MondoDB auf Serverseite und PouchDB oder IndexDB auf Clientseite und lässt sie synchronisieren.
Serverseitig würde ich gerne Node.JS verwenden. Ich habe bereits ein NodeJS Projekt aufgesetzt und kann auf meinen REST-API zugreifen. Auch die Client Seiten kann ich damit rendern. Die Aufrufe sind auch über JWT abgesichert. Jetzt stehe ich auf dem Schlauch und weis nicht weiter.
Soll ich nach den Beispielen gehen und z.B CouchDB aufsetzen? Ich müsste also über NodeJS die Daten vom REST Server abrufen und diese in CouchDB schreiben damit die Clients die Daten replizieren können?
Clientseitig müsste ich die komplette CRUD Funktionalität mittels JavaScript für die Nutzung von IndexDB umsetzen. Ich habe jedoch jede Menge Logik die vom Server(NodeJS) kommen sollte. Es geht hier nicht um statische Seiten die lokal gecached werden können. Also muss ich die business logic ebenfalls auf dem Client umsetzen. Wenn dem so ist, macht der NodeJS Server keinen Sinn. Dann müsste der Client direkt mit meinen REST Server kommunizieren.
Ich würde ungern ein Framework wie Angular oder VueJS zusätzlich zu NodeJS verwenden wollen, weil es einfach zu viel für mich wird außer, es geht nicht mit NodeJS alleine oder die Vorteile würden überwiegen.
Wenn ich das Projekt starten müsste komplette ohne Daten, dann würde eine Kombination von CouchDB und IndexDB sicherlich eine gute Wahl sein. Aber für mein Scenario sehe ich richtig Schwarz für eine PWA. Irgendwie möchte ich doch eine Webanwendung umsetzen da es für mich einen großen Lerneffekt hätte.
Schöne Grüße
Kostas
Kommentar