Skip to content

Repository files navigation

WEII – REST Server (Backend)

Projektübersicht

Dieses Projekt ist im Rahmen des Moduls Web Engineering II entstanden und umfasst die vollständige Umsetzung eines REST-Service-Backends für ein Studierendenbewerberportal.

Das Backend stellt eine JSON-basierte REST-API bereit, mit der User, Studiengänge und Studienbewerbungen verwaltet werden können.
Die Umsetzung erfolgte eigenständig und orientiert sich an gängigen Best Practices für REST-Services.


Technologie-Stack

  • Node.js
  • TypeScript
  • Express
  • MongoDB (lokal)
  • Mongoose
  • JWT (JSON Web Tokens)
  • bcrypt (Passwort-Hashing)
  • Basic Authentication

Fachliche Domäne

Das Backend bildet die Server-Logik eines Studierendenbewerberportals ab:

Entitäten

  • User
    • Authentifizierung und Autorisierung
    • Administrator- und Studierendenrollen
  • DegreeCourse
    • Verwaltung von Studiengängen
  • DegreeCourseApplication
    • Bewerbungen von Studierenden auf Studiengänge
    • Validierung: keine Mehrfachbewerbungen für denselben Studiengang im selben Semester

Architektur & Struktur

Das Projekt folgt einer klaren Schichtenarchitektur:

  • Routes
    • HTTP-Handling (Requests / Responses)
    • Statuscodes
    • Authentifizierungs-Middleware
  • Services
    • Geschäftslogik
    • Validierung
    • Autorisierung
  • Models
    • Mongoose-Schemas
    • Datenpersistenz

Die Trennung von Routen, Services und Datenzugriff ermöglicht:

  • bessere Wartbarkeit
  • klare Verantwortlichkeiten
  • einfache Erweiterbarkeit

Implementierte Endpoints

Öffentliche / geschützte Endpoints

  • /api/publicUsers

    • CRUD-Operationen für User (ohne Authentifizierung)
    • ausschließlich zu Test- und Lernzwecken
  • /api/users

    • geschützte User-Verwaltung
    • Zugriff nur für authentifizierte Benutzer
    • Administratorrechte erforderlich für Änderungen
  • /api/authenticate

    • Authentifizierung via Basic Auth
    • Rückgabe eines JWT-Access-Tokens
  • /api/degreeCourses

    • CRUD-Operationen für Studiengänge
    • Lesender Zugriff auch ohne Login möglich
  • /api/degreeCourseApplications

    • Verwaltung von Studienbewerbungen
    • Rollenbasierte Zugriffskontrolle (Admin / Studierende)

Sicherheit

  • HTTPS-Unterstützung (selbstsigniertes Zertifikat)
  • Passwort-Hashing mit Salt (bcrypt)
  • JWT-basierte Authentifizierung
  • Middleware zur Token-Validierung
  • Rollenbasierte Autorisierung
    • Administrator vs. normaler Benutzer
  • Schutz sensibler Daten (keine Passwort-Rückgaben)

Konfiguration & Start

Voraussetzungen

  • Node.js
  • MongoDB (lokal, Standard-Port)

Installation

npm install

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages