This thesis aims to answer the question of whether a software development method based on using single source code in JavaScript/TypeScript and publication across multiple platforms can produce a reliable working application. This method could be very useful for developers whose code can also be published as standalone applications. The technologies used will include: Quasar, Vue, NestJS, Electron and Cordova.
Both, frontend and backend use TypeScript programming language.
Client domain model is described by the diagram below:

Client is a Vue.Js based Quasar application. We save data in local storage. The application can be build for desktop (Windws, Linux & macOS) with Electron and for mobile (Android & iOS) with Cordova
First, Install the Quasar global CLI:
npm i -g @quasar/cliNext, open your terminal in the 'client' folder and install node packages.
npm iTo start client web application use the following command:
quasar devFirst, prepare you system following Quasar documentation
You can start the Electron Application with
quasar dev -m electronOn Linux GNOME, if you have an error Gtk-ERROR ** use the following command:
quasar dev -m electron -- --gtk-version=3or run :
npm run electron-linuxPlease, make sure your platform is correctly configured for Cordova Development following Quasar Preparation for Cordova App Docs. Make sure the Cordova CLI, Android Studio and the required SDKs are installed.
npm install -g cordovastart the app in development mode:
quasar dev -m cordova -T [android|ios]Synchronization is achieved by using the Nest.JS server and MySQL database on the backend side.
Database Entity Relationship diagram:

Diagram illustrating the data synchronization strategy:

First, create new database and user in MySQL (or MariaDB).
CREATE DATABASE medikoproof;
CREATE USER medikohogent@localhost IDENTIFIED BY '*PASSWORD*';
GRANT ALL PRIVILEGES ON medikoproof.* TO 'medikohogent'@'localhost';
FLUSH PRIVILEGES;Next, open your terminal In the 'server' folder and install the nest.js global CLI:
npm i -g @nestjs/cliInstall node modules:
npm iRun migration scripts:
npm run migration:runStart the server:
npm run dev