rename(phase 1): CapaKraken → Nexus across code, UI, docs, CI (#61)
CI / Architecture Guardrails (push) Successful in 2m38s
CI / Assistant Split Regression (push) Successful in 3m33s
CI / Typecheck (push) Successful in 3m51s
CI / Lint (push) Successful in 5m2s
CI / E2E Tests (push) Has been cancelled
CI / Fresh-Linux Docker Deploy (push) Has been cancelled
CI / Release Images (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Architecture Guardrails (push) Successful in 2m38s
CI / Assistant Split Regression (push) Successful in 3m33s
CI / Typecheck (push) Successful in 3m51s
CI / Lint (push) Successful in 5m2s
CI / E2E Tests (push) Has been cancelled
CI / Fresh-Linux Docker Deploy (push) Has been cancelled
CI / Release Images (push) Has been cancelled
CI / Build (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
rename(phase 1): CapaKraken → Nexus across code, UI, docs, CI (#61) Co-authored-by: Hartmut Nörenberg <hn@hartmut-noerenberg.com> Co-committed-by: Hartmut Nörenberg <hn@hartmut-noerenberg.com>
This commit was merged in pull request #61.
This commit is contained in:
@@ -6,28 +6,31 @@
|
||||
|
||||
## Goal
|
||||
|
||||
Extend CapaKraken to support chargeability reporting with country-specific SAH (Standard Available Hours), FTE-based capacity, organizational hierarchy, utilization categories, client/WBS management, and a native chargeability report replacing the current Excel workflow.
|
||||
Extend Nexus to support chargeability reporting with country-specific SAH (Standard Available Hours), FTE-based capacity, organizational hierarchy, utilization categories, client/WBS management, and a native chargeability report replacing the current Excel workflow.
|
||||
|
||||
## Plan Documents
|
||||
|
||||
| # | Plan | File | Core Deliverable |
|
||||
|---|---|---|---|
|
||||
| 1 | Country, SAH & FTE | [plan-country-sah-fte.md](plan-country-sah-fte.md) | Country/MetroCity models, SAH calculator, FTE-scaled daily hours |
|
||||
| 2 | Org Unit Hierarchy | [plan-org-unit-hierarchy.md](plan-org-unit-hierarchy.md) | 3-level OrgUnit tree (L5→L6→L7), resource assignment, admin UI |
|
||||
| 3 | Utilization Categories | [plan-utilization-categories.md](plan-utilization-categories.md) | UtilizationCategory model on projects (Chg, BD, MD&I, M&O, PD&R, Absence) |
|
||||
| 4 | Client & WBS | [plan-client-wbs-model.md](plan-client-wbs-model.md) | Client tree (Master→Entity), project-client linking |
|
||||
| 5 | Resource Extensions | [plan-resource-extensions.md](plan-resource-extensions.md) | EID attributes, ManagementLevel, ResourceType, Chg Responsibility, derivation rules |
|
||||
| 6 | Chargeability Report | [plan-chargeability-report.md](plan-chargeability-report.md) | Native report replacing Excel, forecast from assignments + SAH, SAP import for actuals |
|
||||
| # | Plan | File | Core Deliverable |
|
||||
| --- | ---------------------- | ---------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
|
||||
| 1 | Country, SAH & FTE | [plan-country-sah-fte.md](plan-country-sah-fte.md) | Country/MetroCity models, SAH calculator, FTE-scaled daily hours |
|
||||
| 2 | Org Unit Hierarchy | [plan-org-unit-hierarchy.md](plan-org-unit-hierarchy.md) | 3-level OrgUnit tree (L5→L6→L7), resource assignment, admin UI |
|
||||
| 3 | Utilization Categories | [plan-utilization-categories.md](plan-utilization-categories.md) | UtilizationCategory model on projects (Chg, BD, MD&I, M&O, PD&R, Absence) |
|
||||
| 4 | Client & WBS | [plan-client-wbs-model.md](plan-client-wbs-model.md) | Client tree (Master→Entity), project-client linking |
|
||||
| 5 | Resource Extensions | [plan-resource-extensions.md](plan-resource-extensions.md) | EID attributes, ManagementLevel, ResourceType, Chg Responsibility, derivation rules |
|
||||
| 6 | Chargeability Report | [plan-chargeability-report.md](plan-chargeability-report.md) | Native report replacing Excel, forecast from assignments + SAH, SAP import for actuals |
|
||||
|
||||
## Key Design Decisions
|
||||
|
||||
### SAH as capacity basis
|
||||
|
||||
Standard Available Hours = `(dailyHours * FTE) * (workingDays - publicHolidays - absence)`.
|
||||
Country drives daily hours (8h most, 9h India, variable Spain). FTE reduces proportionally.
|
||||
|
||||
### Resource Type derivation (Option A)
|
||||
|
||||
Store only 5 base types in DB: Employee, Freelancer, Apprentice, Intern, Student.
|
||||
Derive reporting types at query time:
|
||||
|
||||
- **Production Studios** = `chgResponsibility = true` AND country = Germany
|
||||
- **Near&Offshore** = country NOT Germany AND type = Employee/Freelancer
|
||||
- **Accenture** = `chgResponsibility = false`
|
||||
@@ -36,10 +39,12 @@ Derive reporting types at query time:
|
||||
Derivation rules are configurable in admin (which countries map to which reporting type).
|
||||
|
||||
### Utilization on projects, not allocations
|
||||
|
||||
Each project carries a utilization category (Chg, BD, MD&I, etc.). Hours assigned to a project inherit its category for reporting. Unassigned hours = SAH minus all categorized hours.
|
||||
|
||||
### Forecast chargeability = derived metric
|
||||
`forecastChg = hours on Chg projects / SAH`. No manual chargeability entry — it comes from what CapaKraken already knows about assignments.
|
||||
|
||||
`forecastChg = hours on Chg projects / SAH`. No manual chargeability entry — it comes from what Nexus already knows about assignments.
|
||||
|
||||
## Dependency Order
|
||||
|
||||
@@ -56,20 +61,21 @@ Plan 6 (Chargeability Report) depends on all others.
|
||||
|
||||
## New Prisma Models Summary
|
||||
|
||||
| Model | Purpose |
|
||||
|---|---|
|
||||
| `Country` | Country with daily working hours and schedule rules |
|
||||
| `MetroCity` | City within a country (for public holidays) |
|
||||
| `OrgUnit` | Self-referencing 3-level org hierarchy |
|
||||
| `UtilizationCategory` | Project classification for hour bucketing |
|
||||
| `Client` | Self-referencing client hierarchy (Master → Entity) |
|
||||
| `ManagementLevelGroup` | Career level grouping with target chargeability % |
|
||||
| `ManagementLevel` | Specific level within a group |
|
||||
| `ChargeabilitySnapshot` | Imported SAP actuals for historical reporting |
|
||||
| Model | Purpose |
|
||||
| ----------------------- | --------------------------------------------------- |
|
||||
| `Country` | Country with daily working hours and schedule rules |
|
||||
| `MetroCity` | City within a country (for public holidays) |
|
||||
| `OrgUnit` | Self-referencing 3-level org hierarchy |
|
||||
| `UtilizationCategory` | Project classification for hour bucketing |
|
||||
| `Client` | Self-referencing client hierarchy (Master → Entity) |
|
||||
| `ManagementLevelGroup` | Career level grouping with target chargeability % |
|
||||
| `ManagementLevel` | Specific level within a group |
|
||||
| `ChargeabilitySnapshot` | Imported SAP actuals for historical reporting |
|
||||
|
||||
## Resource Model Changes Summary
|
||||
|
||||
New fields on `Resource`:
|
||||
|
||||
- `enterpriseId` (String, unique)
|
||||
- `countryId` → Country
|
||||
- `metroCityId` → MetroCity
|
||||
@@ -86,13 +92,14 @@ New fields on `Resource`:
|
||||
## Project Model Changes Summary
|
||||
|
||||
New fields on `Project`:
|
||||
|
||||
- `utilizationCategoryId` → UtilizationCategory
|
||||
- `clientId` → Client (WBS Client Name)
|
||||
|
||||
## Open Questions
|
||||
|
||||
1. **Resource Type derivation rules**: The country→reporting-type mapping should be admin-configurable. Exact admin UI TBD.
|
||||
2. **Win Probability**: The Dispo file mentions it "should contain the value from MMS". Is this relevant for CapaKraken? If so, it's a field on Project.
|
||||
2. **Win Probability**: The Dispo file mentions it "should contain the value from MMS". Is this relevant for Nexus? If so, it's a field on Project.
|
||||
3. **LCR/UCR**: Cost rate definitions are not yet available. Placeholder fields are included.
|
||||
4. **SAP import format**: What format do SAP period exports come in? CSV? API? Needs clarification for the import mechanism.
|
||||
5. **FTE history**: Currently single `fte` field. Monthly FTE tracking may be needed if contract changes happen mid-month.
|
||||
|
||||
Reference in New Issue
Block a user