Frameworks ========== Here we give a rough overview of the frameworks used in this application. This is not intended to be a guide for usage (these can be found under the respective link), but to highlight the special aspects in relation to development in this application. There are a few fundamental frameworks that are used in frontend and backend: * `Socket.IO `_ for real-time communication between the frontend and backend Frontend -------- The frontend is based on the VueJS framework and uses the following additional libraries: * `Vue 3 `_ - Progressive JavaScript Framework * `Vuex `_ - State Management Pattern + Library * `Vue Router `_ - Routing for Vue.js * `Socket.io for Vue `_ - Socket.io for Vue 3 * `Bootstrap 5 for Vue `_ - Bootstrap 5 for Vue 3 * `Vite `_ - Next Generation Frontend Tooling (for building the frontend) In addition to the above, the frontend uses further libraries not directly related to VueJS: * `PDFjs `_ - PDF Viewer * `Bootstrap 5 `_ - Responsive frontend toolkit * `Bootstrap Icons `_ - Bootstrap Icons Backend ------- Currently the database in the backend is based on PostgreSQL, while the binding is established with Sequelize, which enables the exchange of the database: * `PostgreSQL `_ - Relational Database * `Sequelize `_ - Database Management System To provide the server itself we use ExpressJS, extended by the PassportJS library for authentication: * `ExpressJS `_ - Web Framework for Node.js * `PassportJS `_ - Authentication Middleware for Node.js