# Project plan — glob-1 (Global Welness Centre)

Evidence date: 2026-10-13.

Source repository: `git@bitbucket.org:overdrive/glob-1.git`.

Inspected revision: `main` at `f26707a` (2026-04-14, Renier van Rooyen, "Initial commit plus VatRemoveWork").

This plan describes what the repository contains. It does not decide what the product should become.

No formal project plan existed in the source repository or in `silicon_ark/glob-1/` before this file. The source tree has no product README. The only Markdown in the tree is tool-local (`tools/CAPI.Custom/docs/`, `tools/CEP/*/readme.md`, `data/Scripts/UpdateShoulderPracticeRates_README.md`, and Newtonsoft package licences).

## Product

**GLOB-1** is a tenant of the **Palette / Evolution Software Unified Framework** (assembly product "Evolution Software Framework", company "Evolution SoftWare", version `1.0.0.0` in `library/Properties/AssemblyInfo.cs`).

The tenant brand in `core_custom/GLOB-1/Web.config` is **Global Welness Centre (GLOB-1)**. That spelling ("Welness") is the string stored in the `subject` and the first `website` appSetting. A second `website` key in the same file is "Evolution Software Framework". Which value `ConfigurationManager` returns is **Unknown / Requires Confirmation**.

Comments in billing and patient code call the same tenant **GWC** (for example `business/classes/xDebtors.cs`, "Change POS (Place of Service) to show Site for GWC"). The public master page title in `core_custom/GLOB-1/Core.master` is "Palette". The meta description is empty.

What the letters GLOB expand to is **Unknown / Requires Confirmation**. The code uses `GLOB-1` as `setup.code` and as `oUser.customerCode`.

A second site tree, `core_custom/GLOB-3`, sets `website` to "Global Wellness Chiropractic" and `subject` to "GWC - {content}", and connects to catalog `Framework_GLOB-3`. Business rules often branch on `GLOB-1`, `GLOB-2`, and `MEDI-1`. There is no `core_custom/GLOB-2` directory. Whether GLOB-2 and GLOB-3 are still live products, and whether they are deployed from this repository, is **Unknown / Requires Confirmation**.

## Discrepancy with the onboarding snapshot

The issue that created this task (2026-09-28) recorded a different tree: top-level `bitbucket-pipeline.yml`, a folder named `GLOB-1`, `sonar-project.properties`, and `sonarqube_scan.bat`, with last commit `7eb6d5e` (2025-06-25, "initial commit").

The repository inspected on 2026-10-13 does not contain those files. `main` has two commits, neither of which is `7eb6d5e`:

| Commit | Date | Subject |
|---|---|---|
| `3a96fce` | 2026-04-10 | Initial commit (`.gitignore` only) |
| `f26707a` | 2026-04-14 | Initial commit plus VatRemoveWork (the framework tree, about 8,777 files) |

How the 2025 snapshot relates to this history is **Unknown / Requires Confirmation**. Possible explanations (rewrite, a different checkout, or a scan of another path) were not distinguishable from git.

## Relationship to other Silicon Ark records

`silicon_ark/ieb/project-plan.md` lists a GLOB-1 row inside a multi-tenant Evolution tree: display name "Global Welness Centre (GLOB-1); Evolution Software Framework", catalogs `Framework_GLOB-1` and `Framework_STUD-1_Demo`. The brand spelling and the active catalog name match this repository. The `Framework_STUD-1_Demo` catalog appears here only as a commented `connLive` value in `core_custom/GLOB-1/Web.config`.

`silicon_ark/SHOU-1/` describes GLOB trees that sit inside the SHOU-1 git repository and are excluded from that repo's Sonar scan. This repository is a separate remote. It still contains SHOU-1 artefacts (`data/Scripts/SHOU-1/`, `publish/SHOU-1`). Whether those copies are authoritative is **Unknown / Requires Confirmation**.

## Branch reality

Default branch is `main`. Visible history is the two commits above. The practice system is older than that history: comments in `xDebtors.cs` and the GLOB-1 surface form cite dates from 2016 through 2019 (GWC-30, GWC-71). How the tree was cut from the earlier Palette codebase is **Unknown / Requires Confirmation**.

The second commit message names VAT-removal work. The only type that states the rule is `core_custom/GLOB-1/App_Code/InvoiceVatPolicy.cs`: tax invoices store 0% VAT from 2026-04-01. See `business-rules.md`.

## Scope in the repository

In scope of what is present for tenant GLOB-1:

- ASP.NET Web Forms site `core_custom/GLOB-1` (public pages, admin back office, medical reference pages, sales, patient surface).
- Web copies `core` and `core-dev`. Both point their active `conn` key at catalog `Framework_GLOB-1` on data source `NB-DEWALD`. `core-dev` is the shared template name used by sibling tenant repos. This repository does not document an auto-sync from `core-dev` into `core_custom/GLOB-1`.
- Class libraries `library` (`framework_library.dll`) and `business` (`framework_business.dll`), target framework v4.8. Debug and Release both write to `components/`.
- WCF site `service` (`framework_service.svc`), catalog `Framework_EVOL-1`.
- SQL script archives under `data/Scripts/` and a thin SSDT project `data/data.sqlproj`. There is no `data/Scripts/GLOB-1/` folder.
- Console `tools/scheduler` (campaigns, loyalty email, transaction lock, MediSwitch, surface import, Google Sheets) and WinForms `SchedulerTool`.
- Operator tools: `tools/constructor`, `tools/dataImporter`, `tools/exporter`.
- Version bundles `release/1.0.0.1` and `release/1.0.5`.
- Prebuilt snapshots `publish/service` and `publish/SHOU-1`. There is no `publish/GLOB-1`.

