Skip to content

[Task]: Consolidate map-data tooling and canonical data access #80

Description

@simonteague6

Motivation

Map authoring is slow, and the tooling duplicates JSON-path/schema knowledge. Runtime-adjacent dead paths, CSV import, vertical-edge generation, validation, and HTML tools need one canonical data location and a reliable manual workflow before considering future editor/AI ideas.

Proposed change

Inventory every map-data tool and user, then identify one canonical data/ location/schema. Move authoring-only behavior out of runtime app/logic, delete confirmed dead paths, and share one concrete JSON parsing/validation implementation where appropriate. Give tools deterministic paths or explicit CLI arguments, protect canonical data from partial/destructive writes, document the source-plan-to-validated-data-PR workflow, and add tests for import, validation, generated connectors, malformed inputs, and non-destructive failure.

Affected modules or data

  • app/logic/data_entry.py, tools/csv_import.py, tools/generate_vertical_edges.py, tools/validate_data.py, HTML tools, canonical data/, and tool tests
  • Coordinate with accepted navigation and Flask-adapter seams

Acceptance criteria

  • One canonical graph-data location and schema are documented.
  • Runtime code no longer contains unused data-authoring behavior.
  • Tools agree on schema and validation rules.
  • Dead paths are removed only after confirmed-use review.
  • Tool failures do not partially corrupt canonical data.
  • The manual authoring workflow is documented.
  • Relevant tests and just validate-data pass.
  • No speculative database adapter is introduced.

Testing requirements

Exercise malformed input, dry-run/preview behavior where applicable, generated connector validation, and failure safety. Include data-validator evidence.

Dependencies and risks

This follows the accepted navigation/data seams. It intentionally excludes AI model training, graphical editor redesign, SQLite migration, and automatic university-wide mapping.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions