Skip to content

P/N 04Case studyEpoka University, team project (product name WorkTrezz)

WorkTrezz manager dashboard on a laptop beside the employee app's clock-in screen on a phone

WorkTrezz — HR Management Platform

An HR platform for small companies that brings employees, departments, attendance, leave requests and announcements into one system, delivered as a Spring Boot API, a Next.js web app for managers and a React Native app for employees.

Role
Lead software engineer, planning support
Team
6 members, one of two main developers
Duration
One semester
Year
2026
Stack
Java · Spring Boot · PostgreSQL · Liquibase · WebSockets · Next.js · TypeScript · React Native

Outcomes

  • 3

    Connected apps: API, manager web app, employee mobile app

  • 6

    Team members, as one of two main developers

  • Live

    Attendance and notifications pushed over WebSockets

  • GPS

    Location-aware clock-in for employees in the field

Problem

Small companies often run HR on spreadsheets, chat messages and paper. Managers lose track of attendance and leave, and employees working in the field have no simple way to clock in. WorkTrezz set out to give these companies one dependable system for their everyday HR processes.

Constraints

A university team of six, a fixed semester schedule and three separate repositories developed in parallel. Several people changed the database at the same time, and the product had to work both for office staff and for employees in the field without a desk.

Architecture

One Spring Boot REST API backed by PostgreSQL serves two clients: a Next.js web app for admins and managers, and a React Native mobile app for employees. Liquibase versions every schema change, so all three codebases stay on the same database. A WebSocket channel pushes attendance status and notifications to clients in real time.

Spring Boot API and PostgreSQL at the center, serving the Next.js admin app and the React Native employee app, with Liquibase migrations and a WebSocket channel for live updates.

5 parts, 4 connections.

  • N01 — Next.js web app
  • N02 — React Native app
  • N03 — Spring Boot API
  • N04 — Liquibase migrations
  • N05 — PostgreSQL
  • Next.js web app to Spring Boot API, REST, WebSocket
  • React Native app to Spring Boot API, REST, WebSocket
  • Spring Boot API to PostgreSQL
  • Liquibase migrations to PostgreSQL, schema

Key decisions

Liquibase instead of ad-hoc SQL scripts. With several developers changing the schema at once, versioned and reviewable migrations kept every environment consistent and surfaced conflicts early.

A dedicated mobile app for clock-in instead of a web-only feature. The original plan was web only, but field employees would have struggled with logins and usability. I proposed a small mobile app, which also made location tracking possible.

WebSockets instead of polling for attendance and notifications. Status changes reach managers immediately, without clients repeatedly asking the server.

Attendance screen with today's present, absent, late, on-leave and warning counts, and each employee's site, check-in, check-out and hours worked
Attendance for every site at a glance: who is in, late, on leave or flagged.

Results

The team delivered a working three-part platform: API, manager web app and employee mobile app. Clock-in moved to a purpose-built mobile flow with location tracking, and live updates replaced manual refreshes. As one of two main developers, I worked across all three repositories, supported the project manager and product owner with planning and requirements, and helped teammates when they were blocked.

Attendance QR terminal for the Tirana HQ site, showing a live QR code that rotates every 60 seconds
Check-in starts at the site: a QR code that rotates every minute.
Leave request list with each employee's site, department, leave type, dates and status, and approve or reject actions on pending requests
Leave requests approved or declined in one step.
Monthly payroll table with each employee's type, payment method, base pay, overtime, bonuses, deductions and net pay
Monthly payroll, from base pay through overtime, bonuses and deductions.
Assign Employees dialog moving employees from an available list into a supervisor's team
Managers build each supervisor's team.
Announcements list with notices for specific people, a department or all employees, important ones flagged
Announcements reach the whole company, a department or chosen people.
Employee app home screen with today's attendance status, leave balance, latest payroll and announcements
The employee app opens on today: attendance, leave, payroll and news.
Employee app attendance screen after a successful check-in, with the Clock Out button, the site's QR and GPS requirements and today's records
Clocking in and out on the phone, with QR and GPS required on site.
Employee app leave screen with vacation, sick and parental leave balances and the history of past requests
Leave balances and every request's outcome.

Reflection

I would add contract tests between the API and both clients from day one, so breaking changes are caught automatically. I would keep the migration-first approach to the database and the habit of designing features around the people who actually use them.