vasync-dashboard

Discord-authenticated internal UI for registering recurring VAsync collab availability (spec section 1). See VAsync_Scheduling_Daemon_MVP_Spec.docx for the product spec.

Layout

Running locally

cp .env.example .env.local   # Discord OAuth app creds, guild/role IDs, SESSION_SECRET, VASYNC_*
npm install
npm run dev

Requires a running vasync-database instance and a Discord OAuth2 application with the redirect URI set to DISCORD_REDIRECT_URI.

Tests

npm test

Covers the pure logic: role resolution, session token sign/verify (including tamper rejection), and default/merge behavior for the weekly availability grid. No Discord app or running API is required. The OAuth and proxy API routes aren’t covered yet - that needs Next.js route testing tooling, not just a unit-test runner.