Thummar Technologies
Company
Industries
Technologies
Resource
StudyKlocka — Pomodoro Study Timer & Productivity Tracker

HOME - our portfolio - studyklocka pomodoro timer app

StudyKlocka — Pomodoro Study Timer & Productivity Tracker
StudyKlocka — Pomodoro Study Timer & Productivity Tracker
Industry
Industry

EdTech & Productivity

Built for
Built for

Web + Mobile (iOS & Android)

Project Type
Project Type

SaaS Product Build

Region
Region

Global (India, UK, USA)

Project Description

StudyKlocka (Swedish for Study Clock) is a full-stack Pomodoro-based study timer and productivity tracking platform built by TTPL, live at studyklocka.com. Designed for both students and professionals, it transforms the classic Pomodoro technique into a structured, data-rich personal productivity system — letting users organise their study or work sessions around meaningful time periods, track every focused minute by subject or project, and analyse their output through visual dashboards and email reports.

The platform is delivered as a Vue.js + Laravel web application and a cross-platform Flutter mobile app (iOS and Android), both consuming the same REST API. Users set up Terms — time-bounded periods like a university semester, a work quarter, or a project sprint — and assign Tasks (subjects, modules, or work activities) to each term. The built-in Pomodoro timer then logs every focus session and break against the selected term and task, building a detailed, searchable time record across the user's entire study or work history.

The platform supports students (semesters, subjects) and professionals (sprints, projects) with separate task type libraries per user type, a multi-currency subscription model (India, UK, US), a 'forgotten entry' feature for backdating missed sessions, and a fully functional admin panel for plan, user, and subscription management.

Goal

The goal of StudyKlocka was to build a structured, data-driven Pomodoro productivity platform that goes beyond a simple countdown timer — giving students and professionals a complete system to organise, log, and analyse every study or work session across their academic or professional lifecycle.

  • Deliver a Pomodoro timer web app and Flutter mobile app sharing the same backend, letting users track sessions seamlessly across devices
  • Introduce the concept of Terms (semesters, quarters, sprints) and Tasks (subjects, projects) so that every timed session is attributed to a meaningful unit of work — not just a raw time entry
  • Build a rich analytics dashboard showing focus time, break time, and task-level breakdowns per term — giving users real visibility into how they actually spend their time
  • Support both students and professionals with distinct task type libraries, term types, and terminology tailored to each user group
  • Implement a 'forgotten entry' feature allowing users to backdate sessions they forgot to log — keeping the record accurate without punishing real-world interruptions
  • Develop a freemium subscription model with Free and Paid plans, multi-currency pricing for India, UK, and US markets, and an admin panel for plan assignment, user management, and platform statistics
Challenges

Background Timer on Mobile Without Interruption: A core user expectation for a timer app is that the countdown continues accurately even when the user switches apps, locks the screen, or takes a phone call. Implementing a reliable background timer on both iOS and Android using Flutter required the flutter_foreground_task package to run a persistent foreground service — with careful handling of platform-specific lifecycle events, notification channels, and wakelock management to prevent the OS from killing the timer process.

Preventing Overlapping Session Entries: Because users can manually edit session start/end times or add forgotten entries retrospectively, the system had to reliably detect and reject overlapping time logs — where a new entry falls within, contains, or straddles an existing session. The duplicate detection query had to handle three distinct overlap geometries (start inside, end inside, and fully contained) in a single efficient database query, without false positives for adjacent (non-overlapping) sessions.

Term-Task-Log Architecture: The data model needed to be expressive enough to answer meaningful analytics questions — total focus time per subject this semester, daily breakdown by task for the last 30 days, term-level aggregate charts — while remaining efficient for real-time dashboard queries. Designing the TermTaskMapping join table correctly, and building aggregation queries that work across terms, tasks, and task types without N+1 query issues, was a critical backend challenge.

Multi-User-Type Platform: Students and professionals have fundamentally different mental models — a student thinks in semesters and subjects, a professional thinks in sprints and projects. The platform had to dynamically surface appropriate term types and task types based on user type, without duplicating data models or UI components — keeping the codebase clean and the user experience contextually relevant for each audience.

Multi-Currency SaaS Subscription: Offering plans in Indian rupees, British pounds, and US dollars — each independently configurable — while managing plan activation windows, upgrades, extensions, and free-to-paid transitions correctly for all users required a robust plan mapping system (PlanMapping) that tracked active_from, active_upto, and extension status independently from the plan definition itself.

Solutions
Pomodoro Timer — Web & Mobile with Background Execution

The timer is implemented in both the Vue.js web app and the Flutter mobile app. On the web, the timer component runs in the foreground and respects the user's configured focus, short break, and long break durations (stored in UserSettings). On mobile, flutter_foreground_task powers a persistent foreground service that keeps the timer running accurately regardless of screen state — with wakelock enabled during focus sessions so the screen stays on, and audioplayers delivering configurable audio cues at session completion. The volume_controller package allows users to control alert volume directly from within the app.

