# Features — quantivia

Evidence date: 2026-10-05. Source: `git@bitbucket.org:overdrive/quantivia.git`, `master` at `c567977` (2019-05-21).

`development` (`ba5f6c5`, 2019-08-07, "Update from latest for version 2") was not inspected. Features below are what `master` contains. Status words:

- **Current** — present and reachable in this tree.
- **Completed** — described as done in the active changelog or by a commit on `master`.
- **Historical** — described only inside the commented changelog block (versions `1.0.000` through `1.5.000`). Those keys are not in the live array.
- **In development** — none identified on `master`. The unread `development` branch may differ.
- **Deprecated / removed** — called out in comments or by absence. Absence from this tree is not proof it was removed from the product line.

## Current — Quantivia application

| Feature | What it does | Where | Provenance |
|---|---|---|---|
| SmartAdmin shell | Authenticated UI frame, nav, ribbon | `quantivia/main.php`, `quantivia/smartadmin/` | Implemented |
| Session gate | Requires eGroupWare `sessionid` | `quantivia/index.php`, `main.php` | Implemented |
| Dashboard | Progress, performance, budget, S-curve, week, deliverable and control-point widgets; tabular and extra dashboard variants | `quantivia/dashboard/Dashboard.php`, `Dashboard2.php`, `Dashboard3.php`, `Dashboard4.php`, `*Widget.php` | Implemented |
| Project / portfolio selection | Single project or `p_id = -1` portfolio | `services/Menu.php`, `services/ProjectSelection.php` | Implemented |
| Project administration | Project list, edit project, clone, codes, theme, tracking | `forms/EditProject.php`, `CloneProject.php`, `EditProjectCodes.php`, `ThemeAdmin.php`, `TrackAdmin.php`, `AdminProgramme.php` | Implemented |
| User administration | User admin screens | `forms/AdminUser.php`, `AdminUsers.php`, `ChangePassword.php` | Implemented |
| Budget structure | Original budget, initial budget, budget structure setup | `forms/OriginalBudget.php`, `InitialBudget.php`, `SetupBudgetStructure.php` | Implemented |
| Deliverables | Edit, upload, codes, progress, dates | `forms/Deliverables.php`, `EditDeliverable.php`, `DeliverableUpload.php`, `createdeliverables.php` | Implemented |
| Control-point chains | Assignment, chain table, chain health, flush unused | `forms/ChainTable.php`, `createchains.php`, `CheckChainHealth.php`, `EditControlPoint.php`, `FlushUnusedControlPoints.php` | Implemented |
| Schedule | Edit deliverable schedule; schedule upload via worker type 3 | `forms/EditDeliverableSchedule.php`, `worker.php` | Implemented |
| Resources | Resources, profiles, commitments, resource graphs and reports | `forms/Resources.php`, `EditResource.php`, `EditResourceProfiles.php`, `EditResourceCommitments.php`, `AddResourceCommitments.php`, `ResourceGraphs.php` | Implemented |
| Activities | Activity commitments | `forms/AddActivityCommitments.php`, `EditActivityCommitments.php` | Implemented |
| Actual hours | Actual hours and hours structure (structure menu only for Structured timekeeping) | `forms/ActualHours.php`, `ActualHoursStructure.php` | Implemented |
| Online progress | Status lifecycle and review | `quantivia_bo::$view_statuses`, progress forms, `services/UserStatus.php`, `TaskStatus.php` | Implemented |
| Publish | Publish when status is `control`; results screen | `forms/PublishReport.php`, `PublishReportResults.php`, `publish_report()` | Implemented |
| Graphs | S-curve, bulls-eye, trend, FTE, Pareto, latency (CPL), resource S-curves | `forms/Graphs.php`, `services/Lines.json.php`, `BullsEye.json.php`, `Trend.json.php`, `FTE.json.php`, `Pareto.json.php`, `CPL.json.php`, `RPI.json.php` | Implemented |
| Tabular reports | Standard reports, progress overview, forecast, resource overview by resource and by activity | `forms/TabularReport.php`, `TabularResourceReport.php`, `EditStandardReport.php`, `services/ReportTable.php` | Implemented |
| Change register | Open/closed change instances; schedule edits while status is `change` | `forms/ChangeInstance.php`, `what_is_project_status()` | Implemented |
| Calendar | Shown when project extended-features flag is set | `forms/Calendar.php`, `CalendarItem.php`, `services/CalendarFeed.php` | Implemented |
| Wizards / file upload | Generic upload wizard (two spellings of the file name) | `forms/FileUploadWizard.php`, `FileUploadWizzerd.php` | Implemented |
| P6 import | Primavera P6 `.xer`, zip, and XML | `forms/p6import.php` | Implemented |
| Excel / complete download | Worker types 7–10 and 12–13 | `worker.php` | Implemented |
| Notifications | SMTP HTML mail for progress status | `class.quantivia_notifier.inc.php` | Implemented |
| License and demo mode | MAC + domain, or hostname exception list; demo denial on full-license functions | `common_functions.inc.php`, `requireFullLicence()` | Implemented |
| Client template packs | 17 branding folders, each with `user_guide.php` | `quantivia/templates_*` | Implemented |
| Help and feedback | User guide topics; bug, feature, and general comment links into `help.php` | `templates_procon8_01/user_guide.php`, `services/Help.php` | Documented and Implemented |
| Environment / changelog display | User guide says the changelog is shown in Display Environment. Form exists | `forms/ShowEnvironment.php`, changelog array | Documented and Implemented |
| Worker offload | Task types 0–15 | `quantivia/inc/worker.php`, `ofload.php`, `TaskMaster.php` | Implemented |
| QFD launcher | Starts ten `worker.vbs` processes | `QFD/union.bat`, `QFD/worker.vbs` | Implemented |
| License ping endpoint | Accepts posted license, MAC, domain, and serial; logs them; returns version or `AD` for serial `DJ00x` | `quantivia/version.php` | Implemented |
| SQL admin UIs | phpMyAdmin-style and SQLite admin trees shipped inside Quantivia | `quantivia/quantiviasqladmin/`, `quantivia/quantiviasqliteadmin/` | Implemented. Whether they are exposed on a running host is **Unknown / Requires Confirmation** |
| Barcode / QR | Service endpoints | `services/Barcode.php`, `services/qr.php` | Implemented. Product purpose of these endpoints was not fully traced |

