T1 Platform Documentation
A Fumadocs-compatible documentation set for the T1 workforce, timesheet, payroll, allowance, invoice, and mobile API platform.
T1 Platform Documentation
This documentation describes how the T1 Platform works as a complete system. It is written as Fumadocs content under content/docs, with each folder carrying its own meta.json for page ordering.
What this platform does
T1 Platform is a Symfony 7 workforce platform for electrical timesheets, expenses, client/project configuration, supervisor review, payroll approval, finance review, invoice generation, Xero submission, mobile APIs, and award/allowance calculation previews.
The core loop is:
- Admin creates users, clients, projects, project configuration, rates, allowances, materials, cost codes, work conditions, and matrix rules.
- Electricians submit weekly timesheets and expenses against assigned projects.
- Supervisors review submissions and accept or reject them.
- Payroll or Client Admin approves accepted work.
- Finance and Payroll workflows produce invoice/payroll outputs and submit eligible records to Xero.
- Calculation subscribers keep allowance lines, award snapshots, and risk signals in sync when the underlying timesheet data changes.
Primary code areas
| Area | Main files |
|---|---|
| Web portals | app/src/Controller/Portal/*Controller.php |
| Mobile/API v2 | app/src/Controller/Api/V2/*Controller.php |
| Entities and matrices | app/src/Entity/*.php, especially ClientAllowance, Timesheet, TimeEntry, TimesheetAllowanceLine, TimesheetCalculation |
| Allowance engine | app/src/Service/Payroll/AllowanceMatrixCalculator.php |
| Award engine | app/src/Service/Payroll/AwardTimesheetCalculator.php, AwardTimesheetCalculationManager.php |
| Auto recalculation | TimesheetAllowanceCalculationSubscriber.php, TimesheetAwardCalculationSubscriber.php |
| Workflow and audit | TimesheetEditPolicy.php, TimesheetChangeLogger.php, TimesheetSnapshotBuilder.php |
| Xero and invoices | XeroIntegrationService.php, XeroBillSubmissionService.php, PayrollInvoiceService.php, InvoicePdfViewBuilder.php |
Generated graph context
A graphify source map was generated for first-party backend source at t1-platform/app/src.
Outputs:
graphify-out/graph.htmlgraphify-out/GRAPH_REPORT.mdgraphify-out/graph.json
The graph identified the biggest coupling points as ClientController, AdminClientManagementController, FinanceController, PayrollFinanceController, PayrollController, Timesheet, Project, User, SupervisorController, and Expense. That matches the architecture: portal controllers are the main orchestration layer, while domain services and subscribers keep calculation behavior consistent.
Reading order
Start with: