Lightning Web Components • Data Modeling • Reports & Dashboards

Salesforce Time Tracking Application

A custom Salesforce application for logging client time: a two-object data model, a Lightning Web Component for quick time entry, weekly and monthly reports, and a dashboard.

Business Problem

Tracking work across several clients needs two things: a quick way to record each time entry as the work happens, and a clear view of hours by week, by month, and by client. Entering time through standard record pages and building summaries by hand makes both harder than they need to be.

Solution

Built JB Time Tracker, a custom Salesforce app with its own data model, a Quick Time Entry Lightning Web Component on a dedicated tab, and a set of reports and a dashboard that summarize hours. Quick time entry saves through Lightning Data Service, so no custom Apex is required.

Architecture

Quick Time tab jbQuickTime Lightning Web Component Lightning Data Service createRecord Time_Entry__c → Client__c This Week list view and reports JB Time Tracker dashboard

What Was Built

Data model

  • Client__c: client records with a Client Name and an Active checkbox (checked by default).
  • Time_Entry__c: auto-numbered TE-{00000}, with a required Client, Work Date, Work Description, and Hours (two decimal places), plus optional Notes.
  • Required Client lookup with restricted delete, so a client that has time entries can't be deleted.
  • Week_Start__c formula that returns the Monday of each entry's week.

Quick time entry

  • jbQuickTime Lightning Web Component, opened from a Quick Time custom tab.
  • lightning-record-picker to search for and select the client.
  • Saves with Lightning Data Service createRecord; no Apex.
  • Defaults the work date to today, checks required fields before saving, shows success and error toasts, and resets the form after each save.

Reports and dashboard

  • This Week list view on Time Entries: client, description, hours, and work date for the current week.
  • Hours by Month: total hours grouped by month, then by client.
  • This Week by Client: this week's entries grouped by client, with hours totals.
  • This Week Detail: this week's entries by client, including notes.
  • JB Time Tracker dashboard: a Total Hours This Week metric and an Hours This Week by Client column chart, running as the logged-in user.

App and permissions

  • JB Time Tracker Lightning app with Quick Time, Clients, Time Entries, Reports, and Dashboards tabs.
  • JB_Time_Tracker_Admin permission set: create, read, edit, delete, and View All on both objects; field access for Notes and Active; Week Start as read-only; and visibility for the three custom tabs.

Status & Limitations

A source-driven development project, kept as Salesforce DX metadata in Git. The repository doesn't document a deployment or usage status, so this case study makes no deployment, adoption, or time-savings claims. The project has no automated tests: there is no Apex, and no Jest tests have been written for the component yet.

Why It Matters

The project shows end-to-end custom application design on the Salesforce platform: a data model with a protected relationship and a formula field, a focused Lightning Web Component for the most frequent task, declarative reports and a dashboard, and permission-set-based access, all kept as source under version control. Writing through Lightning Data Service keeps the component small and leaves record access and field-level security to the platform.