Aalto OpenCS IDE is a student extension for VS Code-compatible desktop editors, including VS Code and VSCodium. It brings the OpenCS assignment workflow into the editor, from sign-in through grading results. Students work on local files while the OpenCS platform remains authoritative for course and grading data.
The OpenCS platform remains authoritative for authentication, enrolments, course structure, submissions, grading, points, and completion. The extension is currently published as a preview.
- Sign in through the OpenCS website.
- Choose a local assignment folder.
- Choose an enrolled course and active course version.
- Browse and download programming exercises.
- Work locally, with optional Python running and syntax checking where supported.
- Review the exact files selected for upload and submit them.
- Follow grading and inspect failed tests or grader errors.
Only exercises whose platform type is programming-exercise are displayed and
downloaded.
The source is organized by feature:
src/
├── commands/
├── config/
├── features/
├── infrastructure/
├── lifecycle/
├── views/
└── extension.ts
- Controllers own editor interactions.
- Services coordinate workflows.
- Repositories own API, persistence, and filesystem access.
- Models define feature contracts and persisted data.
src/commands/registerCommands.tswires the concrete implementation.
Start with the feature documentation for current
behavior. Then inspect the relevant folder under src/features/ and its tests
under src/test/.
The feature documentation covers:
- authentication and account management;
- course selection and exercise navigation;
- assignment download and redownload;
- submission-file selection, upload, grading, and history;
- assignment activity history; and
- local Python running and syntax checking.
See Snapshot Synchronization and Request Budget for network refresh, offline cache, request-budget, and assignment-content version behavior.
Repository-wide contributor and agent constraints are maintained in
AGENTS.md.
Search editor settings for Aalto OpenCS IDE.
| Setting | Default | Purpose |
|---|---|---|
aaltoOpenCsIde.apiBaseUrl |
https://opencs.aalto.fi/api |
Development-only API base URL override. HTTPS required; HTTP allowed only for localhost, 127.0.0.1, or [::1]. |
aaltoOpenCsIde.platformBaseUrl |
https://opencs.aalto.fi |
Development-only website URL override. HTTPS required; HTTP allowed only for localhost, 127.0.0.1, or [::1]. |
aaltoOpenCsIde.pythonCommand |
empty | Local Python command; empty uses the operating-system default. |
Local platform configuration for development builds:
{
"aaltoOpenCsIde.apiBaseUrl": "http://localhost:8842/api",
"aaltoOpenCsIde.platformBaseUrl": "http://localhost:7799"
}Endpoint overrides must be valid HTTP(S) base URLs without credentials, query strings, or fragments. Invalid values stop extension initialization and show the invalid setting name. Release builds always use the HTTPS production defaults.
Install dependencies and run the standard checks:
npm install
npm run check-types
npm run lint
npm run compile-tests
npm run compile
npm testOpen the project in a compatible desktop editor and launch an Extension Development Host. The provided launch configurations support a fresh user layout, a fresh production-connected profile, and the existing development layout.
Start the sibling IntroCS platform with Docker-backed execution and grading:
./scripts/start-local-platform.shUse --with-test-course for the local IDE integration-test course. See
docs/agents/local-platform.md for repository
layout, grader images, readiness checks, and shutdown instructions.
Real-platform integration tests are opt-in:
./scripts/run-integration-tests.shThey use the gitignored .env.test.local. Confirm the passing and pending
counts because missing configuration causes integration cases to skip.
- Store sessions only in the editor's
SecretStorage. - Send the platform token as the raw
Authorizationheader value. - Never log tokens, authorization codes, student identifiers, or student source.
- Upload source only after the student reviews the selected files and confirms submission.
- Preserve student files during normal cleanup and sign-out.
- Leave grading, points, completion, and hidden tests to the platform.
- Package:
aalto-opencs-ide - Publisher:
aalto-opencs - Extension identifier:
aalto-opencs.aalto-opencs-ide - Marketplace status: Preview
- License: UNLICENSED