How palsuandoid-hub/analisa_pasar works
Analisa Pasar is a market-intelligence and decision-support system for Indonesian herbal products. Users enter needs, product data, observations, or CSV imports through the CLI or web UI; application use cases preserve evidence and product history, while analytics and scoring assess market opportunity, confidence, economics, missing data, and regulatory risk. The resulting decision and research tasks support monitoring or pilot choices. The README documents optional AI, but the sampled code does not show how it is invoked; several links below reflect SOURCE INDEX references rather than inspected call sites.
Main entry points: app.py Web UI · repositories.py Entity repositories · main.py Command line · use_cases.py Application use cases
Components 24
User interfaces
- Command line
app/cli/main.py - Web UI
app/ui/app.py
Data capture
- Application use cases
app/application/use_cases.py - CSV connector
app/connectors/csv_connector.py - Manual connector
app/connectors/manual_connector.py - Raw payload archive
app/connectors/raw_storage.py
Market analysis
- Trend analysis
app/analytics/trend_engine.py - Competition analysis
app/analytics/competition_engine.py - Product matching
app/analytics/product_matcher.py - AI provider abstraction
app/ai/provider.py
Scoring and decisions
- Opportunity scoring
app/scoring/opportunity_scorer.py - Confidence scoring
app/scoring/confidence_scorer.py - Economic analysis
app/scoring/economic_engine.py - Missing-data detection
app/scoring/missing_data_engine.py - Decision engine
app/scoring/decision_engine.py - Research tasks
app/scoring/research_engine.py
Domain and storage
- Market domain models
app/domain/market.py - Entity repositories
app/data/repositories.py - DuckDB
app/data/database.py - Schema migrations
app/data/migrations.py - Application configuration
app/data/config.py - Evidence and product models
app/domain/evidence.py
Other components
- Market analyst
- AI service
Connections 45
- Market analyst → Command line: enters data
- Market analyst → Web UI: uses
- Command line → Application use cases: invokes
app/cli/main.py - Web UI → Application use cases: invokes
app/ui/app.py - Command line → CSV connector: imports CSV
app/cli/main.py - Application use cases → CSV connector: normalizes imports
app/application/use_cases.py - Application use cases → Manual connector: accepts manual records
app/application/use_cases.py - Application use cases → Raw payload archive: stores raw payloads
app/application/use_cases.py - Raw payload archive → DuckDB: records payload metadata
app/connectors/raw_storage.py - Application use cases → Entity repositories: persists entities
app/application/use_cases.py - Application use cases → Market domain models: creates market records
app/application/use_cases.py - Application use cases → Evidence and product models: creates evidence
app/application/use_cases.py - Entity repositories → DuckDB: executes queries
app/data/repositories.py - Entity repositories → Market domain models: maps records
app/data/repositories.py - Schema migrations → DuckDB: initializes schema
app/data/migrations.py - DuckDB → Application configuration: uses settings
app/data/database.py - Trend analysis → Entity repositories: reads trend history
app/analytics/trend_engine.py - Competition analysis → Entity repositories: reads competitors
app/analytics/competition_engine.py - Product matching → Entity repositories: reads products
app/analytics/product_matcher.py - Opportunity scoring → Trend analysis: uses trend signals
app/scoring/opportunity_scorer.py - Opportunity scoring → Competition analysis: uses competition signals
app/scoring/opportunity_scorer.py - Opportunity scoring → Entity repositories: reads and saves scores
app/scoring/opportunity_scorer.py - Confidence scoring → Entity repositories: reads evidence and saves scores
app/scoring/confidence_scorer.py - Economic analysis → Entity repositories: saves economics
app/scoring/economic_engine.py - Missing-data detection → Entity repositories: detects data gaps
app/scoring/missing_data_engine.py - Decision engine → Entity repositories: reads signals and saves decision
app/scoring/decision_engine.py - Research tasks → Entity repositories: reads gaps and creates tasks
app/scoring/research_engine.py - Command line → Opportunity scoring: calculates scores
app/cli/main.py - Command line → Confidence scoring: calculates scores
app/cli/main.py - Command line → Economic analysis: calculates economics
app/cli/main.py - Command line → Missing-data detection: checks gaps
app/cli/main.py - Command line → Research tasks: generates tasks
app/cli/main.py - Command line → Decision engine: makes decisions
app/cli/main.py - Command line → Product matching: matches products
app/cli/main.py - Web UI → Entity repositories: reads dashboard data
app/ui/app.py - Web UI → Trend analysis: requests trend analysis
app/ui/app.py - Web UI → Competition analysis: requests competition analysis
app/ui/app.py - Web UI → Product matching: requests product matching
app/ui/app.py - Web UI → Opportunity scoring: requests scores
app/ui/app.py - Web UI → Confidence scoring: requests scores
app/ui/app.py - Web UI → Economic analysis: requests economics
app/ui/app.py - Web UI → Missing-data detection: requests gap checks
app/ui/app.py - Web UI → Research tasks: requests research tasks
app/ui/app.py - Web UI → Decision engine: requests decisions
app/ui/app.py - AI provider abstraction → AI service: optional provider calls