Skip to content

rafalhogent/mediko

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mediko

Store own health data and synchronize across devices.

HoGent graduation thesis

Cross-platform application with Vue, Quasar and NestJs

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.

Cross platform application with Quasar

Language

Both, frontend and backend use TypeScript programming language.

Domain

Client domain model is described by the diagram below: Client Domain Model Diagram

Client application

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

Installation

First, Install the Quasar global CLI:

npm i -g @quasar/cli

Next, open your terminal in the 'client' folder and install node packages.

npm i

To start client web application use the following command:

quasar dev

Build Electron Desktop App

First, prepare you system following Quasar documentation

You can start the Electron Application with

quasar dev -m electron

On Linux GNOME, if you have an error Gtk-ERROR ** use the following command:

quasar dev -m electron -- --gtk-version=3

or run :

npm run electron-linux

Build Mobile App

Please, 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 cordova

start the app in development mode:

quasar dev -m cordova -T [android|ios]

Synchronization

Synchronization is achieved by using the Nest.JS server and MySQL database on the backend side.

Database Entity Relationship diagram: db-diagram

Diagram illustrating the data synchronization strategy: sync-diagram

Server Installation

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/cli

Install node modules:

npm i

Run migration scripts:

npm run migration:run

Start the server:

npm run dev

About

Cross-platform application with Vue, Quasar and NestJs

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors