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

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.
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.

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.








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.