### Template packs (current)

`templates_aurecon_01`, `templates_bacs_01`, `templates_bechtel_01`, `templates_bombardier_01`, `templates_ccc_01`, `templates_crrc_01`, `templates_CRTG_EEB_01`, `templates_downer_01`, `templates_echarris_01`, `templates_elevo_01`, `templates_hyder_01`, `templates_mcd_01`, `templates_mmhkt_01`, `templates_parsons_01`, `templates_procon8_01`, `templates_sungard_01`, `templates_wpa_01`.

Provenance: **Implemented** as directories. Commercial relationship to those names is **Unknown / Requires Confirmation**.

## Current — surrounding eGroupWare

| Feature | Where | Provenance |
|---|---|---|
| Login and setup | `login.php`, `loginextra.php`, `setup/` | Implemented (eGroupWare) |
| Address book, calendar, infolog, wiki, bookmarks, news, polls, preferences | matching top-level app directories | Implemented |
| FelamiMail and emailadmin | `felamimail/`, `emailadmin/` | Implemented |
| Filemanager, projectmanager, resources, timesheet, tracker | matching directories | Implemented |
| GroupDAV / WebDAV / SyncML | `groupdav.php`, `webdav.php`, `syncml/` | Implemented |
| JSON, SOAP, XML-RPC | `json.php`, `soap.php`, `xmlrpc.php`, `rpc.php` | Implemented |
| phpFreeChat | `phpfreechat/` | Implemented |
| IIS default document | `web.config` sets `index.php` first | Implemented |
| Diagnostic scripts | `phpinfo.php`, `phpstats.php`, `phpsysinfo/` | Implemented. Exposure on a deployed host is **Unknown / Requires Confirmation** |

## Current — custom trackers

| App | Version in setup | Description in setup | Provenance |
|---|---|---|---|
| `ncr` | 1.8.006 | Universal NCR for Non Conformity Reports. Author line: ATE BMS Team | Documented and Implemented |
| `risk` | 1.9.046 | Risk tracking. Header cites QUAL 321-00022131 and ATE IM-Team | Documented and Implemented |
| `permit` | 0.9.004 | "Universal Permit Permit". Header: Universal Permit and Certificate Tracker, ATE-SDEV-Team | Documented and Implemented |
| `smt` | 0.906 | Universal Shipment Management Tool | Documented and Implemented |
| `womt` | 2.014 | Universal Works Order Management Tool | Documented and Implemented |
| `actions` | 2.001 | Universal actions (bugs, feature requests) with voting and bounties. Stock eGroupWare tracker wording | Documented and Implemented |
| `organogram` | no setup file read as an app version | Flash asset `origramy.swf` at repository root and `organogram/` | Implemented as files. Behaviour **Unknown** beyond presence |

