Setup
Complete these six phases in order. Each ends with a checkpoint — do not proceed until you can confirm it.
Not sure what all these pieces are for? Read The Project Ecosystem first.
Phase 1 — Register your team
- Every student opens the GitHub Classroom invitation link shared by the teacher.
- One student creates the team using the exact teacher-defined team name.
- Other students search for that exact team and join it.
- Confirm a repository named after your team has appeared under the
Estia-1aorganization on GitHub.
Use the exact team name given by the teacher. A wrong name creates a separate team and a separate repository — there is no way to merge them afterward.
✓ Checkpoint: Every teammate can visit github.com/Estia-1a/<your-team> and see the repository.
Phase 2 — Clone and open in VS Code
Clone with VS Code
- Open the command palette (
Ctrl+Shift+P/Cmd+Shift+P). - Run
Git: Clone→Clone from GitHub. - Select your team repository.
- Choose a local path with no accents or special characters.
- When VS Code asks to open the repository, click Open.
- When VS Code prompts to install recommended extensions, click Install All.
Clone with SmartGit (alternative)
- Clone the repository.
- Open the cloned folder in VS Code and install recommended extensions when prompted.
Windows: Keep your path short and accent-free (e.g., C:\code\pgi-2026-teamname). Accents and long paths cause compiler and CMake failures.
Required extensions (from .vscode/extensions.json):
- GitHub Pull Requests and Issues
- C/C++
- CMake
- CMake Tools
✓ Checkpoint: VS Code shows the project files and all recommended extensions are installed.
Phase 3 — Download and install libraries
Your project links against two prebuilt libraries that are not included in the repository. You must download and place them manually.
Step 1 — Identify your compiler target
Open a terminal and run:
gcc -dumpmachineLook at the beginning of the output to choose your package:
| Output starts with | Download |
|---|---|
x86_64 |
*-win10-mingw64.zip |
i686 |
*-win10-mingw32.zip |
Common confusion: x86_64-w64-mingw32 → download mingw64. The x86_64 prefix is the deciding factor, not the mingw32 at the end.
Step 2 — Download both packages
Get both from the v2.0.1 release:
estia-image-v2.0.1-win10-mingw64.zip(ormingw32)getopt-v2.0.1-win10-mingw64.zip(ormingw32)
Step 3 — Extract and place correctly
Unzip each archive. Move only the inner folder directly into your project root:
✓ Correct:
your-project/
├── estia-image/
│ ├── include/
│ └── lib/
├── getopt/
│ ├── include/
│ └── lib/
└── src/
✗ Wrong (wrapper folder left inside):
your-project/
└── estia-image-v2.0.1-win10-mingw32/
└── estia-image/
├── include/
└── lib/
Do not leave zip files or wrapper folders in the project root.
✓ Checkpoint: estia-image/include/estia-image.h and getopt/include/getopt.h both exist in your project root.
Phase 4 — Validate and build
Run the validator
From the project root (use Git Bash on Windows):
bash validconfig.shThis script checks your git config, compiler, CMake, and library presence. Fix every error it reports before continuing. It is your primary diagnostic tool throughout the project.
From VS Code: Tasks: Run Task → Estia: Validate your installation
Build and run helloworld
The project is built with CMake ToolChain. CMake needs to pick the right compiler. You can select the correct kit in VS Code (Ctrl+Shift+P → CMake: Select a Kit), or manually specify it.
Then run:
cmake -B build -G "Unix Makefiles"
cmake --build build
./build/freud.exe -f images/input/image.jpeg -c helloworld✓ Checkpoint: The helloworld output appears in your terminal with no errors. Every teammate repeats this on their own machine.
Phase 5 — Activate GitHub workflows (team leader only)
One person does this step. Other teammates wait until the leader confirms it is done, then run git pull.
The team leader runs:
bash validconfig.sh --activate-workflowsOr from VS Code: Tasks: Run Task → Estia: Team leader activate workflows
This command:
- Pulls latest
main. - Renames disabled workflow files (
*.yml.disabled) to active.yml. - Creates a one-time onboarding commit and pushes to GitHub.
- Prints the repository Actions URL.
Everyone else: once the leader confirms the push succeeded, run:
git pull✓ Checkpoint: Team leader confirms push succeeded. All teammates have pulled.
Phase 6 — Import issues (one person)
Only one teammate runs the import. Others wait for completion, then pull.
- Open your repository on GitHub.
- Go to the Actions tab.
- Select Import issues from Template.
- Click Run workflow on branch
main. - Wait for the green checkmark.
- Check the Issues tab — issues should now be visible.
Everyone else: once issues appear, run:
git pull✓ Checkpoint: Issues are visible in the Issues tab. All teammates have pulled.
You are now ready to start coding. Go to First Steps.