# Features — bitool_dotnet

Evidence date: 2026-10-19. Source: `git@bitbucket.org:overdrive/bitool_dotnet.git`.

No feature catalogue existed under `silicon_ark/bitool_dotnet/`. The source repository has no changelog and no feature list. The table follows the code.

`master` (`b958e154`, 2023-11-15) does not contain the features below. They are on `develop` (`2223f18b`, 2024-02-22).

## Current on `develop`

| Feature | Status | Where |
|---|---|---|
| Single-page SAWIS report shell | Current | `ClientApp/src/components/Home.js`, `NavMenu.js`, `public/index.html` |
| Filter sidebar: year, ending month, reporting period, product type, country, package type, cultivar | Current | `Sidebar.js`, `FormDropdown.jsx`, `FormSlider.jsx`, `store/filterStore.js` |
| Select-all / clear-all for countries | Current | `Sidebar.js` `selectAllCountries` |
| Overview and Tables tabs | Current | `Home.js` |
| Collapsible sidebar | Current | `Sidebar.js`, `Home.js` |
| Litre summary cards (all, packaged, bulk) with year-on-year percent | Current | `BIOverview.jsx`, `ChartDataService.GetTotalLitres` |
| Export market per product type chart | Current | `Overview.jsx`, `getChartData` |
| Ten-year exports chart, bulk and packaged | Current | `Overview.jsx`, `getExports` |
| Cultivar / type exported chart | Current | `Overview.jsx`, `getCultivarChartData` |
| Year-on-year volume by product type chart | Current | `Overview.jsx`, `getYearOverYearComparison` |
| Top export countries chart, plus OTHER COUNTRIES | Current | `Overview.jsx`, `getTOP25Data` |
| Five pivot tables | Current | `Tables.jsx`, `PivotTable.jsx`, `TableDataController` |
| Excel download of a pivot table | Current | `PivotTable.jsx` `downloadPivotTable` |
| Jump from a chart header to the Tables tab | Current | `BIChart.jsx` `goToGraph` calls `changeTab` |
| Filter option API | Current | `FilterController.GetFilters` |
| Hard-coded API host `https://biadmin.sawisonline.co.za/api/controller` | Current | `filterStore.js` |
| Google Analytics `G-1RFV9ZJG9K` | Current | `ClientApp/src/index.js` |
| Swagger UI in Development | Current | `src/api/sawis_bi_tool.API/Program.cs` |
| CORS allow any origin | Current | `Program.cs` policy `AllowAnyOrigin` |
| SonarQube scan on pipeline | Current | `bitbucket-pipelines.yml` |
| Contact link `bi@sawis.co.za` | Current | `NavMenu.js` |
| Queries read `export_data_qa` | Current | `database_table` in the three services |

## Current on `master` only

| Feature | Status | Where |
|---|---|---|
| API host process with Swagger registration and an empty chart service | Current on `master` | `src/api/sawis_bi_tool.API/Program.cs`, `ChartDataService.cs` |
| SonarQube pipeline for `master` and `develop` | Current | `bitbucket-pipelines.yml` (also on `develop`) |

`master` has no controllers and no React project.

## Completed, from commit subjects on `develop`

These subjects describe work that is in the `develop` tip. They are history, not a separate feature set.

| When | Subject cluster | Still present at `2223f18b` |
|---|---|---|
| 2023-10-13 | React project created | Yes, `sawis_bi_tool.react` |
| 2023-10-15 | "API's added" | Yes, controllers |
| 2023-10-16 | Filter APIs, dashboard boilerplate | Yes |
| 2023-10-17 | Year-on-year comparison, CORS | Yes |
| 2023-10-18 | Exports endpoint, tables, proxy, public host | Yes. Chart calls use `biadmin`, not the dev proxy |
| 2023-10-19 | Labels, command timeout 300, publish folders | Timeout is on some commands, not all |
| 2023-10-20 | Default filters, default year, cultivar chart | Yes |
| 2023-10-23 | Excel download, link from export table to graph | Excel yes. Chart header switches to the Tables tab |
| 2023-11-01 | Migrate to ECharts | `echarts` in `ClientApp/package.json`, `BIChart.jsx` |

## In development

No branch other than `master` and `develop` exists on the remote. `develop` was last committed on 2024-02-22. Nothing in the tree is marked as unfinished work except commented alternatives (live table name, localhost URL, unused template routes).

## Planned

No planned feature is written in the repository.

The solution folder "4. DAL" has no project. That is an empty solution folder, not a stated plan.

Commented code that is not a roadmap:

- `export_data` labelled LIVE, replaced in source by `export_data_qa`.
- Country query `WHERE bb = 'X'`, replaced by an unfiltered ordered list.
- Append `"OTHER COUNTRIES"` onto the country filter list. The line is commented. The top-countries query still synthesises that label in SQL.
- `https://localhost:7003/api/controller`.
- ASP.NET template routes `/counter` and `/fetch-data`.

## Deprecated or leftover

| Item | Evidence | Notes |
|---|---|---|
| `WeatherForecastController` and `WeatherForecast.cs` | `src/web_app/sawis_bi_tool.react/` | Template sample. Proxy context is only `/weatherforecast`. The report UI does not call it |
| `chartjs-plugin-datalabels` dependency | root `package.json` and `sawis_bi_tool.react/package.json` and ClientApp | Commit "Migrate to ECharts" (`daa8238`). No Chart.js import was found under `ClientApp/src` |
| `oidc-client` dependency | `ClientApp/package.json` | No import under `ClientApp/src` |
| `faker` dependency | `ClientApp/package.json` | No import under `ClientApp/src` |
| Service worker | `serviceWorkerRegistration.unregister()` in `index.js` | Registration code exists and is not used |
| Tailwind | `tailwind.config.js` `content: []` | Installed. No class scan paths |
| Empty `MapperDataModel` and empty chart service | `master` only | Superseded on `develop` by the full model and service. `master` was not merged forward |

## Recently changed

The newest commit on `develop` is `2223f18b` (2024-02-22), a merge of `develop` into itself. The newest commit on `master` is `b958e154` (2023-11-15), a pipeline edit. No commit since 2024-02-22 was on the remote at evidence date.

## Not in this repository

| Item | Why it is listed |
|---|---|
| Login, roles, captcha | No auth registration. `bitool_frontend` documents login on that other repository |
| Grape production and vineyard status pages | Present in `bitool_frontend` docs. This React app has one route |
| Domestic sales and admin mapper | Present in `bi_tool_frontend_phase6` docs. Not in this tree |
| Database loaders | No import job. `bi_tool_php` is a different repository |
| File publish as a product feature | `FolderProfile.pubxml` publishes to `C:\_Source\SAWIS\src\api\sawis_bi_tool.API\release` on a developer machine. `bin/` and `release/` build output is committed on `develop` |
