Time-Tracking App

Time-Tracking App

YEAR

2025

MY ROLE

Full Stack Development

INDUSTRY

General

STACK USED

  • Python | Flask
  • HTML | Tailwind CSS
  • Javascript
  • MySQL

Project Overview

TimeTracker delivers a comprehensive solution for team time management and absence tracking. Users can log their working hours through an intuitive interface, choosing between duration-based entry or start/end times with break tracking. Time entries can be categorized by projects, with detailed notes for activity context. The application features a robust absence management system, including vacation requests, sick leave tracking, and administrative approval workflows. The admin dashboard provides real-time visibility into team status, working hours, and planned absences, enabling better resource planning. Built with Python/Flask and MySQL for the backend with SQLAlchemy ORM, the application combines Tailwind CSS interface with JavaScript interactions for a seamless user experience.

Key Features

Timer-Based & Manual Time Logging

Feature Icon

Track work hours through flexible input methods with options for duration or start/end times plus breaks

Feature Icon

Associate time entries with specific projects and add detailed notes for comprehensive activity tracking

Backend Powered by Flask and SQLAlchemy

Feature Icon

Secure user authentication system with role-based access controls for different permission levels

Feature Icon

Optimized database schema for efficient storage and retrieval of time entries, projects, and user data

Admin Dashboard

Feature Icon

Comprehensive overview of team status, including current work assignments and absence information

Feature Icon

Request management system for approving vacation, sick leave, and overtime reduction requests

Real-time Notification System

Feature Icon

Instant alerts for request approvals, rejections, and important team updates

Feature Icon

Read/unread status tracking with options to mark notifications as read or dismiss them

Page-Based Search Functionality

Feature Icon

Implemented search functionality using LunrJS to index and retrieve relevant pages within the application

Feature Icon

Simple interface for finding navigation targets without requiring database queries for content

Modern Tech Stack

Feature Icon

Backend: Python with Flask framework for robust server-side processing and route handling

Feature Icon

Frontend: HTML with Tailwind CSS for responsive design and JavaScript for interactive elements

Feature Icon

Database: MySQL for reliable relational data storage with SQLAlchemy ORM

Feature Icon

Search: Client-side searching with LunrJS for efficient page indexing and retrieval

Absence Management

Feature Icon

Integrated vacation and sick leave tracking with remaining entitlement calculations

Feature Icon

Streamlined request and approval workflow for all types of absences

Project Gallery

Challenges Solved

1

Accurate Time Tracking

Implemented a flexible time entry system supporting multiple input formats (hours, minutes, decimal) with client and server-side validation to ensure data integrity

2

Data Aggregation for Analytics

Created optimized queries for real-time dashboard statistics, supporting dynamic filtering by date ranges, projects, and team members without performance degradation

3

Integrated Authentication System

Developed a secure authentication framework with password hashing, session management, and role-based permissions controlling access to sensitive administrative functions

4

Responsive UI Architecture

Engineered a responsive interface using Tailwind CSS and JavaScript that maintains functionality across device sizes while providing rich interactive elements like modal dialogs and dynamic forms

5

Cross-entity Notification System

Designed an event-driven notification system that tracks actions across different application modules and delivers targeted alerts to relevant users

6

Complex Form Validation

Created a comprehensive validation system for time entries that handles various time formats, overlapping entries, and ensures consistency between start/end times and durations

Check other similar projects

Room & Resource Management System

Room & Resource Management System

A system for organisations that manage physical space: buildings and rooms, bookings, leases, physical keys, equipment, and the documents attached to them. It has three surfaces: a public booking site where anyone can request a room without an account, a member portal for internal bookings, and a back office where staff approve requests and manage everything else. I built the application and the stack it runs on — seven Docker Compose services that start in order behind health checks, with migrations applied on boot — and carried out the production cutover. The open-source version runs from a clone with one command and fictional demo data.

Read more
Postbuch — Correspondence Register

Postbuch — Correspondence Register

German associations and public bodies keep a Postbuch: a register of every official letter they send or receive, who handled it and how it was resolved. It is usually a paper ledger or a spreadsheet nobody updates. This one fills itself in: email arrives over IMAP, scanned letters are OCR'd into searchable text, and every change is recorded with what it was before and after. I built the application, the mail-import worker and the storage path, and wrote the runbooks for setup, backup and the production migration. It runs from a clone with one command and fictional demo correspondence.

Read more
Slack–Mattermost Bridge

Slack–Mattermost Bridge

Two organisations, one on Slack and one on Mattermost, needed to work in a shared channel. The bridge connects one Slack channel to one Mattermost channel so it feels like a single room: messages, threads, files, edits, deletes and reactions cross in both directions, each under the author's own name and marked with the platform it came from. It runs as a single container next to Mattermost, with no public endpoint. A setup check verifies tokens, permissions and server settings before a single message is copied.

Read more
Polylog — Live Speech Translation

Polylog — Live Speech Translation

Polylog turns a speaker's voice into live subtitles in other languages. Attendees open a link on their own phones and read along in their language a few seconds after the words are spoken. I built the platform. The service itself is private; the browser client, the microphone capture and the WebSocket protocol are open source, with a mock server that replays a conference session so anyone can try the client without a backend.

Read more
Room Booking Platform

Room Booking Platform

This room booking platform offers a seamless online experience where users can easily search and reserve rooms. Once a booking is made, they receive an automatic notification along with a unique booking number, which allows them to manage their reservations effortlessly. Additionally, the platform features an admin dashboard that provides comprehensive tools for monitoring room availability, managing bookings, and accessing detailed analytics for efficient operations.

Read more
Footprint Trading Dashboard

Footprint Trading Dashboard

This Dash-based trading analytics dashboard visualizes candlestick and footprint data in real-time, offering traders deep insight into buy/sell imbalances, volume deltas, and high-activity price zones. I leveraged AI-assisted coding to streamline the development process—particularly for chart rendering, database interactions, and pattern analysis. I architected the MySQL database from scratch, creating the schema, tables, and indexes optimized for time-series market data. The application fetches and processes that data efficiently and renders it using Plotly in an interactive web UI. Deployed on a self-managed Linux server, this self-hosted dashboard offers powerful, fast, and scalable insights tailored to internal trading operations.

Read more