Personen & Kalenders

Internship project: Personen & Kalenders

A personnel management and planning application made for Ziekenhuis Geel

Supporting documents

From 24 February 2025 to 26 May 2025, I had the privilege of doing my internship at Ziekenhuis Geel (also known as AZ St. Dimpna) On a personal note, this is also the hospital where my sister and I were born.

The hospital uses Windows computers and many in-house applications, developed with C# and the .NET Framework, and Windows Forms as application framework. Additionally, Active Directory is used for managing user accounts.

During my internship, with the help of my internship mentor, I worked alongside another intern to develop two projects, the main one being Personen & Kalenders.

Personen & Kalenders

This main aim of this application is to replace the Erica and the Informalendar applications. Erica had become difficult to maintain due to poor structure while at the same time there were feature requests coming in, and there was duplicate functionality in both applications. In addition, both relied on awkward workflows and various workarounds to deal with the quirks of those applications that would never get fixed. Therefore, a decision was made to write a completely new application from scratch.

To this end, the existing applications would have to be studied and completely reimplemented. These applications would allow hospital personnel to view work-related details of all the other personnel, see who is on duty for the hospital departments, plan activities, but also plan absences, either for themselves or other people in their department.

There would be a user application for regular hospital employees and an administrative application (called the configurator) for, among other people, department heads and the IT department. This configurator application would allow users to modify user data such as changing a phone number, managing the hospital shifts, and planning activities.

Most importantly, the application would be developed with an extensible structure from the ground up, with the help of the three-tier architecture, with a data layer that communicates with the database, an object layer with all of the business logic, and a presentation layer that the end-user interacts with. The main benefit of this approach is that another application can reuse the data and object layers, retaining the logic without a rewrite. Additionally, the presentation layer code would adhere to a consistent, well-defined structure, so that if an addition has to be made, it can be cleanly implemented.

Additionally, the data from the legacy applications would have to be migrated with the help of scripts: these would convert the data from the legacy applications into the new application, and these would make use of the data and/or object layers, demonstrating the benefit of the three-tier approach in action.

The work was split roughly half-half between me and my co-intern. For ease of development, since we would have to manually synchronise our work with each other, we worked on self-contained functionalities. For example, I did things like the Wachtbord and its configurator screen, the calender screen, and my co-intern worked on the doctor assistant functionalities, and the shift schedule configuration, and these functionalities would not overlap in terms of code.

The entirety of the project, from analysis to handover took 12 weeks. The full details of this project are in the realisation document.

Kledij Beschadigingen

In the last few weeks of the internship, a new request for an application came, from the facility department in the hospital. They needed to improve efficiency with regards to the registration of clothing repairs. Currently, they do this with a Microsoft Forms form, typically used for surveys, but the boss of the department wanted something faster.

Since we completed Personen & Kalenders on time, we still had time left, and got to work to this new application, which we dubbed "Kledij Beschadigingen". The entirety of the project, the formal analysis, creation of the database, implementation of the data and object layers and the creation of the forms was completed in around 6 days. My co-intern did most of the work for the application while I was still working on Personen & Kalenders. However, I contributed by implementing arguably the most important form in the application: the scan form. This is where most users of the application would find themselves in, when they have to register clothing articles that have already been repaired.

The form is expressly designed to maximize speed and efficiency: the user can use the keyboard to navigate the form, there is autocompletion so that the user does not have to type as much, the user can submit with the Enter key and the form will be cleared. This way, the scanner can register clothing pieces as quickly as possible.

The scan page for KledijBeschadigingen

What I learned

To be honest, the internship has changed my worldview on programming as a whole. This was my first real-world software project and I have learned quite a lot. It showed, that I still have a lot to learn with regards to software. I learned the true value in analysis and planning your programming as well as receiving a solid foundation in what user interface and experience should be like as well as writing better code.