# Features — quantiviaLive

Evidence date: 2026-10-05. Source: `git@bitbucket.org:overdrive/quantivialive.git`, `master` at `0af11d2` (2019-08-15).

Status words used here:

- **Current** — present on `master` at `0af11d2`.
- **Platform** — eGroupware application shipped in this tree.
- **Adjacent** — custom tracker or utility in the same install, outside Quantivia core.
- **Deprecated / removed** — called out in a comment or an empty branch. Git history cannot show removals: there is only one commit.

Whether `master` is deployed is **Unknown / Requires Confirmation**.

## Current — Quantivia core

### Application shell

| Feature | Location | Notes |
|---|---|---|
| SmartAdmin main shell | `quantivia/main.php` | Requires `sessionid` and `last_loginid` cookies |
| Dynamic dialog host | `main.php` (`#dynamic-dialog`) | Loads form markup into the shell |
| Theme assets | `quantivia/smartadmin/` | Bundled admin UI |
| Version endpoint | `quantivia/version.php` | Logs posted license fields and prints the assembled version, or `AD` when `ser` equals `DJ00x` |
| Environment display | `forms/ShowEnvironment.php` | Changelog comment `1.2.033` describes a changelog table in Display Environment. That key is inside a comment block; the form file is still present |

### Project and structure

| Feature | Location | Notes |
|---|---|---|
| Select project | `forms/SelectProject.php`, `services/ProjectSelection.php` | License caps the list |
| Edit project | `forms/EditProject.php` | |
| Project codes | `forms/EditProjectCodes.php` | |
| Clone project | `forms/CloneProject.php` | Changelog `2.0.009`: cloning tool in system admin |
| Flush project elements | `forms/FlushProjectElements.php` | |
| Deliverables | `forms/Deliverables.php`, `createdeliverables.php`, `EditDeliverable.php`, `EditDeliverableSchedule.php` | |
| Deliverables and resources | `forms/DeliverablesAndResources.php` | |
| Deliverable upload | `forms/DeliverableUpload.php` | Worker type 1 |
| Control points | `forms/EditControlPoint.php` | |
| Chains | `forms/ChainTable.php`, `createchains.php`, `CheckChainHealth.php` | |
| Flush unused control points | `forms/FlushUnusedControlPoints.php` | |
| Landing page | `forms/LandingPage.php` | |

### Budget and change

| Feature | Location | Notes |
|---|---|---|
| Initial budget | `forms/InitialBudget.php` | |
| Original budget | `forms/OriginalBudget.php` | |
| Budget structure | `forms/SetupBudgetStructure.php` | |
| Change instances | `forms/ChangeInstance.php` | |
| Load / save project aspects | `forms/LoadSave.php` | |

### Resources, time, and calendar

| Feature | Location | Notes |
|---|---|---|
| Resources | `forms/Resources.php`, `EditResource.php` | |
| Resource profiles | `forms/EditResourceProfiles.php` | |
| Resource commitments | `forms/AddResourceCommitments.php`, `EditResourceCommitments.php` | Changelog `2.0.007`: tables reload after edit |
| Activity commitments | `forms/AddActivityCommitments.php`, `EditActivityCommitments.php` | |
| Actual hours | `forms/ActualHours.php`, `ActualHoursStructure.php` | Worker type 5 imports batch actual times |
| Resource graphs and tables | `forms/ResourceGraphs.php`, `TabularResourceReport.php` | |
| Calendar | `forms/Calendar.php`, `CalendarItem.php`, `services/CalendarFeed.php` | |

### Reporting and dashboards

| Feature | Location | Notes |
|---|---|---|
| Graphs | `forms/Graphs.php`, `GraphsContainer.php` | |
| Tabular report | `forms/TabularReport.php` | Methods `RAMP` and `STEP` |
| Standard report edit | `forms/EditStandardReport.php` | Creator or project administrator may edit, including delete (`services/Table.php` comment) |
| Publish | `forms/PublishReport.php`, `PublishReportResults.php` | Worker type 6 |
| Dashboards | `dashboard/Dashboard.php` through `Dashboard4.php` plus widgets | Progress, performance, budget, S-curve, resource curve, control-point and deliverable graphics |
| JSON charts | `services/BullsEye.json.php`, `CPL.json.php`, `FTE.json.php`, `Lines.json.php`, `Pareto.json.php`, `RPI.json.php`, `RPIduel.json.php`, `Trend.json.php`, `Trend.sparklines.json.php`, `Bars.json.php` | |
| Mobile form | `forms/Mobile.php` | |
| Barcode and QR | `services/Barcode.php`, `services/qr.php` | |

