Skip to content
View JolienTrog's full-sized avatar

Block or report JolienTrog

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
JolienTrog/README.md

June 2026

Password Policy Architecture for Icinga Web

As part of my final apprenticeship project at Icinga GmbH, I designed and implemented an extensible password policy architecture for Icinga Web. The goal was not only to provide a predefined password policy, but to create a reusable architecture that allows additional and company-specific password policies to be integrated without modifying the existing form logic.

The implementation included:

  • Definition of a common interface for password policies
  • Hook-based extension point for registering custom policies
  • Server-side password validation
  • Integration into user creation, password changes and the initial setup
  • Centralized handling of configured password policies
  • Error handling for invalid configurations
  • User-friendly validation messages
  • Manual functional testing and automated unit tests with PHPUnit
  • Extension of the public Icinga Web documentation

Two policies were implemented as part of the project: a backwards-compatible default policy and a configurable base policy with password requirements based on security recommendations. The project was developed within the existing Icinga Web codebase and reviewed with my project supervisor. The resulting functionality was later integrated into the official Icinga Web repository.

View the Password Policy implementation

View Pull Request #5419 – Implement password policy with hook

View Password Policies in the Icinga Web changelog

October 2025

Since my last update, I’ve completed my intermediate exam with excellent results. At vocational school, we’re now in the third year, focusing on topics like frontend development (HTML, CSS), PHP, and UI/UX design.

At the beginning of this third year, I started a practice project to deepen my understanding of Icinga Web development. Using a fictional shop module, I learned about the fundamental elements, structure, and interactions within the software. I created a database and implemented CRUD functionality, sessions and tags. Furthermore, I've been diving deeper into real-world development, setting up a stale bot using GitHub Actions and implementing a password policy hook in Icinga Web. My next project will be to develop a visual representation of Time Periods for Icinga Web. Because Icinga Web uses its own library, IPL, even the web components are written in object-oriented PHP, which allows for clean and modular code design.

I really enjoy working across different areas of IT — from using Linux as my main operating system and working in the terminal, to developing in Docker containers and coding with the IDE PhpStorm. These diverse tools and environments make everyday work both challenging and exciting.

Because I like to work in a structured and consistent way, I’ve already begun preparing for my final examination, taking small daily steps toward the successful completion of my apprenticeship.

Repository

  • Icinga Shop Module
  • GitHub Action Stale Bot
  • Password Policy
  • August 2024

    I am currently in my second year of vocational training to become an IT specialist for application development. I have a great apprenticeship at Icinga GmbH, where I’ve already learned a lot in my first year. I’ve had the chance to explore various fields such as Linux, Command line, SQL, API, networking basics, Git, GitLab, Docker, PHP, Raspberry Pi and (a little bit of) PowerShell.

    In vocational school, I practiced programming with C# in the first year, and now I'm working with Python in my second year. I'm still excited to discover the vast world of IT, though I now have a clearer sense of just how much there is left to learn!

    Repository

  • Syntax Exercise: From C# to Python to PHP
  • Nachtmarrie: MVC-Webdevelopment
  • CLI Command: Cleanup backups (Icinga Web Modul)
  • Audit: Auditing GitLab Berechtigungen
  • February 2023

    I am GitHub Readme Generator's creator

    Hello my name is Jolien and I want to become a Software Developer. I want to show some of my first tries and experiences with coding. I was working as an art therapist when I discovered my interest in programming. I started to learn HTML and CSS and from the first moment I was very fascinated about the structure but also what I do with it. I felt excitement about how I could use it to create something.

    Repository

  • bike-and-code
  • Small exercieses in HTML, JavaScript
  • Python data courses
  • Pinned Loading

    1. Icinga/icingaweb2 Icinga/icingaweb2 Public

      A lightweight and extensible web interface to keep an eye on your environment. Analyse problems and act on them.

      PHP 840 283

    2. Audit-Auditing-GitLab-Berechtigungen Audit-Auditing-GitLab-Berechtigungen Public

      PHP

    3. JolienTrog JolienTrog Public

    4. Nachtmarrie-MVC-Webdevelopment Nachtmarrie-MVC-Webdevelopment Public

      PHP

    5. Syntax-Exercise-form-Csharp-to-Python-to-PHP Syntax-Exercise-form-Csharp-to-Python-to-PHP Public

      Python