Skip to content

Components

Max H edited this page Feb 7, 2022 · 1 revision

In this part, the main components and their advantages for our project are presented.

Node.JS

Node.JS is javascript framework, which uses Chromes V8 engine as their runtime environment.
It is easily extendable with the package manager npm.

We choose Node.JS as our backend framework, as Javascript is already used by the frontend, and therefore the project uses only one programming language.
This leads to a more consistent and easier to maintain codebase.

TypeORM

TypeORM is a object relational mapping library, which converts and save JSON-Objects into a database. It drastically simplifies the interaction with the database, which saves time and reduces the complexity of the whole project.

Express

Express is a web application framework, which is the de-facto standard for creating a web application.

Argon2

argon2 is the package, which implements the hashing algorithm argon2.

argon2 is the winner of the Password Hashing Competition.

JWT

For authentication and authorization we choose to use signed JWTs.

Instead of saving sessions on the server, the server will create and sign a JWT on a new user login.
The JWT is send with every request and used for authentication.

JWTs can be a part in a RESTful-System, as the session is entirely stored on the client-side. The information inside the payload of the JWT can be easily used by the frontend and the backend. The authenticity of the JWT can be easily verified with the use of signed JWTs.

PostgreSQL

PostgreSQL is a relational database management system. It supports a variety of data types.

Clone this wiki locally