Skip to content

KonsumGandalf/rsdp

Repository files navigation

Regensburg Student Progress Dashboard

A tool to automate scanning & monitoring websites & applications for several health topics, such as security, performance and uptime.

Table of Contents
  1. About The Project
  2. Understand this workspace
  3. Apps Domains
  4. Contact
  5. Acknowledgments

About The Project

This project was developed as part of my bachelor thesis at the OTH Regensburg.

Introduction

Gamification is a popular approach to motivate and engage users in various contexts, including education. In this Bachelor thesis, I explore the potential of gamification in higher education and present a complementary learning platform designed and implemented to improve student engagement and performance understanding.

Objectives

The main objectives of this project are:

  • To explore the theoretical foundations of gamification in education
  • To design and develop a complementary learning platform that incorporates gamification elements and mechanics

Understand this workspace

This tool is built within a Nx workspace and employs Angular for the frontend, NestJS for the backend, and PostgresSQL as the database. The database is configured to run inside a docker container by default.

Installation

Below is an example of how you can instruct your audience on installing and setting up your app. This template doesn't rely on any external dependencies or services.

  1. Clone the repo
git clone https://github.com/KonsumGandalf/rsdp
  1. Install NPM packages
npm install

Start the platform

  1. start the database
docker compose up
  1. start the backend
nx serve backend
  1. start the frontend
nx serve frontend

Apps

Name Path Description
backend apps/backend The backend of the platform

Domains

Challenge Management

Backend

Name Path Description
challenge-management-backend-challenge-management libs/challenge-management/backend/challenge-management Allows tutors the update and create challenges
challenge-management-backend-common-models libs/challenge-management/backend/common-models Challenge-management-related data models for the backend.
challenge-management-backend-semester-management libs/challenge-management/backend/semester-management Allows to set the start and end of a semester.

Moodle Management

Backend

Name Path Description
moodle-management-backend-moodle-management libs/moodle-management/backend/moodle-management Provides a set of commands and utilities for interacting with the Moodle platform
moodle-management-backend-moodle-request-handler libs/moodle-management/backend/moodle-request-handler Acting as a middleware for calling the moodle backend api.

Shared

Backend

Name Path Description
shared-backend-test-utils libs/shared/backend/test-util Helps to test services for isolated DB interactions.
shared-backend-utils libs/shared/backend/utils Reusable utility library for common models and functions.

Frontend

Name Path Description
shared-frontend-assets libs/shared/frontend/assets Collection of reusable assets for frontend development
shared-frontend-environment libs/shared/frontend/environment Configurations, and settings related to the frontend environment setup.
shared-frontend-storybook-host libs/shared/frontend/storybook-host Host all shared UI components for Storybook.
shared-frontend-ui-atoms libs/shared/frontend/ui/atoms collection of atomic UI components that are designed to be highly reusable and independent.
shared-frontend-ui-organisms libs/shared/frontend/ui/organisms Collection of reusable UI components that represent complex and interconnected elements of a user interface.

Student-Submissions

Backend

Name Path Description
student-submission-backend-common-models libs\student-submissions\backend\common-models Student-submission-related data models for the backend.
student-submission-backend-github-submissions libs\student-submissions\backend\github-submissions GitHub submission handling for student submissions.
student-submission-backend-moodle-submissions libs\student-submissions\backend\moodle-submissions Moodle submission handling for student submissions.
student-submission-backend-submission-insights libs\student-submissions\backend\submission-insights Allows the frontend to request the state of student submissions.
student-submission-backend-submission-management libs\student-submissions\backend\submission-management Manages student submissions.

Common

Name Path Description
student-submission-common-models libs\student-submissions\common\models Common models used in the student submission domain by the front and backend

User

Backend

Name Path Description
user-backend-common-models libs/user/backend/common-models User-related data models for the backend.
user-backend-github-authorization libs/user/backend/github-authorization Handles GitHub authorization and saves an access token for a user.
user-backend-user-authentication libs/user/backend/user-authentication It provides user authentication functionality for a backend application.
user-backend-user-mail-management libs/user/backend/user-mail-management Manages email confirmation and access control.
user-backend-user-management libs/user/backend/user-management Provides authentication and authorization functionalities for user management in a backend system.

Frontend

Name Path Description
user-frontend-auth libs/user/frontend/auth Utilities for managing the current user's authentication status.
user-frontend-domain libs/user/frontend/domain Utilities and abstractions for interacting with API repository.
user-frontend-identity-management libs/user/frontend/identity-management Utilities for managing user identities and authentication in frontend applications.
user-frontend-user-shell libs/user/frontend/user-shell Provides a shell for building user-facing frontend applications.

Contact

David Schmidt - [Instagram]: @_life_of_david

David Schmidt - [LinkedIn]: @David Schmidt

Project Link: Regensburg Student Progress Dashboard

(back to top)

Resources

Acknowledgments

I would like to express my sincere gratitude to Professor Prof. Dr. Markus Heckner and his scientific employee Julia Ruhland for their invaluable support and guidance throughout this project.

(back to top)