Skip to content

Technical documentation

SpracheTypescript, HTML, SCSS
FrameworkAngular
Version17.0.8.
Packetverwaltungnpm

Frontend Struktur


Die Struktur des Frontends entspricht der typischen Angular Anwendung (siehe Doku)

Übersicht Verzeichnis Frontend:

frontend
└── src
    ├── app
    |   |
    │   ├── components                  - Komponenten der Seite
    │   │   ├── atoms
    │   │   ├── organisms
	|   |   └── pages
    │   │
    │   ├── pipes
    │   │   ├── timer
    │   │   ├── user-filter
    │   │   └── ...
	|   |
    │   ├── services
    │   │   ├── event.service.ts
    │   │   ├── loader.service.ts
    │   │   └── ...
    |   |-- styles                     - Globale Design Regeln
	|   |
    │   ├── app.component.ts
    │   ├── app.module.ts
    │   ├── app-routing.ts             - Routing Konfiguration
    │   ├── authenticated.guard.ts     - AuthGuard
    │   └── route-transition-animation.ts   - Animationsregeln
    └── assets                         - Statische Assets

Zusätlich befindet sich zu jeder Datei eine Testdatei.

EventService


Der EventService wird verwendet, um Daten zwischen den Komponenten auszutauschen. Dazu müssen die Komponenten den EventService importieren und ihn im Konstruktor einbinden.

ts
import { EventService } from 'app/services/event.service';

[...]

 constructor(public eventService: EventService) {
    this.eventService = eventService;
  }

LoaderService


Um den Loader ein- und ausblenden zu können, wurde ein LoaderService implementiert. Dieser stellt für beide Aufgaben jeweils eine Methode bereit, die beim abrufen der Daten aufgerufen werden können.

Anwendungsbeispiel:


`loader.service.ts

ts
 public isLoading = new BehaviorSubject<boolean>(false);
  constructor() {}
  show() {
    this.isLoading.next(true);
  }
  hide() {
    this.isLoading.next(false);
  }

mainpage.component.ts

ts
constructor(private LoaderService: LoaderService) { }
  ngOnInit(): void {
    this.LoaderService.show();
    //Simulate a html request
    setTimeout(() => {
      this.LoaderService.hide();
    }, 500);

  }

app.component.ts

ts
...
<app-loader *ngIf="isLoading" ></app-loader>
...

Backend Kommunikation


Die Kommunikation mit dem Backend erfolgt über eine REST-API. Eine Service-Klasse sendet HTTP-Anfragen an das Backend, und die eingehenden Daten werden von den Komponenten genutzt. Der Service wird im Konstruktor der Komponenten aufgerufen.

Bsp:

Das folgende Diagramm veranschaulicht die Kommunikation, die zur Abfrage der "Tasks" vom Backend zuständig ist: