======================================================================================== INSTRUCTOR UPSTREAM (Canonical Repo) ======================================================================================== [master] --> Complete working code across all modules (Internal & Testing) [unlock-mod1] --> Disconnected orphan branch containing ONLY Gradle base + mod1 [unlock-mod2] --> Disconnected orphan branch containing ONLY Gradle base + mod2 [unlock-mod3] --> Disconnected orphan branch containing ONLY Gradle base + mod3 │ 1. Initial Course Provisioning ▼ ======================================================================================== THOUGHTFRAME SERVER (Hosting Layer) ======================================================================================== Instructor Master Mount --> Active Working Directory (/path/to/javacourse) │ ├─► [FORK OPERATION] (Done once on Student Start) │ Student Git Repository --> Server-side Bare Repo containing ONLY what is unlocked │ ▼ 2. Pushes new 'unlock-modX' tracking reference on passing module milestones. ======================================================================================== STUDENT WORKSPACE (Local IDE / Toolkit) ======================================================================================== [main] --> Student's working branch. Starts with: mod1/ After Merge: mod1/ + mod2/ (Gradle auto-sync activates) ======================================================================================== javacourse/ (master) ├── settings.gradle <-- Includes 'common', 'mod1', 'mod2', 'mod3', 'mod4' ├── build.gradle ├── common/ ├── mod1/ ├── mod2/ ├── mod3/ └── mod4/ # 1. Spin up a disconnected, empty branch git checkout --orphan unlock-mod1 git rm -rf . # 2. Add ONLY Module 1 files and the base Gradle configurations echo -e "rootProject.name = 'javacourse'\ninclude 'common'\ninclude 'mod1'" > settings.gradle echo "// Global Build Configurations" > build.gradle mkdir common && echo "// Shared utilities" > common/build.gradle mkdir mod1 && echo "