← Back to selected work
Java / application engineeringPublic source

Traineeship Management

Connecting placement, supervision and evaluation through role-based application workflows.

Team project · Application development and controller/service testingJava 17 / Spring Boot / MySQL / JUnit 5 / Mockito
The context

A university application built with Java 17, Spring Boot and MySQL. Different workflows support students, companies, professors and a traineeship committee.

View repository ↗
How it connects

The workflow.

  1. 01Authentication
  2. 02Role-based workflow
  3. 03Matching & placement
  4. 04Logbook & evaluation

A functional overview of the application’s traineeship lifecycle.

Engineering details

Inside the work.

01

Authentication and role boundaries

Spring Security and role-specific controllers support different journeys after sign-in, keeping student, company, professor and committee interactions organized around their responsibilities.

02

Matching and assignment strategies

Service-layer search and supervisor-assignment strategies handle placement-related business rules. Factories keep strategy selection separate from the calling workflow.

03

Logbooks and evaluations

Students maintain logbooks and view evaluations, while company and professor workflows support supervision and assessment. MySQL-backed persistence connects these records to traineeships.

04

Behavior-focused tests

JUnit 5 and Mockito tests cover authentication controllers, role-specific controllers, services, position-search strategies and supervisor-assignment strategies.

What I took from it.

  • Role-based applications require thinking through entire user journeys.
  • Separating strategy selection from workflow code makes business rules easier to test.
  • Controller and service tests provide useful coverage for both web behavior and domain decisions.
See for yourself

Source & documentation.

Application source↗JUnit & Mockito tests↗Build configuration↗