Skip to content

Packages Architecture Overview

Status: Canonical Reference Scope: src/ directory architecture

This document provides an overview of the src/ directory structure and the relationships between packages.


Directory Structure

src/
β”œβ”€β”€ codegen/                    # Solution skeleton generator (Stateless)
β”‚   β”œβ”€β”€ core/                   # Shared core components
β”‚   β”œβ”€β”€ reference/              # Reference skeleton generation
β”‚   └── practice/               # Practice skeleton generation
β”‚
β”œβ”€β”€ leetcode_datasource/        # LeetCode data layer
β”‚   β”œβ”€β”€ models/                 # Data models (Question, ProblemInfo)
β”‚   β”œβ”€β”€ storage/                # Cache and persistent storage
β”‚   β”œβ”€β”€ serialization/          # Data serialization
β”‚   └── fetchers/               # Network layer (pluggable)
β”‚
└── practice_workspace/         # Practice file management (Stateful)
    β”œβ”€β”€ history.py              # History listing
    └── restore.py              # Version restore

Package Responsibilities

Package Role Stateful?
codegen Generate solution/practice skeletons No (Stateless)
leetcode_datasource Fetch and cache LeetCode data Yes (Cache + Store)
practice_workspace Manage practice history Yes (Filesystem)

Inter-Package Dependencies

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚     codegen      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
         β”‚ uses
         β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   leetcode_datasource      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   practice_workspace     β”‚  (independent, filesystem only)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Detailed Specifications

For detailed specifications of each package, see:

Package Specification
codegen docs/packages/codegen/README.md
leetcode_datasource docs/packages/leetcode_datasource/README.md
practice_workspace docs/packages/practice_workspace/README.md