Skip to content
All projects
Internal HR tool·Sep — Dec 2024·Frontend Engineer· internal

Leave Request System

Leave requests, approvals and balances for Nawroz Telecom — in one place instead of an email chain.

The employee directory, searchable and exportable

Overview

An internal tool for booking time off. Employees request leave and see what they have left; managers review everything waiting on them in one queue; HR gets the records and reports without chasing anyone.

Built with a team of four over about three months.

An employee's own leave history

The problem

Time off was being requested and approved ad hoc, which made balances hard to trust and left managers with no single place to see what needed a decision.

What I built

One app with two sides to it — a simple request-and-track view for employees, and a review queue with reporting for managers and HR. Balances update themselves, so nobody is reconciling spreadsheets.

Tech stack

Built with
React, Vite, Tailwind CSS, TanStack Query, Firebase

Key features

  • Book time off in a couple of clicks

    Employees pick dates, say why, and attach anything needed. Their remaining balance is on the same screen, so there's no guessing before asking.

    Requesting time off
  • One queue for managers

    Everything waiting on a decision sits in a single list, with the person's history and remaining allowance alongside it.

    The manager's queue — every request and where it stands
  • Balances that look after themselves

    Allowances update as leave is approved, so what an employee sees and what HR sees are always the same number.

    Allowance types and balances
  • Reports HR can actually use

    Leave and allowance reports across the whole company — searchable by person, narrowed by filters, and exported as a spreadsheet when someone above HR wants the numbers. The allowance report carries entitlement, carry-over and remaining side by side.

    Every leave record in one place — searchable, filterable, and exportable as a spreadsheet.
    The allowance report shows entitlement, carry-over and what's left, per person.
  • Nobody has to chase

    Every step sends an email, and an approver can decide straight from it without opening the system. The wording of each one is a template HR edits in the app rather than a string in the code.

    Each step has its own email template, edited in the app rather than in code.
  • Rules the company sets once

    The weekend is Friday and Saturday here, not Saturday and Sunday, so the working week, the working hours and the day the week starts on are all settings. So is what happens when an approver never answers: rather than leaving the request hanging, it is rejected automatically once the leave has started.

    Weekend days, working hours, and what happens when nobody answers — set once, for the whole company.
  • Starting a new team quickly

    Approvers, departments and job titles are set up in one place, approval paths can be assigned for a fixed period to cover someone being away, and employees and their leave history come in from a spreadsheet rather than being typed one at a time.

    Approvers, departments and job titles, kept in one place.

    1/3