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.