ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
College application and enrollment tracker supporting first-generation students
Translation pending
EducationTypeScript · HTMLGitHub @asiakayOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Cloudflare Worker + static UI for planning coursework against OKRs. It shares the
repo-dashboard-work-items D1 database with repo-dashboard, which owns the okrs
and tasks tables.
Migrations are applied one file at a time (the shared database is not tracked by
wrangler's migrations table):
or run the Apply D1 Migration workflow in GitHub Actions with the file path.Read the full README ↗Cloudflare Worker + static UI for planning coursework against OKRs. It shares the
repo-dashboard-work-items D1 database with repo-dashboard, which owns the okrs
and tasks tables.
npm install
npm run typecheck
npm test # vitest inside workerd with a local D1
npm run dev
Migrations are applied one file at a time (the shared database is not tracked by wrangler's migrations table):
npm run db:migrate:local -- migrations/0008_canvas_sync.sql
npm run db:migrate:remote -- migrations/0008_canvas_sync.sql
or run the Apply D1 Migration workflow in GitHub Actions with the file path.
The site is open until Cloudflare Access is turned on. Once
CF_ACCESS_TEAM_DOMAIN and CF_ACCESS_AUD are set, every /api/* route
(except /api/health) and /mcp require either a verified Access login or
Authorization: Bearer $MCP_SECRET_TOKEN. The Worker checks the Access JWT's
signature, audience, issuer and expiry itself; header presence alone is never
trusted.
workers.dev → enable Cloudflare Access.<team>.cloudflareaccess.com).CF_ACCESS_CLIENT_ID and
CF_ACCESS_CLIENT_SECRET. The workflows send them automatically.CF_ACCESS_TEAM_DOMAIN and CF_ACCESS_AUD, then Deploy.Canvas is the source of truth for institutional facts (courses, published assignments, official due dates, points). College Tracker keeps personal state: OKRs, micro-tasks, status, blockers, notes, weights and grades you enter. Sync is read-only and never overwrites that personal state.
migrations/0008_canvas_sync.sql (see above).npx wrangler secret put CANVAS_API_TOKEN
[vars] in wrangler.toml and set
CANVAS_BASE_URL = "https://<school>.instructure.com", or store it with
npx wrangler secret put CANVAS_BASE_URL. Optionally set CANVAS_TIMEZONE
(IANA name); otherwise your Canvas profile time zone is used to turn Canvas
due timestamps into local due dates.MCP_SECRET_TOKEN is unset; otherwise a matching bearer token or a
Cloudflare Access login. Either way the Canvas token is never exposed.On Manage Courses → Canvas Sync:
How assignments are matched:
POST /api/canvas/assignments/:canvasId/link {"assignment_id": "..."}.<course>-C<canvasId> is created.POST /api/canvas/assignments/:canvasId/unlink) is permanent: later
syncs will not re-link or re-create it.canvas_state: "removed";
nothing is deleted.For linked assignments Canvas owns the title and due date (PUT /api/assignments/:id rejects due_date with 409). Logging a finished micro-task
moves an assignment from Not Started to In Progress; it never marks it Submitted.
Same auth as the app's other writes (see Setup step 5).
| Route | Purpose |
|---|---|
GET /api/canvas/status | configured?, host, last run summary |
POST /api/canvas/sync | run a sync now (409 if one is running) |
GET /api/canvas/courses | Canvas courses and their link state |
POST /api/canvas/courses/:id/link | {local_course_id} or {create: true, okr_id}, optional sync_enabled |
POST /api/canvas/courses/:id/unlink | stop syncing a course |
GET /api/canvas/assignments?canvas_course_id= | Canvas assignments and link state |
POST /api/canvas/assignments/:id/link / unlink | manual assignment linking |
GET /api/assignments, GET /api/deadlines and MCP get_upcoming_deadlines
include source, canvas_due_at, canvas_points, canvas_url and
canvas_state. MCP tools canvas_sync and canvas_sync_status mirror the REST
routes.