This is a demo app. It has been developed during ICT module 141 at Technische Fachschule Bern. The application consists of tree parts: the database, the API and the GUI.
The database can be either relational database supported by knex. We have tested MySQL and PostgreSQL. The data model mainly consists of the two entities user and task. To setup such a database, the SQL DDL statements are provided. There are two supported designs: one making use of columns with the ENUM data type and another one using lookup tables.
There is a REST API that provides access to the database via HTTP/JSON for the application.
There is a grafical user interface programmed with vue.js that uses the API.
To start the API and server change to server and run nodemon
. This will start the API and also serve static content in the client/dist folder, if available. This folder contains the latest build of the GUI.
For GUI development start the development server by changing to client folder and running npm run serve
.
You can build the GUI by running npm run build
.
After building the GUI by running npm run build
, you can serve the whole application (API and GUI) together on a single web server. Just run npm start
or nodemon
from the root directory of this project.
The application can be hosted locally, at Heroku or any other host that supports node.js.
If hosting at heroku you must upload a package that contains a package.json file in the root folder. Heroku will then compile the project and start it using npm start
. Heroku will provide the environment variables process.env.PORT and process.env.DATABASE_URL, hence the application must use them as port and database connection string.