Present, and not evidenced as the GLOB-1 product:

- `core_custom/GLOB-3` (Global Wellness Chiropractic site, catalog `Framework_GLOB-3`). Not a project in `GLOB-1.sln`.
- `tools/CAPI.Custom` and `tools/CEP` (quote / purchase-order tooling against catalog `Framework_CAPI-1` or `Framework_CAPI-1_Dev`).
- `mobile` (class library; project file references a Xamarin asset; no application screens were found).
- `EvolutionSoftwareUnifiedFramework.sln` lists website projects for ASSE-1, BASE-1, BASE-2, BLUE-1, DEMO-1, EVOL-1, EVOL-2, GLOB-1, JEWE-1, OLIV-1, PROP-1, and further tenants. Only `core_custom/GLOB-1` and `core_custom/GLOB-3` exist on disk. The other solution entries point at missing directories.
- `GLOB-1.sln` website project is named `GLOB-1(1)` and points at `core_custom/GLOB-1`. It does not include `core`, `core-dev`, or `GLOB-3`.
- The unified solution also has a website entry named `core` whose path is `http://localhost:45935`.
- Script folders for other tenants: CAPI-1, CHUU-1, CLOS-1, INDE-1, INDE-2, INDE-6, OLIV-1, REAP-1, ROBI-1, SCHO-1, SHEN-1, SHOU-1, STUD-1, plus archive majors and a folder named `published to LIVE-CAPI-1 on 190930`.
- Which Palette modules are switched on for this practice. The admin menu reads `oModule` and the user's module list from the database. That data is not in git.

## System architecture

```text
Browser
  → core_custom/GLOB-1 (ASP.NET Web Forms, Telerik, session)
       → framework_business.dll + framework_library.dll
            → SQL Server catalog Framework_GLOB-1 (tenant data, localhost in the committed config)
            → SQL Server users with customerCode GLOB-1, or EVOL-1 operators (login rule)
       → WCF client → service/framework_service.svc (dynamic data calls, version files)
       → SOAP client → sms.netgen.co.za SMS_V2.asmx

tools/scheduler (console, outside IIS)
  → catalogs named in its own App.config (placeholders and other tenants, not Framework_GLOB-1)
  → MediSwitch SOAP gateways
  → SMTP, optional Google Sheets
```

Tenant rules that are not only in the site fork also live in `business/classes/xDebtors.cs` and branch on `handler.ReturnSetup().code`.

## Current status

**Implemented** in the sense that the site, libraries, service, and scheduler are in git and compile as a Visual Studio solution (`GLOB-1.sln`, ToolsVersion-era .NET Framework projects).

Not evidenced:

- A pipeline, Sonar project, or deployment script for this remote. None of `bitbucket-pipeline.yml`, `sonar-project.properties`, or `sonarqube_scan.bat` are in the tree.
- An automated test project for the practice site. The only test project found is `tools/CEP/CEP.ConsoleTests`.
- A populated GLOB-1 database. Behaviour that depends on `oModule`, surface definitions (`PatientProfile`, `XRays`), tariff plan `PRIV`, and email templates is **implemented in code** and **unknown in data**.

## Milestones visible in the repository

There is no milestone document. Dates that the code itself records:

| When | What the code records |
|---|---|
| 2016–2019 | Comments on GWC billing, x-rays, registration, and ticket notes GWC-30 and GWC-71 |
| 2026-04-01 | `InvoiceVatPolicy.ZeroVatEffectiveDate` — tax invoices store 0% VAT from this calendar date |
| 2026-04-10 | Git history starts (`.gitignore` only) |
| 2026-04-14 | Framework tree and VAT cut-over committed |

## Known dependencies

- .NET Framework 4.8 class libraries; the GLOB-1 site compiles with `targetFramework="4.8"` and sets `httpRuntime` `targetFramework="4.6"`.
- SQL Server, catalog `Framework_GLOB-1` for the tenant site, `Framework_EVOL-1` for the WCF service.
- Telerik Web UI, AjaxControlToolkit, Newtonsoft.Json, EPPlus, Spire PDF/XLS, Google APIs (Sheets), NReco.VideoConverter, ICSharpCode.SharpZipLib. Binaries are committed under `components/`.
- MediSwitch gateway (QA URLs are the active appSettings; live URLs are commented).
- Netgen SMS SOAP service.
- SMTP host `smtp.evolutionsoftware.co.za`.
- Optional Google Sheets import from the scheduler.

## Implementation plan

No forward plan is written in the repository. The only change named by git after the import is the VAT cut-over in `InvoiceVatPolicy`, called from the GLOB-1 sales and enquiry controls.

## Human confirmation

1. Whether the 2025 scan snapshot (`7eb6d5e`, Sonar files, `bitbucket-pipeline.yml`) was this repository before a history rewrite.
2. Whether "Global Welness Centre" is the legal name, or a typo of "Wellness". GLOB-3 uses "Global Wellness Chiropractic".
3. Whether GLOB-2 and GLOB-3 are in scope for this repository.
4. Whether `core`, `core-dev`, `publish/SHOU-1`, and the other tenants' SQL scripts should remain in this remote.
5. Which modules are enabled in the live `Framework_GLOB-1` database.
6. Live hosts. Committed configs point at localhost, `NB-DEWALD`, and commented remote SQL. The active WebAddy is `http://localhost:21856`.
7. Credential material committed in config and JSON files. Values are not copied into this plan. They need a human decision on rotation. See `technical-documentation.md`.