### Administration and interchange

| Feature | Location | Notes |
|---|---|---|
| Users and programme admin | `forms/AdminUser.php`, `AdminUsers.php`, `AdminProgramme.php` | |
| Change password | `forms/ChangePassword.php` | |
| Theme admin | `forms/ThemeAdmin.php` | |
| Track admin | `forms/TrackAdmin.php` | |
| Database administration UI | `forms/DatabaseAdministration.php` | |
| Bundled SQL admin | `quantivia/quantiviasqladmin/`, `quantivia/quantiviasqliteadmin/` | phpMyAdmin-style and phpLiteAdmin trees |
| File upload wizards | `forms/FileUploadWizard.php`, `FileUploadWizzerd.php` | Second filename keeps the spelling in the tree |
| P6 import | `forms/p6import.php` | XER, ZIP, XML |
| Complete / partial downloads | Worker types 7–10 and 12–13 | Type 11 (time download) is an empty branch |
| Template selection | `services/TemplateSelection.php` | Options from `read_template_options()` |
| External API | `quantivia/api/qvaapi.php`, `services/qvaapi.php` | Token and session project check on the `api/` copy |
| Menu, filters, session | `services/Menu.php`, `GlobalFilters.php`, `ExclusionFilters.php`, `ResourceFilters.php`, `SessionState.php`, `CurrentUser.php`, `UserStatus.php`, `TaskStatus.php` | |

### Client template packs (current)

Directories under `quantivia/`:

`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`.

Several packs title themselves DPPR (Deliverable Progress and Performance Reporting) in `translate.php` or `help.php`. Which packs are still used is **Unknown / Requires Confirmation**.

Workers and `version.php` set `$_SESSION['template']` to `templates_procon8_01`.

## Current — background processing

| Feature | Location | Notes |
|---|---|---|
| Task worker | `quantivia/inc/worker.php` | Types 0–15. See technical documentation |
| Offload include | `quantivia/inc/ofload.php` | URL configured in settings |
| Broker | `quantivia/inc/broker.php`, `brokerv2.php` | |
| Task master | `quantivia/inc/TaskMaster.php`, `TaskMasterLoop.bat` | |
| Striker | `quantivia/inc/striker.php` | |
| Windows daemon | `QFD/union.bat` starts ten `cscript worker.vbs` processes. `worker.vbs` GETs `http://quantivia.local.com/quantivia/inc/worker.php` in a loop whose counter is not incremented | **Implemented** |

## Current — platform (eGroupware apps in this tree)

Versions and titles are from each app's `setup/setup.inc.php`.

| Directory | App name | Version | Description in setup (short) |
|---|---|---|---|
| `phpgwapi` | phpgwapi | 1.8.004 | eGroupware API |
| `addressbook` | addressbook | 1.8 | Contact manager |
| `admin` | admin | 1.8 | Administration |
| `calendar` | calendar | 1.9.004 | Group calendar |
| `felamimail` | felamimail | 1.8 | IMAP client |
| `filemanager` | filemanager | 1.8 | File manager |
| `infolog` | infolog | 1.9.003 | CRM-style todo, notes, phone log |
| `projectmanager` | projectmanager | 1.8 | eTemplate project manager |
| `tracker` | tracker | 1.9.024 | Tracker with voting and bounties |
| `wiki` | wiki | 1.8 | Wiki (WikkiTikkiTavi derivative) |
| `timesheet` | (title parse incomplete) | 1.8 | Time tracking for project manager |
| `resources` | resources | 1.9.001 | Resource booking |
| `emailadmin` | emailadmin | 1.8 | Mail server management |
| `bookmarks` | bookmarks | 1.8 | Bookmarks |
| `news_admin` | news_admin | 1.8.001 | News admin |
| `notifications` | notifications | 1.8 | Instant notification |
| `polls` | polls | 1.8 | Polls |
| `preferences` | preferences | 1.8 | Preferences |
| `registration` | registration | 1.8 | Registration |
| `sitemgr` | sitemgr | 1.8 | Web content management |
| `syncml` | syncml | 1.8 | SyncML |
| `phpbrain` | phpbrain | 1.8 | Knowledge base |
| `phpfreechat` | phpfreechat | 1.8 | Chat |
| `phpsysinfo` | phpsysinfo | 1.2_2.5.2rc1 | System facts |
| `sambaadmin` | sambaadmin | 1.8 | LDAP Samba admin |
| `manual` | manual | 1.8 | User manual on the wiki app |
| `etemplate` | etemplate | 1.8 | Widget template system |
| `importexport` | importexport | 1.8 | Import/export |
| `developer_tools` | developer_tools | 1.8 | Translation tools |
| `egw-pear` | egw-pear | 1.8 | Modified PEAR modules |
| `home` | home | 1.8 | Home |

