No description
- TypeScript 98.9%
- CSS 1.1%
|
|
||
|---|---|---|
| docs | ||
| migrations | ||
| public/services | ||
| scripts | ||
| src | ||
| test | ||
| .dev.vars.example | ||
| .gitignore | ||
| biome.json | ||
| bun.lock | ||
| drizzle.config.ts | ||
| LICENSE | ||
| package.json | ||
| PLAN.md | ||
| README.md | ||
| SPEC.md | ||
| SPEC.v0.md | ||
| tsconfig.json | ||
| tsr.config.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
| worker-configuration.d.ts | ||
| wrangler.jsonc | ||
FIT-CVUT-OS
One place for all FIT ČVUT information systems (timetable, grades, Marast, course materials), exposed to AI assistants (ChatGPT, Claude, …) via a remote MCP server. Open source, MIT, deployable to Cloudflare Workers.
- Spec:
SPEC.md - Plan:
PLAN.md - Self-hosting guide:
docs/self-hosting.md· Security:docs/security.md - MCP server & clients:
docs/mcp.md - Upstream APIs:
docs/apis.md· FIT OAuth notes:docs/fit-auth.md
v1 in progress — see PLAN.md.
Development
Requirements: bun ≥ 1.4.
bun install
bun run setup # .dev.vars with generated secrets + local D1 (fill in FIT_AUTH_CLIENT_*)
bun run dev # http://localhost:3000
| Script | What it does |
|---|---|
bun run setup |
Create/complete .dev.vars, migrate local D1. --production prints the deploy checklist; --d1-id/--kv-id write resource ids |
bun run dev |
Vite + workerd dev server on :3000 |
bun run build |
Production build |
bun run typecheck |
tsc --noEmit |
bun run lint / format |
Biome check / autofix |
bun run test |
Vitest |
bun run db:generate |
Generate a SQL migration from src/db/schema.ts (drizzle-kit) |
bun run db:migrate |
Apply migrations to the local D1 database (.wrangler/state) |
bun run mcp:smoke |
MCP smoke test against a running server (--login for the full OAuth flow) |
bun run fixtures:record |
Record PII-scrubbed live API responses for the signed-in dev user (git-ignored) |
bun run cf-typegen |
Regenerate worker-configuration.d.ts from wrangler.jsonc |