How kaleimhc/paneldata.app works
paneldata.app is a Rails platform for exploring country-year indicators and estimating dynamic Panel-VARs. The main workflow selects indicators and a year, fetches country observations, and paints a choropleth; the analysis workflow submits a configured run, builds a balanced panel, computes estimates asynchronously, stores typed results, and presents them. The graph preserves these distinct stages and documented capabilities. Some subsystems are represented by exact directories because their source was not sampled; links to those are omitted where no caller relationship is evidenced.
Main entry points: analyses_controller.rb Analysis endpoints · indicator_picker_controller.js Indicator picker · observations_controller.rb Observations API · pvar_job.rb PVAR job
Components 24
Indicator exploration
- Explore page
app/controllers/pages_controller.rb - Observations API
app/controllers/api/observations_controller.rb - Map geometry
app/controllers/geo_controller.rb - Methodology viewer
app/controllers/pages_controller.rb
Panel-VAR analysis
- Analysis endpoints
app/controllers/analyses_controller.rb - Analysis run
app/models/analysis_run.rb - PVAR job
app/jobs/pvar_job.rb - Panel builder
app/services/panel_builder.rb - R estimator
- Typed results
app/models/irf_estimate.rb
Data domain
- Indicator catalog
app/services/indicator_catalog.rb - Indicator coverage
app/services/indicator_coverage.rb - Indicators
app/models/indicator.rb - Observations
app/models/observation.rb - Countries
app/models/country.rb - Indicator taxonomy
app/models/indicator_taxonomy.rb
User interface
- Indicator picker
app/javascript/controllers/indicator_picker_controller.js - Choropleth map
app/javascript/controllers/choropleth_controller.js - Run configuration
app/components/run_config_component.rb - Analysis result
app/components/analysis_result_component.rb - Run history
app/javascript/controllers/run_history_controller.js - Indicator search
app/javascript/controllers/search_controller.js
Other components
- Visitor
- Sidekiq queue
Connections 27
- Visitor → Explore page: opens
- Visitor → Indicator picker: selects indicator
app/javascript/controllers/indicator_picker_controller.js - Indicator picker → Choropleth map: dispatches selection
app/javascript/controllers/indicator_picker_controller.js - Choropleth map → Observations API: fetches observations
app/javascript/controllers/choropleth_controller.js - Observations API → Observations: queries
app/controllers/api/observations_controller.rb - Observations API → Indicators: reads metadata
app/controllers/api/observations_controller.rb - Observations → Countries: joins
- Visitor → Map geometry: requests geometry
- Visitor → Run configuration: configures run
- Run configuration → Analysis endpoints: submits run
- Analysis endpoints → Indicators: validates indicators
app/controllers/analyses_controller.rb - Analysis endpoints → Analysis run: creates run
app/controllers/analyses_controller.rb - Analysis endpoints → PVAR job: enqueues
app/controllers/analyses_controller.rb - PVAR job → Panel builder: builds panel
- PVAR job → R estimator: runs estimation
- R estimator → Typed results: persists estimates
- Analysis endpoints → Analysis run: polls status
app/controllers/analyses_controller.rb - Visitor → Run history: views history
- Run history → Analysis endpoints: requests summaries
- Visitor → Analysis result: views result
- Explore page → Analysis run: loads completed run
app/controllers/pages_controller.rb - Analysis result → Typed results: renders estimates
- Visitor → Indicator search: searches indicators
- Indicator search → Indicator picker: selects indicator
app/javascript/controllers/indicator_picker_controller.js - Visitor → Methodology viewer: opens methodology
- Indicator picker → Indicator catalog: filters catalog
- Analysis endpoints → Indicator coverage: checks coverage