Skip to content

🛰️ Fix Space-Track to PostgreSQL Satellite Synchronization Pipeline #135

Description

@krishkhinchi

Description

Problem

Kepler successfully fetches satellite data from the Space-Track API, but the retrieved records are not being stored in the PostgreSQL database. As a result, the frontend receives an empty dataset, causing the Cesium globe and dashboard to display 0 active satellites, even though the API returns valid satellite data.

This issue affects several core features, including satellite visualization, search, collision prediction, AI agents, and mission planning.


Expected Behavior

After synchronization:

  • Fetch satellite data from the Space-Track API.
  • Validate and normalize the response.
  • Store or update satellite records in PostgreSQL using the NORAD Catalog ID as the unique identifier.
  • Expose the stored data through backend APIs.
  • Display satellites on the Cesium globe and update dashboard statistics automatically.

Tasks

  • Investigate the complete synchronization pipeline.
  • Verify Space-Track authentication and API responses.
  • Fix PostgreSQL insert/update (UPSERT) logic.
  • Prevent duplicate satellite records using the NORAD Catalog ID.
  • Add detailed logging for API requests, data validation, and database operations.
  • Handle API and database errors gracefully.
  • Optimize synchronization using bulk insert/update operations.

Acceptance Criteria

  • Satellite data is successfully stored in PostgreSQL.
  • Existing satellite records are updated without creating duplicates.
  • The /satellites API returns the synchronized data correctly.
  • Dashboard displays the correct number of tracked satellites.
  • Satellites are visible on the Cesium globe.
  • Collision Prediction, AI Agents, and Mission Planner can access the synchronized satellite data.
  • Synchronization logs report the number of fetched, inserted, updated, skipped, and failed records.

Labels

backend bug postgresql database space-track api high priority help wanted

Metadata

Metadata

Labels

AIArtificial Intelligence and Machine LearningECSoC26Official label for ECSoC26 event contributions.ECSoC26-L3Level 3 contribution for the ECSoC26 event.GitHub ActionsGitHub Actions workflows and CI/CDassignedIndicates that the issue has been assigned to a contributor who is actively working on it.backendBackend developmentbugSomething isn't workingdatabaseDatabase and schema related changesenhancementNew feature or requestfrontendFrontend developmentgithub-actionsGitHub Actions workflows and CI/CDhelp wantedExtra attention is neededhelp-wantedMaintainers are seeking community assistance.level:advancedIntended for experienced contributors.priority:criticalCritical issue requiring immediate action.size/LLarge contribution requiring significant work.type:backendChanges backend services or server-side logic.type:bugFixes an existing bug or unexpected behavior.type:featureIntroduces a new feature or enhancement.type:frontendChanges frontend or client-side code.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions