Track2Go LogoTrack2Go

Track2Go System Architecture

Track2Go is a Git-inspired repository tracking platform consisting of a CLI client, a backend API, and a web interface. The system stores repository snapshots in object storage while metadata is managed through a backend service.

Track2Go architecture diagram

Overview

The system is composed of four main layers: the CLI interface used by developers, a backend API responsible for repository metadata and authentication, cloud storage for commit snapshots, and a web interface for browsing repositories.

Core Components

Track2Go CLI

Provides commands for initializing repositories, creating commit snapshots, and synchronizing repository objects with remote storage.

Node.js Backend

Handles authentication, repository metadata management, issue tracking, and commit history APIs.

MongoDB

Stores metadata such as users, repositories, commit history, and issue data.

AWS S3

Stores commit snapshots and repository file objects used by both the CLI and the backend.

Data Flow

  • Developers interact with repositories using the Track2Go CLI.
  • The CLI creates commit snapshots and uploads repository objects to AWS S3.
  • The backend API manages repository metadata and user authentication.
  • The web interface fetches repository data through the backend API.
  • The backend retrieves repository objects from S3 when needed.

Repository Storage Model

Track2Go stores repository data using snapshot-based commits. Each commit represents a full snapshot of the repository state, enabling simpler commit history traversal and object storage.

Future Improvements

  • CLI authentication and API-mediated uploads
  • Branching and merge support
  • Distributed object caching
  • Background workers for repository indexing