Struxen Core
The Core landing surface, covering the project setup checklist, the overdue list, and the module grid with its real counts.
/core is the home of Struxen Core, the project-management half of the product.
It answers three questions in order: what is not set up, what is late, and where
do I go.
The header carries the current project's name, with the client and status underneath. Everything on the page is scoped to that project, so switching projects re-runs the whole surface.
Project setup
A checklist panel sits at the top of the page when the project still has gaps in its configuration. Each row names something that is running degraded right now and links to the screen that fixes it.
The panel shows a progress bar and a count reading "n of m tasks completed", and it disappears once every check passes. A permanently complete checklist would cost the best space on the page to say nothing.
Five checks ship today.
| Check | What is degraded without it | Where it sends you |
|---|---|---|
| Add the site address | STRUX has no address for this job, so it answers "location information not found" when asked anything about the site, its jurisdiction or its conditions. | Settings, Details |
| Invite your team | You are the only person in this organization, so the assignee pickers on RFIs, issues, submittals, meetings and the schedule have nobody but you to offer. | Settings, Users & teams |
| Add your vendors | The vendor directory is empty, so the compliance register has nobody to track and no insurance, W-9 or bond expiry is being watched before anyone mobilizes. | Settings, Vendors |
| Record the prime contract | No prime contract exists on this project, so the approved change orders column on the budget reads zero rather than empty, and there is no contract value or schedule of values to bill against. | Prime Contract |
| Name your drawing areas | Every sheet is filed under Unassigned, so the drawings register cannot be filtered by area and sheets from different buildings sit in one undifferentiated list. | Drawings |
The first four are marked Degraded. Naming drawing areas is marked Suggested, because a set with no area still uploads, views and searches normally.
When a check cannot run
A check whose backing read failed is listed with a Could not check tag, its own reason, and a Try again button. It is counted on neither side of the "n of m" ratio, because counting it as incomplete would invent a task and counting it as complete would hide a real one. It also does not offer the fix link, since there is no evidence anything is broken.
If every check comes back that way, the panel renders nothing at all rather than "0 of 0 tasks completed".
The same checks appear on the Setup checklist widget on project home, where they can be dismissed individually. Dismissing a card there does not tick it off here. Snoozing a reminder is not the same as doing the work.
Needs attention
The list below setup is what is late, one row per check, each row a link into the filtered register.
| Row | Goes to |
|---|---|
| overdue RFIs | RFIs, filtered to overdue |
| overdue submittals | Submittals |
| overdue punch items | Punch list |
| overdue inspections | Inspections |
| observations not yet sent | Observations |
Each count comes from that register's own overdue filter, so "overdue" means whatever that module means by it. Three display rules govern the list, and they are worth knowing because they are what makes an empty list trustworthy:
- A check that returned zero is not a row. Nothing is overdue, so there is nothing to draw.
- A check that failed is always a row, marked unavailable and carrying the reason. Dropping it would leave the panel reading all clear on the strength of a request that never answered.
- "Nothing overdue" only appears when every check answered. If any check is still running or failed, the panel says what it knows and no more.
Only the RFI row carries its filter through, so it opens the overdue view directly. The others land on their register.
The module grid
Below the attention list, every Core module is a card, grouped the same way the Core rail groups them. Each card is a link first and a number second: it always navigates, whether or not a count could be established.
Project
| Module | Documentation |
|---|---|
| Drawings | Drawings |
| Documents | Documents |
| Transmittals | Transmittals |
| Specifications | Specifications |
| Submittals | Submittals |
| RFIs | RFIs |
| Observations | Observations |
| Schedule | Schedule |
Field
| Module | Documentation |
|---|---|
| Daily Logs | Daily logs |
| Punch List | Punch list |
| Meetings | Meetings |
| Inspections | Inspections |
| Safety | Safety |
| Photos | Photos |
Directory
The Team card opens the organization roster. See Organizations.
The financial modules are deliberately not here. The prime contract, commitments, changes, direct costs and the budget belong to LEDGER and are reached from its own home.
What the numbers on the cards mean
A number on a card is a value a register actually returned. It is never a placeholder, never a rounded guess, and never a zero standing in for a request that failed.
These cards state a number:
| Card | What the number counts |
|---|---|
| RFIs | open |
| Submittals | open |
| Observations | open |
| Punch List | open |
| Inspections | open |
| Documents | documents |
| Specifications | sections |
| Meetings | in the log |
| Schedule | schedules |
These cards state no number, and each has a reason:
| Card | Why there is no total |
|---|---|
| Drawings | The sheet register returns one page at a time and no project total. |
| Photos | The photo gallery returns one page at a time and no project total. |
| Daily Logs | The daily log register pages by date and returns no project total. |
| Transmittals | Counting the transmittal register would cost reading the whole register, so no count is stated. |
| Team | The card opens the organization roster, which is the same set on every project, so a count here would say nothing about this one. |
A dash and a blank slot mean different things. A dash means there is a number and it could not be fetched; hover it for the reason. A blank slot means there is no number to fetch and nothing is wrong.
When a count fails, a Retry counts button appears in the page header and re-runs every check. It is only offered when something actually failed.
The all-zero notice
If every card that can be counted answers zero, an information panel appears above the grid reading "Every module this page counts answered zero". It names the modules that report no total, so you know the claim is about what was measured and not about the project, and it offers Add documents.
The grid stays on screen underneath it. A project that is all field work and no register entries satisfies that condition completely, and hiding its modules to announce a zero would hide exactly the ones with content in them.