Protocol entry points at the repository root: `groupdav.php`, `webdav.php`, `soap.php`, `xmlrpc.php`, `json.php`, `rpc.php`, `xajax.php`.

`header.inc.php` selects login template set `idots`, session handler `egw_session_files`, and `db_persistent` true. `mcrypt_enabled` is false.

## Adjacent — custom trackers and utilities

| Directory | Version | Setup description | Status |
|---|---|---|---|
| `actions` | 2.001 | Universal actions (bugs, feature requests, …) with voting and bounties | **Adjacent**, current |
| `ncr` | 1.8.006 | Non Conformity Reports | **Adjacent**, current |
| `permit` | 0.9.004 | Permit | **Adjacent**, current |
| `risk` | 1.9.046 | Risk tracking | **Adjacent**, current |
| `smt` | 0.906 | Shipment Management Tool | **Adjacent**, current |
| `womt` | 2.014 | Works Order Management Tool | **Adjacent**, current |
| `organogram` | no setup file | Flash chart titled "ATE Organogram". Default manager query value is hard-coded when `manager` is omitted. Uses `origramy.swf` and `render.php` | **Adjacent**, current. Whether it is still a product feature is **Unknown / Requires Confirmation** |

Quantivia looks up eGroupware categories named `Project Actions` (app `actions`) and `Project Risks` (app `risk`). Settings also store numeric category ids `egw_bug_cat` 36, `egw_fea_cat` 35, `egw_gen_cat` 94, `egw_pmt_cat` 95. What those numbers mean in a live database is **Unknown / Requires Confirmation**.

## Not Quantivia product code

| Path | What it is |
|---|---|
| `custom/` | Untangle captive-portal sample (`README` plus `page.php` files). Not referenced as a Quantivia module |
| `userfiles/` | Image files, including ATE colour logos |
| `README.md` | Indawo CodeDeploy and FTP instructions |
| `bitbucket-pipelines.yml` | `git ftp init` for live FTP variables and for `indawo.overdriveqa.co.za` |
| `phpinfo.php`, `phpstats.php` | PHP information scripts at the web root |
| `projectmanager/$SERVER_TEMP/jpgraph_cache/` | Cached chart images with very long names |

## Planned

No roadmap, issue tracker, or TODO document in this repository states future work. Changelog comments that describe past additions are history inside the code, not a plan. **Planned: none documented.**

## In development

No `develop` branch and no unmerged feature branch exist on the remote that was cloned. The pipeline's `development` branch is named in YAML and is not present as a Git branch in this clone. **In development: none observed.**

## Recently changed

The only Git commit is "First commit" on 2019-08-15. The active changelog's newest key is `2.0.013` ("Online Status update sheets date selector allows for wider selection options"). There is no commit that isolates that change.

## Deprecated / removed / incomplete

| Item | Evidence | Status |
|---|---|---|
| Changelog keys `1.0.000` through `1.5.000` | Inside a block comment; not active array keys | **Deprecated** as version history text. The behaviour they describe may still be in the code. **Unknown** which of those sentences still match the code |
| `s_calib` on project update | `unset` with comment "deprecated in the new UI" in `update_project` | **Deprecated** field |
| Worker task type 11 | Empty body, comment "Time Download" | **Incomplete** |
| `quantivia/setup/sqlite_construct.php` | Referenced by the SQLite branch; file absent | **Incomplete** for SQLite installs |
| `quantivia/setup/setup.inc.php` | Absent, so Quantivia is not registered the way other eGroupware apps are | **Unknown** whether that file was never part of this install or was omitted from the import |
| `git ftp push` lines | Commented out in `bitbucket-pipelines.yml` | The pipeline as written runs `git ftp init` only |

## Removed features

Git history does not show deletions. **Unknown / Requires Confirmation** what existed in SVN or on the server and was left out of this import.
