How poiixen/senior_design works
Team Science ingests tabular datasets, validates and profiles them, runs quality diagnostics and column comparisons, then persists report summaries for retrieval through an API and React dashboard. The graph preserves the documented upload-to-report workflow and major analysis capabilities. Some wiring is supported only by the README or SOURCE INDEX; unsampled implementation details are not inferred.
Main entry points: analysis_service.py Analysis service · main.py Analysis API · api.ts API client · repository.py Persistence repository
Components 28
Dataset ingestion
- CSV loader
backend/ingestion/csv_loader.py - Dataset adapter
backend/ingestion/adult_adapter.py - Dataset loader
backend/ingestion/dataset_loader.py
Analysis and comparisons
- Analysis service
backend/services/analysis_service.py - Dataset validation
backend/diagnostics/validate_dataset.py - Dataset profiler
backend/diagnostics/generic_dataset_profiler.py - Missing values
backend/diagnostics/missing_value_detection.py - Duplicate detection
backend/diagnostics/duplicate_detection.py - Outlier detection
backend/diagnostics/iqr_outlier_detection.py - Column quality
backend/diagnostics/column_quality_detection.py - Correlation analysis
backend/diagnostics/correlation_analysis.py - Categorical comparison
backend/diagnostics/categorical_comparison.py - Numeric group comparison
backend/diagnostics/numeric_group_comparison.py - Comparison utilities
backend/diagnostics/comparison_common.py
API and persistence
- Analysis API
backend/api/main.py - Metadata database
backend/models/records.py - Persistence repository
backend/database/repository.py - Database sessions
backend/database/connection.py - Parsed dataset store
backend/database/dataset_store.py
Dashboard
- Upload page
frontend/app/routes/home.tsx - API client
frontend/app/lib/api.ts - Report schema
frontend/app/lib/report.ts - Report dashboard
frontend/app/routes/report.tsx - Report list
frontend/app/routes/reports.tsx - Documentation page
frontend/app/routes/documentation.tsx
User accounts
- Authentication API
backend/api/auth.py - Credential service
backend/services/auth_service.py
Other components
- Dataset uploader
Connections 30
- Dataset uploader → CSV loader: provides CSV
- CSV loader → Dataset loader: loads data
backend/ingestion/dataset_loader.py - Dataset adapter → Dataset loader: normalizes data
- Upload page → API client: submits upload
- API client → Analysis API: posts analysis
- Analysis API → Dataset loader: parses upload
backend/api/main.py - Analysis API → Analysis service: runs analysis
backend/api/main.py - Analysis service → Dataset validation: validates dataset
backend/services/analysis_service.py - Analysis service → Dataset profiler: profiles columns
backend/services/analysis_service.py - Analysis service → Categorical comparison: compares categories
backend/services/analysis_service.py - Analysis service → Numeric group comparison: compares groups
backend/services/analysis_service.py - Analysis service → Correlation analysis: calculates correlation
backend/services/analysis_service.py - Dataset profiler → Missing values: detects missingness
backend/diagnostics/generic_dataset_profiler.py - Dataset profiler → Duplicate detection: detects duplicates
backend/diagnostics/generic_dataset_profiler.py - Categorical comparison → Comparison utilities: uses utilities
backend/diagnostics/categorical_comparison.py - Numeric group comparison → Comparison utilities: uses utilities
backend/diagnostics/numeric_group_comparison.py - Analysis service → Persistence repository: saves findings
backend/services/analysis_service.py - Analysis service → Parsed dataset store: stores parsed rows
backend/services/analysis_service.py - Persistence repository → Metadata database: persists metadata
backend/database/repository.py - Database sessions → Metadata database: creates sessions
backend/database/connection.py - Analysis API → Persistence repository: reads reports
backend/api/main.py - Analysis API → Database sessions: opens transactions
backend/api/main.py - Analysis API → Report dashboard: returns report
- API client → Report schema: uses report schema
frontend/app/lib/api.ts - Report dashboard → API client: fetches report
- Report list → API client: fetches reports
- Analysis API → Authentication API: checks identity
backend/api/main.py - Authentication API → Credential service: authenticates users
backend/api/auth.py - Authentication API → Persistence repository: loads accounts
backend/api/auth.py - Credential service → Persistence repository: looks up users
backend/services/auth_service.py