Find, track and win student competitions — for a whole department, on one Windows PC.
Download for Windows · Features · Build from source · MIT licence
Junction is a desktop app for a college department that wants to stop missing hackathons, CTFs, coding contests and innovation challenges. It gathers events from public sources, lets professors assign them to students and teams, tracks every deadline and stage, and shows what the department has actually achieved — all stored locally on one computer, with no account or server to sign up for.
Screenshots use synthetic demo data.
- Download
Junction_0.10.0_x64-setup.exefrom the latest release. - Run it. It installs for your Windows user only — no administrator rights needed — and adds Junction to the Start menu.
- Open Junction and say who is setting it up — a professor or department, or a student. A department's setup asks for the first administrator, where backups go and a recovery code; a student's asks only where you are and an e-mail address event sites can reach.
Requirements: Windows 10 (64-bit) or Windows 11, about 150 MB of disk space.
Everything Junction needs ships inside the installer: its own Node.js runtime, the local database engine, the backend service and the place-name data used for "nearby" distances. The one Windows component it relies on — the Microsoft Edge WebView2 runtime, already part of Windows 11 — is installed automatically if it is missing.
The installer is not code-signed yet, so Windows SmartScreen may say it "protected your PC". Choose More info → Run anyway. You can check the download against the SHA-256 published with each release.
The same installer sets Junction up for a student. Choose A student on the first screen, then whether you represent yourself or an institution (a club, chapter or college team). There is no account to create: Junction opens as a guest that can do everything — find events, make teams, track competitions and deadlines.
Myself is for your own computer. "Nearby" is measured from where you live, and when you want a password lock you choose Create my profile in the user menu; everything you did as the guest stays yours.
An institution suits a club's shared computer. Anyone can use it as a guest; the first person to create a profile becomes the lead, who can add members and turn guest access off. A student install is independent of any department's Junction — nothing is shared between them.
- Discover — events from CTFtime, Unstop and CLIST (within each source's published limits; CLIST needs your own API key), plus manual entry and URL import. Featured views for nearby, closing soon, new and recommended, every recommendation with its reason, and saved searches that alert you to new matches.
- Competitions — a pipeline from considering to completed, team or individual assignment in three steps, workflow templates with stages and tasks, progress and schedule health, resources, outcomes and results.
- People — students (with CSV/XLSX import), teams, mentors, skills and each student's competition history.
- Deadlines — a Deadline Radar and Dashboard, notifications with snooze, a tray badge and Windows toasts for anything critical.
- Insights — participation over time, the funnel from considering to completed, outcomes, deadlines met vs missed, which sources found the events you took on, and your busiest students, teams and mentors. Every number is counted from what is recorded; nothing is estimated.
- Appearance — Catppuccin Latte, Frappé, Macchiato and Mocha alongside a Classic theme; Calm, Standard and Showcase effect levels with RGB presets. Every flavour is contrast-tested, Calm loses no information, and Windows' reduce motion setting always wins.
- Private by design — one SQLite database on your machine, Argon2id passwords, roles for administrators and professors, an audit log, encrypted backups with a recovery code.
| Tool | Version |
|---|---|
| Node.js | 24.19.0 (.node-version) |
| pnpm | 12.4.2 (npm i -g pnpm@12.4.2) |
| Rust | 1.98.1, stable-x86_64-pc-windows-msvc |
| Visual Studio Build Tools 2022 | "Desktop development with C++" (MSVC + Windows 11 SDK) |
pnpm install --frozen-lockfile
pnpm verify # format, lint, typecheck, ~4,600 tests
pnpm --filter @compintel/backend bundle # the backend the shell starts
pnpm --filter @compintel/desktop tauri:dev # run the app in developmentTo build the installer:
pnpm gazetteer:build # once: place-name data from GeoNames
pnpm --filter @compintel/desktop release # → apps/desktop/src-tauri/target/release/bundle/nsis/Development data lives in %LOCALAPPDATA%\CompIntel-dev; an installed copy keeps its data in
%LOCALAPPDATA%\JunctionData (the program itself installs to %LOCALAPPDATA%\Junction). The internal package scope is
still @compintel/*, from the project's working name.
apps/backend Fastify + SQLite service: all business logic, scrapers, jobs
apps/desktop React UI and the Rust (Tauri 2) shell: window, tray, backend supervision
packages/contracts zod schemas shared by both: DTOs, enums, error codes
tools/ gazetteer builder and performance tooling
resources/ seeds, gazetteer manifest, brand assets
docs/ architecture spec, ADRs, decisions, per-work-package handoffs
The design is written down in docs/ARCHITECTURE.md, the decisions
behind it in docs/adr/, and current status in
docs/PROGRESS.md.
Junction is released under the MIT licence.
It ships third-party work under its own terms: place data from
GeoNames (CC BY 4.0, see
resources/gazetteer/ATTRIBUTION.md), the
Catppuccin palettes (MIT), and the Node.js runtime (MIT; its licence
is installed next to it). Credits are also shown in the app under About Junction.