Term & Task System — Structured Session Organisation

Users create Terms — named time periods with a start date, optional end date, term type (semester, quarter, academic year, sprint, etc.), and a description — and assign one or more Tasks to each term. Tasks are typed by category (subject, module, project, activity) with distinct task type libraries for students and professionals. When starting a timer session, the user selects their active term and the task they are working on; the session is logged against that specific TermTaskMapping record. This structure means every logged minute carries full context: which term, which task, and which task type — making analytics queries both precise and semantically meaningful.

Task Log Engine — Accurate, Flexible Session Tracking

Every timer session creates a TaskLog record capturing start time, end time, time spent (in seconds), timer type (focus, short break, long break), and completion status. A real-time duplicate detection algorithm prevents overlapping entries by checking all three overlap conditions — new entry starting inside an existing log, ending inside one, or fully enclosing one — using a single efficient query before committing the record. The forgotten entry feature allows users to manually add sessions they ran without the app, with a clearly marked is_forgotten_entry flag so the system can distinguish logged-in-real-time sessions from backdated ones in analytics and reports.

Analytics Dashboard — Term, Task & Daily Breakdowns

The dashboard gives users a clear picture of how they use their time at three levels of granularity. At the term level, aggregate charts show total focus time, total short break, and total long break for each term the user has created. At the task level, a breakdown shows time spent on each task within a selected term, ordered by total minutes logged. At the daily level, a 30-day chart shows time per task per day — giving users a visual record of study consistency and workload distribution. All charts update in real time and support individual term filtering, so users can compare performance between semesters or projects.

PDF Report Generation & Email Delivery

Users can generate a PDF report of all their logged sessions for any date range from the Reports view and have it emailed directly to any address. The server-side report includes start time, end time, duration, task name, term name, and session type for every matching log — formatted in IST timezone, grouped by date, with a header showing the user name and the selected date range. Reports are generated using DomPDF, saved temporarily to storage, delivered via Laravel Notifications (Mail channel), and deleted immediately after sending — ensuring no user data is retained on the server.

Freemium Subscription & Multi-Currency Pricing

StudyKlocka runs a freemium model with Free and Paid plans, each independently defined for students and professionals. Plan amounts are stored in three currencies — Indian rupees (amount), British pounds (amount_uk), and US dollars (amount_us) — allowing the platform to serve users across markets without running separate instances. Plan activation is tracked via PlanMappings that record active_from, active_upto, and extension status per user. Admins can assign plans, toggle activations, extend active periods, and view all user subscriptions from the admin panel. A check.plan middleware enforces plan access on every protected API route.

Admin Panel & User Management

A role-protected admin panel gives platform administrators full visibility and control. Admins can view all registered users, reset passwords, toggle account activation, assign and extend subscription plans, and read and respond to contact form submissions with internal remarks. A system stats endpoint surfaces platform-wide metrics. Plan management is fully self-service — admins can create new plans, toggle their active status, and manage plan types without code changes. The same API serves both the admin panel and the public-facing app, with role-based middleware (check.role:admin|super_admin) guarding all administrative routes.

Tech Stack
Tags
Industry
Visuals
THUMMAR TECHNOLOGIES
icon
TRUSTED BY CLIENTS IN 8+ COUNTRIES
icon
ENGINEERING EXCELLENCE
icon
DIGITAL TRANSFORMATION PARTNER
icon
FUTURE-READY SOLUTIONS
icon
GLOBAL SOFTWARE DEVELOPMENT COMPANY
icon
YOUR SUCCESS IS OUR MISSION
icon
50+ PROJECTS DELIVERED GLOBALLY
icon
ON-TIME. ON-BUDGET. ON-POINT.
icon
WHERE VISION MEETS EXECUTION
icon
BUILDING TECHNOLOGY THAT EMPOWERS BUSINESS
icon
THUMMAR TECHNOLOGIES
icon
TRUSTED BY CLIENTS IN 8+ COUNTRIES
icon
ENGINEERING EXCELLENCE
icon
DIGITAL TRANSFORMATION PARTNER
icon
FUTURE-READY SOLUTIONS
icon
GLOBAL SOFTWARE DEVELOPMENT COMPANY
icon
YOUR SUCCESS IS OUR MISSION
icon
50+ PROJECTS DELIVERED GLOBALLY
icon
ON-TIME. ON-BUDGET. ON-POINT.
icon
WHERE VISION MEETS EXECUTION
icon
BUILDING TECHNOLOGY THAT EMPOWERS BUSINESS
icon
flag

Ahmedabad, India

call
inquiry@thummartechnologies.com
Message
+91 9725497682
location
2/3/A Samruddhi Complex, Near Saspan Cross Road, Nikol, Ahmedabad - 382350

© 2026 Thummar Technologies. All rights reserved.

LinkedInX (Twitter)FacebookInstagram
StudyKlocka — Pomodoro Study Timer & Productivity Tracker | TTPL Portfolio | Thummar Technologies