# zamit00/gemelapix architecture

> Architecture diagram of the GitHub repository zamit00/gemelapix, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/zamit00/gemelapix
- Repository: https://github.com/zamit00/gemelapix

## Overview

Finansi-Net is a Hebrew-language financial and pension comparison site. Its main workflow loads published product datasets, filters products and investment tracks, and presents comparison tables and track details. Separate tools help users find products by risk exposure, assess risk, analyze an imported portfolio, and calculate savings outcomes. The tree and sampled code support the browser-side comparison and calculator flows; source for several listed pages and some wiring was not sampled, so their internal relationships are left unspecified.

Main entry points: [`mainscript.js`](https://github.com/zamit00/gemelapix/blob/main/mainscript.js) (Comparison controller), [`kochavimscript.js`](https://github.com/zamit00/gemelapix/blob/main/kochavimscript.js) (Product tables), [`PensiaScript.js`](https://github.com/zamit00/gemelapix/blob/main/PensiaScript.js) (Pension tables), [`app.js`](https://github.com/zamit00/gemelapix/blob/main/app.js) (XML importer)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_comparison["Product comparison"]
  node_home["Home and comparison<br/>[index.html]"]
  node_comparison_logic["Comparison controller<br/>[mainscript.js]"]
  node_datasets["Published datasets<br/>[dataJasonM.json]"]
  node_filtering["Track filtering<br/>[data.js]"]
  node_product_tables["Product tables<br/>[kochavimscript.js]"]
  node_pension_tables["Pension tables<br/>[PensiaScript.js]"]
  node_track_detail["Track detail<br/>[kupaInfoScript.js]"]
end

subgraph group_discovery["Risk and discovery"]
  node_exposure_page["Exposure finder"]
  node_exposure_logic["Exposure filtering<br/>[HasifotMeshulav.js]"]
  node_risk_page["Risk questionnaire<br/>[riskQuest.html]"]
  node_risk_logic["Risk scoring"]
end

subgraph group_planning["Financial planning"]
  node_analysis_page["Portfolio analysis"]
  node_portfolio_analysis["Portfolio analyzer"]
  node_consultation["Consultation form"]
  node_return_calculator["Interest calculator<br/>[ribitderibit.html]"]
  node_return_logic["Interest calculations<br/>[ribit.js]"]
  node_fee_calculator["Fee calculator<br/>[hashDmeyNihul.html]"]
  node_fee_logic["Fee calculations<br/>[dmeyNihulScript.js]"]
end

subgraph group_ingestion["Portfolio ingestion"]
  node_xml_files["Imported XML files<br/>[ofihashkaa.xml]"]
  node_xml_importer["XML importer<br/>[app.js]"]
end

node_visitor(("Visitor"))
node_mysql[("MySQL database")]

node_visitor -->|"opens"| node_home
node_home -->|"runs"| node_comparison_logic
node_comparison_logic -->|"loads"| node_datasets
node_comparison_logic -->|"filters through"| node_filtering
node_comparison_logic -->|"builds tables"| node_product_tables
node_comparison_logic -->|"builds tables"| node_pension_tables
node_product_tables -->|"requests tracks"| node_filtering
node_pension_tables -->|"requests tracks"| node_filtering
node_product_tables -->|"opens details"| node_track_detail
node_pension_tables -->|"opens details"| node_track_detail
node_visitor -->|"opens"| node_exposure_page
node_exposure_page -->|"runs"| node_exposure_logic
node_exposure_logic -->|"loads"| node_datasets
node_visitor -->|"opens"| node_risk_page
node_risk_page -->|"runs"| node_risk_logic
node_visitor -->|"opens"| node_analysis_page
node_analysis_page -->|"runs"| node_portfolio_analysis
node_portfolio_analysis -.->|"imports session data"| node_xml_importer
node_visitor -->|"opens"| node_consultation
node_visitor -->|"opens"| node_return_calculator
node_return_calculator -->|"calculates with"| node_return_logic
node_visitor -->|"opens"| node_fee_calculator
node_fee_calculator -->|"calculates with"| node_fee_logic
node_xml_importer -->|"reads"| node_xml_files
node_xml_importer -->|"writes"| node_mysql

click node_home "https://github.com/zamit00/gemelapix/blob/main/index.html"
click node_comparison_logic "https://github.com/zamit00/gemelapix/blob/main/mainscript.js"
click node_datasets "https://github.com/zamit00/gemelapix/blob/main/dataJasonM.json"
click node_filtering "https://github.com/zamit00/gemelapix/blob/main/data.js"
click node_product_tables "https://github.com/zamit00/gemelapix/blob/main/kochavimscript.js"
click node_pension_tables "https://github.com/zamit00/gemelapix/blob/main/PensiaScript.js"
click node_track_detail "https://github.com/zamit00/gemelapix/blob/main/kupaInfoScript.js"
click node_exposure_page "https://github.com/zamit00/gemelapix/blob/main/hasifotMeshulav.html"
click node_exposure_logic "https://github.com/zamit00/gemelapix/blob/main/HasifotMeshulav.js"
click node_risk_page "https://github.com/zamit00/gemelapix/blob/main/riskQuest.html"
click node_risk_logic "https://github.com/zamit00/gemelapix/blob/main/risk-quest-modal.js"
click node_analysis_page "https://github.com/zamit00/gemelapix/blob/main/advancedAnalysis.html"
click node_portfolio_analysis "https://github.com/zamit00/gemelapix/blob/main/advancedAnalysisEngine.js"
click node_consultation "https://github.com/zamit00/gemelapix/blob/main/consultation-form.html"
click node_return_calculator "https://github.com/zamit00/gemelapix/blob/main/ribitderibit.html"
click node_return_logic "https://github.com/zamit00/gemelapix/blob/main/ribit.js"
click node_fee_calculator "https://github.com/zamit00/gemelapix/blob/main/hashDmeyNihul.html"
click node_fee_logic "https://github.com/zamit00/gemelapix/blob/main/dmeyNihulScript.js"
click node_xml_files "https://github.com/zamit00/gemelapix/blob/main/ofihashkaa.xml"
click node_xml_importer "https://github.com/zamit00/gemelapix/blob/main/app.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_home,node_comparison_logic,node_datasets,node_filtering,node_product_tables,node_pension_tables,node_track_detail toneBlue
class node_exposure_page,node_exposure_logic,node_risk_page,node_risk_logic,node_mysql toneAmber
class node_analysis_page,node_portfolio_analysis,node_consultation,node_return_calculator,node_return_logic,node_fee_calculator,node_fee_logic toneMint
class node_xml_files,node_xml_importer toneRose
class node_visitor toneIndigo
```

## Components

### Product comparison

- [Home and comparison](https://github.com/zamit00/gemelapix/blob/main/index.html): `index.html`
- [Comparison controller](https://github.com/zamit00/gemelapix/blob/main/mainscript.js): `mainscript.js`
- [Published datasets](https://github.com/zamit00/gemelapix/blob/main/dataJasonM.json): `dataJasonM.json`
- [Track filtering](https://github.com/zamit00/gemelapix/blob/main/data.js): `data.js`
- [Product tables](https://github.com/zamit00/gemelapix/blob/main/kochavimscript.js): `kochavimscript.js`
- [Pension tables](https://github.com/zamit00/gemelapix/blob/main/PensiaScript.js): `PensiaScript.js`
- [Track detail](https://github.com/zamit00/gemelapix/blob/main/kupaInfoScript.js): `kupaInfoScript.js`

### Risk and discovery

- [Exposure finder](https://github.com/zamit00/gemelapix/blob/main/hasifotMeshulav.html): `hasifotMeshulav.html`
- [Exposure filtering](https://github.com/zamit00/gemelapix/blob/main/HasifotMeshulav.js): `HasifotMeshulav.js`
- [Risk questionnaire](https://github.com/zamit00/gemelapix/blob/main/riskQuest.html): `riskQuest.html`
- [Risk scoring](https://github.com/zamit00/gemelapix/blob/main/risk-quest-modal.js): `risk-quest-modal.js`

### Financial planning

- [Portfolio analysis](https://github.com/zamit00/gemelapix/blob/main/advancedAnalysis.html): `advancedAnalysis.html`
- [Portfolio analyzer](https://github.com/zamit00/gemelapix/blob/main/advancedAnalysisEngine.js): `advancedAnalysisEngine.js`
- [Consultation form](https://github.com/zamit00/gemelapix/blob/main/consultation-form.html): `consultation-form.html`
- [Interest calculator](https://github.com/zamit00/gemelapix/blob/main/ribitderibit.html): `ribitderibit.html`
- [Interest calculations](https://github.com/zamit00/gemelapix/blob/main/ribit.js): `ribit.js`
- [Fee calculator](https://github.com/zamit00/gemelapix/blob/main/hashDmeyNihul.html): `hashDmeyNihul.html`
- [Fee calculations](https://github.com/zamit00/gemelapix/blob/main/dmeyNihulScript.js): `dmeyNihulScript.js`

### Portfolio ingestion

- [Imported XML files](https://github.com/zamit00/gemelapix/blob/main/ofihashkaa.xml): `ofihashkaa.xml`
- [XML importer](https://github.com/zamit00/gemelapix/blob/main/app.js): `app.js`

### Other components

- **Visitor**
- **MySQL database**

## Connections

- Visitor → Home and comparison: opens
- Home and comparison → Comparison controller: runs
- Comparison controller → Published datasets: loads
- Comparison controller → Track filtering: filters through
- Comparison controller → Product tables: builds tables
- Comparison controller → Pension tables: builds tables
- Product tables → Track filtering: requests tracks
- Pension tables → Track filtering: requests tracks
- Product tables → Track detail: opens details
- Pension tables → Track detail: opens details
- Visitor → Exposure finder: opens
- Exposure finder → Exposure filtering: runs
- Exposure filtering → Published datasets: loads
- Visitor → Risk questionnaire: opens
- Risk questionnaire → Risk scoring: runs
- Visitor → Portfolio analysis: opens
- Portfolio analysis → Portfolio analyzer: runs
- Portfolio analyzer → XML importer: imports session data
- Visitor → Consultation form: opens
- Visitor → Interest calculator: opens
- Interest calculator → Interest calculations: calculates with
- Visitor → Fee calculator: opens
- Fee calculator → Fee calculations: calculates with
- XML importer → Imported XML files: reads
- XML importer → MySQL database: writes
