Case Study

Bijelic TimeTrack

Production Workforce Management Platform

Bijelic TimeTrack is a full-stack employee time tracking platform built from scratch for real-world workforce management.

Flutter Java Spring Boot PostgreSQL Docker NFC GPS

The Problem

Traditional employee time tracking can become difficult to manage when attendance, work locations and reporting need to be handled across multiple employees and locations.

The system was designed to provide digital check-in/check-out, location-aware attendance, centralized administration, reporting and reliable operation even when connectivity is unavailable.

The Solution

TimeTrack combines a Flutter frontend, Spring Boot backend and PostgreSQL database into a complete full-stack production application. The system includes JWT authentication, role-based access, GPS geofencing, NFC check-in/check-out, offline synchronization, PDF reporting and multilingual support.

Key Features

GPS Geofencing

Validate attendance based on configured work locations.

NFC Attendance

Use NFC cards for fast site-based check-in and check-out.

Offline-First Workflow

Store attendance actions locally when connectivity is unavailable and synchronize them when the connection returns.

Role-Based Access

Separate employee and administrator capabilities.

Reporting

Provide today, week and month reporting together with PDF export.

Multilingual UI

Support English, German, Bosnian, Serbian and Croatian.

Administration

Manage users, sites and attendance-related data through the administration interface.

Authentication

Secure API access using JWT authentication and refresh tokens.

Architecture

Application Flow

Flutter REST API Spring Boot PostgreSQL

Production

Docker Nginx Linux VPS

The application uses a Flutter frontend communicating with a Spring Boot REST API. PostgreSQL provides persistent storage, while Docker containers are used for production deployment behind Nginx on a Linux VPS.

Authentication & Security

Offline-First Attendance

Attendance should not depend entirely on an active internet connection.

User performs Check-In / Check-Out
Connection available?
YES

Send to API

NO

Store locally

Connection restored
Synchronize pending actions

GPS location and site selection are handled as part of the offline workflow so attendance operations can continue reliably.

NFC Site Check-In

NFC card Read site identifier Select corresponding site Perform check-in/check-out

The application supports NFC-based site identification as part of the attendance workflow.

GPS Geofencing

Geolocation is used to validate whether an employee is within an allowed work-site area before attendance actions are accepted.

Administration

  • User management
  • Site management
  • Employee management
  • Attendance and reporting visibility
  • Role-based access
TimeTrack administration dashboard view

Reporting & Export

  • Today reports
  • Weekly reports
  • Monthly reports
  • Work history
  • PDF export
TimeTrack reporting and employee workflow interface

Technology Stack

Backend

Java • Spring Boot • Spring Security • REST API • JWT

Frontend

Flutter • Dart • Android • iOS • Web

Database

PostgreSQL • JPA • Hibernate

Infrastructure

Docker • Linux • Nginx • VPS • SSL

NFC

NFC integration

Location

Geolocation • GPS Geofencing

Engineering Challenges

Offline synchronization

Attendance needs to remain usable when connectivity is unavailable.

NFC integration

Integrating NFC-based site identification into the attendance workflow.

Geolocation

Validating attendance against configured work locations.

Authentication

Protecting API endpoints while supporting access and refresh tokens.

Production deployment

Running the complete application stack using Docker, Nginx and a Linux VPS.

Production Deployment

Docker Backend • Frontend • PostgreSQL Nginx HTTPS timetrack.mmtrvc.de

The application is deployed to a Linux VPS using Docker containers and exposed through HTTPS.

Screenshots

What Was Built

Try the Live Demo

Explore the production application and experience the workflow directly.

Open Live Demo