azaharizaman/nexus-time-tracking

Time entry and timesheet rules: hours validation, approval workflow, immutability. Reusable for projects, support, internal work.

Maintainers

Package info

github.com/azaharizaman/nexus-time-tracking

pkg:composer/azaharizaman/nexus-time-tracking

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.0-alpha1 2026-05-05 02:28 UTC

This package is auto-updated.

Last update: 2026-05-05 03:24:36 UTC


README

Time entry and timesheet rules (hours, approval, immutability) for the Nexus ERP ecosystem.

Overview

The Nexus\TimeTracking package is a Layer 1 atomic package that owns timesheet entry (date, hours, optional work item ID), validation (e.g. hours not negative, max 24h/day/user), approval state machine, immutability of approved timesheets, and rules for billing rate default. No project/task persistence—only IDs and interfaces for work item and approver. Reusable for any domain that logs time.

Architecture

  • Layer 1 Atomic Package. Pure PHP 8.3+. No framework dependencies.
  • Namespace: Nexus\TimeTracking

Key Interfaces

  • TimesheetManagerInterface – create/update timesheet lifecycle
  • TimesheetQueryInterface – read timesheets
  • TimesheetPersistInterface – persistence contract
  • TimesheetApprovalInterface – approval workflow

Requirements (mapped)

  • FUN-PRO-0254/0566: Time tracking and timesheet entry
  • FUN-PRO-0575: Timesheet approval workflow
  • BUS-PRO-0056: Timesheet hours cannot be negative or exceed 24h/day/user
  • BUS-PRO-0063: Approved timesheets are immutable
  • BUS-PRO-0070: Task actual hours = sum of approved timesheet hours
  • BUS-PRO-0101/0125, REL-PRO-0396, SEC-PRO-0460

Installation

composer require azaharizaman/nexus-time-tracking

License

MIT.