Skip to content

Latest commit

 

History

History
193 lines (147 loc) · 5.54 KB

File metadata and controls

193 lines (147 loc) · 5.54 KB

VizAdvisor — Directory Structure

Reference for navigating the codebase. Last updated: February 2026


Root

File Purpose
README.md Project overview, setup, features
run.sh One-command dev launcher
package.json Dependencies, scripts
vite.config.js Vite config, chunking, test setup
index.html HTML entry, CSP
.env.example Client env template
mermaid-map.md Mermaid flowchart of repo structure
IMPLEMENTATION-PLAN.md Phased build specification
CHANGELOG.md Version history

src/

Entry & App

File Purpose
main.jsx React root, StrictMode
App.jsx Providers, routing, theme wrapper, lazy-loaded pages

src/pages/

File Route Purpose
HomePage.jsx / Landing, intro, CTA to Advisor
AdvisorPage.jsx /advisor Main tool: input + output panels
AboutPage.jsx /about What the tool does, data handling

src/components/

layout/

File Purpose
Header.jsx Logo, nav (Advisor, About), theme toggle, GitHub link
Footer.jsx Footer content
Sidebar.jsx Optional history / saved sessions

input/

File Purpose
DataUploader.jsx CSV/JSON file drop or paste
DataPreview.jsx Schema table, type override
GoalSelector.jsx Goal category dropdown + description
ParameterPanel.jsx Audience, library, interactivity, accessibility, notes
PromptBuilder.jsx Submit / Reset buttons, readiness state

output/

File Purpose
RecommendationList.jsx Container: loading, error, or full recommendation view
RecommendationCard.jsx Primary chart type, rationale, data mapping
AlternativeOptions.jsx Alternative chart options
DesignDecisionsPanel.jsx Color, scale, annotations, accessibility
PitfallWarnings.jsx Pitfalls and mitigations
CodeSnippet.jsx Syntax-highlighted code with copy
FollowUpQuestions.jsx Suggested follow-up questions
ExportButton.jsx Copy / download as Markdown or JSON
MetaBadges.jsx Confidence, goal category badges

analysis/

File Purpose
AnalysisPanel.jsx Engine (R/Python), analysis type, config form, Run button
AnalysisResults.jsx Renders analysis output

common/

File Purpose
Button.jsx Primary/secondary/ghost, loading state
Spinner.jsx Loading indicator
Modal.jsx Modal dialog
Tooltip.jsx Tooltip
ErrorBanner.jsx Error display with retry
CopyButton.jsx Copy-to-clipboard
Badge.jsx Badge/chip

src/hooks/

File Purpose
useLLM.js LLM request lifecycle: submit, status, recommendation, error
useDataParser.js File parsing, schema inference
useSessionHistory.js Save/load sessions from localStorage
useAnalysis.js Pre/post analysis: run, status, results, error

src/services/

File Purpose
llmService.js LLM API calls, streaming, response parsing
dataService.js CSV/JSON parsing via PapaParse
promptTemplates.js System prompt, buildMessages, buildFollowUpMessages
analysisService.js POST /api/analyze client

src/context/

File Purpose
SessionContext.jsx Dataset, goal, parameters, recommendation, analysis state
SettingsContext.jsx Model, library, theme, verbosity (persisted)

src/utils/

File Purpose
columnTypeInferrer.js Infer quantitative, ordinal, nominal, temporal, geographic
chartTypeMapper.js Map goal + data types → candidate chart types
formatters.js Number, date, file size formatting
responseValidator.js Validate LLM JSON response schema

src/styles/

File Purpose
global.css Tailwind imports, base styles
theme.js Design tokens (colors, spacing)

server/

File Purpose
index.js Express app: CORS, /api/recommend, /api/analyze
.env.example Server env template
requirements.txt Python analysis dependencies

server/analysis/

File Purpose
runner.js Validate request, spawn R/Python, parse JSON stdout
README.md R/Python setup, endpoint docs

server/analysis/r/

File Purpose
descriptive.R Descriptive statistics
regression.R Linear regression / ANOVA
power.R Power analysis
mediation.R Mediation analysis
factorial.R Factorial ANOVA

server/analysis/python/

File Purpose
descriptive.py Descriptive statistics
regression.py Linear regression / ANOVA
power.py Power analysis
mediation.py Mediation analysis
factorial.py Factorial ANOVA

tests/

Path Purpose
setup.js Vitest setup, jsdom
unit/ Unit tests for utils, services
integration/ AdvisorFlow integration test
prompts/ Golden-path JSON fixtures

docs/

File Purpose
ARCHITECTURE.md System design, layers, data flow
PROMPT-DESIGN.md Prompt construction, output schema
DATA-VIZ-REFERENCE.md Chart taxonomy, encoding principles
CONTRIBUTING.md Contribution guidelines
STRUCTURE.md This file
ROUTES.md Routes and sitemap