These trackers register their own tables (`egw_ncr`, `egw_risk`, and so on). They are not the Quantivia `demoppr` schema.

## Completed (active changelog `2.0.000`–`2.0.013`)

The live array in `common_functions.inc.php` records these as the version history after the 2.0 baseline:

- Update forms download only open deliverables, accept files from the old system, and keep filters (`2.0.001`–`2.0.003`).
- Progress review validation before approval (`2.0.004`).
- Quantity updates persist (`2.0.005`).
- Resource forecasting method change (`2.0.006`).
- Resource allocation edits reload tables (`2.0.007`).
- Pre-populate options on quantity update forms (`2.0.008`).
- Project cloning in system admin (`2.0.009`).
- Extra sheets for resource quantity on complete download (`2.0.010`).
- Online statusing no longer blank when there are no deliverables (`2.0.011`).
- Publish ignores stale archived data (`2.0.012`).
- Wider date selection on online status update sheets (`2.0.013`).

Provenance: **Documented** in the changelog array. The code that implements each line was not individually verified. Confidence: Medium.

## Completed (git history on `master` only)

| Commit | Date | Subject |
|---|---|---|
| `c94ffc68` | 2019-05-09 | P8 First commit |
| `c81d2779` | 2019-05-12 | clean code |
| `e353fa62` | 2019-05-12 | Initial Bitbucket Pipelines configuration |
| `52ad8c22` | 2019-05-12 | checking servrs deploy |
| `26f87f83` | 2019-05-12 | testing pipelines |
| `7cd336e1` | 2019-05-12 | Test old php |
| `83c9959c` | 2019-05-13 | #87 styling changes |
| `99550c77` | 2019-05-19 | Table Styling changes |
| `c567977` | 2019-05-21 | #87 Lines to all dashboard tables |

Provenance: **Implemented** as git history. Subjects are the only description of those commits. Diffs of `#87` were not expanded beyond the presence of the dashboard widgets and `services/Lines.json.php`.

## Historical (commented changelog only)

The block comment above the live array records work from `1.0.000` through `1.5.000`, including rebrand to Quantivia, RAMP and STEP, SPI(t), consolidated view, licensing module, SQLite mentions, PHP 7 compatibility, dashboard graphic widgets, and control-point latency charts. Those strings are not active version keys. Treat them as **historical notes in source**, not as a guarantee that every noted behaviour still matches `2.0.013`.

A commented-out "Download Manual" block in the user guide points at `DRT_Getting_Started.pdf` and `DRT_Help_Menu.pdf` via `services/Help.php`. Provenance: **Documented** as disabled markup. Those PDFs were not confirmed in the tree.

## Planned

No roadmap, TODO product list, or milestone plan was found. `development`'s message "Update from latest for version 2" might mean a newer version-2 tree. That is **Unknown** until that branch is read.

## In development

Nothing on `master` is marked in progress. The branch `development` exists and is newer than `master`. Its feature delta is **Unknown / Requires Confirmation**.

## Deprecated / removed / not in this tree

| Item | Evidence | Status |
|---|---|---|
| Old UI | Commented changelog `1.0.000`: "Stripped out all unused functions and removed old UI completely" | Historical note |
| Independent RAMP and STEP "temporarily suspended" | Commented `1.2.027` says that was restored | Historical note. Live code still has both methods in `$reporting_method` |
| `auto_login.php` demo login | Present in `quantivia-clean`; file not in this repository | Absent here |
| Active PHPUnit pipeline inputs | `bitbucket-pipelines.yml` runs `composer install` and `vendor/bin/phpunit`; `composer.json` and `phpunit.xml` are absent | Pipeline does not match the tree |
| CodeDeploy as the active pipeline | Logic lives in `bitbucket-pipelinesOld.yml` and `codedeploy_deploy.py`. The file Bitbucket uses by name is `bitbucket-pipelines.yml` | Old path retained, not the active filename |
| `develop` branch in the old pipeline | `bitbucket-pipelinesOld.yml` deploys branch `develop`. The remote branch is `development` | Mismatch |

## Not Quantivia product code

`custom/` is an Untangle Captive Portal sample. Provenance: **Implemented** as files, **not** a Quantivia feature.
