-
Notifications
You must be signed in to change notification settings - Fork 0
features
Douwe de Vries edited this page Jul 1, 2026
·
2 revisions
Active contributors: Douwe de Vries
This section maps CSV Align's product capabilities to the code that implements them. The core workflow is to load File A and File B, choose row keys, choose comparison columns, optionally auto-pair confident column matches, run the comparison, inspect/filter/search results, export CSV or HTML, and save either a pair order or a completed comparison snapshot.
Related architecture pages:
Feature behavior spans the shared Rust backend, the React workflow, and the desktop/web transports.
| Area | Source paths |
|---|---|
| Backend workflow orchestration |
/Users/vriesd/projects/csv-align/src/backend/workflow.rs, /Users/vriesd/projects/csv-align/src/backend/validation.rs
|
| Comparison engine |
/Users/vriesd/projects/csv-align/src/comparison/engine.rs, /Users/vriesd/projects/csv-align/src/comparison/rows.rs, /Users/vriesd/projects/csv-align/src/comparison/value_compare.rs
|
| Mapping suggestions and auto-pair |
/Users/vriesd/projects/csv-align/src/comparison/mapping.rs, /Users/vriesd/projects/csv-align/frontend/src/features/mapping/autoPair.ts
|
| Frontend workflow state |
/Users/vriesd/projects/csv-align/frontend/src/hooks/useComparisonWorkflow.ts, /Users/vriesd/projects/csv-align/frontend/src/hooks/useComparisonWorkflow.reducer.ts
|
| Results presentation and export |
/Users/vriesd/projects/csv-align/frontend/src/features/results/presentation.ts, /Users/vriesd/projects/csv-align/src/data/export.rs
|
| Saved work |
/Users/vriesd/projects/csv-align/src/backend/pair_order.rs, /Users/vriesd/projects/csv-align/src/backend/comparison_snapshot.rs, /Users/vriesd/projects/csv-align/src/backend/persistence/v1/mod.rs
|
- Auto-pairing fills confident one-to-one comparison column pairs after users choose row keys.
-
Flexible row-key matching optionally allows
**wildcard and shared-token key matches. - Saved work separates setup reuse through pair-order files from read-only completed result reloads through comparison snapshots.
- Results and export covers summaries, filters, search, detail panels, CSV export, and HTML export.
-
Core domain primitives documents
CsvData,SessionData,ComparisonConfig, andRowComparisonResult.
- The UI creates a backend session through
/Users/vriesd/projects/csv-align/frontend/src/services/tauri.ts. - File loads call the shared backend workflow in
/Users/vriesd/projects/csv-align/src/backend/workflow.rs, which parses CSV data, detects columns, discovers virtual labels, and stores File A/File B inSessionData. - Mapping suggestions are refreshed once both files are present. The backend returns one-to-one suggestions, while the frontend auto-pair helper decides which suggestions are confident enough to apply automatically.
- The compare action sends selected keys, comparison columns, mappings, and normalization settings as a
CompareRequest. - The backend validates selections, builds
ComparisonConfig, runs the comparison engine, stores results if the session inputs are still current, and returns response DTOs. - The frontend renders summary cards, filters, searchable/sortable results, detail panels, and export actions from the returned response.
- Browser mode reaches the backend through HTTP routes described by API.
- Desktop mode reaches the same backend through Tauri commands in
/Users/vriesd/projects/csv-align/src-tauri/src/commands.rs. - Transport parity depends on
/Users/vriesd/projects/csv-align/frontend/src/services/apiRoutes.ts,/Users/vriesd/projects/csv-align/frontend/src/services/tauriCommands.ts,/Users/vriesd/projects/csv-align/src/api/app.rs, and/Users/vriesd/projects/csv-align/src-tauri/src/main.rs. - Results and saved-work features reuse shared DTOs from
/Users/vriesd/projects/csv-align/src/presentation/responses.rsand/Users/vriesd/projects/csv-align/frontend/src/types/api.ts.
- Change compare behavior in
/Users/vriesd/projects/csv-align/src/comparison/engine.rsand cover it in/Users/vriesd/projects/csv-align/tests/comparison_engine_integration.rs. - Change request validation in
/Users/vriesd/projects/csv-align/src/backend/validation.rs. - Change workflow state transitions in
/Users/vriesd/projects/csv-align/frontend/src/hooks/useComparisonWorkflow.reducer.ts. - Change UI actions in
/Users/vriesd/projects/csv-align/frontend/src/hooks/useWorkflowComparisonActions.tsor/Users/vriesd/projects/csv-align/frontend/src/hooks/useWorkflowPersistenceActions.ts. - Change persisted formats in
/Users/vriesd/projects/csv-align/src/backend/pair_order.rsor/Users/vriesd/projects/csv-align/src/backend/persistence/v1/mod.rs.
| File | Purpose |
|---|---|
/Users/vriesd/projects/csv-align/src/backend/workflow.rs |
Shared feature workflow for loading files, suggesting mappings, comparing, exporting, and saved work. |
/Users/vriesd/projects/csv-align/src/comparison/engine.rs |
Core row matching, result generation, and summary generation. |
/Users/vriesd/projects/csv-align/frontend/src/hooks/useComparisonWorkflow.ts |
React workflow facade used by the app. |
/Users/vriesd/projects/csv-align/frontend/src/hooks/useComparisonWorkflow.reducer.ts |
State transitions for file load, comparison, snapshot load, pair-order load, filters, and reset. |
/Users/vriesd/projects/csv-align/frontend/src/components/ResultsTable.tsx |
Main interactive result table. |