Skip to content

Repository files navigation

Central Programme Management Portal

A clean prototype scaffold for a secure, role-based programme management portal.

The old implementation has been preserved in Git history and pushed to GitHub. This version starts from the PRD and the new design direction: compact Codex-style UI, proper auth/RBAC boundaries, backend-owned authorization, and a PostgreSQL data layer.

Stack

  • Web: Vite, React, TypeScript, shared UI primitives
  • Server: Fastify, TypeScript, httpOnly JWT sessions, Drizzle ORM, PostgreSQL
  • Shared contracts: role/permission model and DTOs
  • Tooling: pnpm workspaces, Turbo, Cloudflare Pages config for the web bundle

Local Setup

cp .env.example .env
pnpm install
docker-compose up -d postgres
pnpm db:migrate
pnpm db:seed
pnpm dev

This machine has docker-compose, so the project scripts use:

pnpm compose:up

Open:

Demo login:

  • Email: pmu.admin@scp.local
  • Password: Demo@12345

Cloudflare Pages

The web app is configured for Cloudflare Pages via apps/web/wrangler.jsonc.

pnpm build --filter @scp/web
npx wrangler pages deploy apps/web/dist --project-name scp-programme-portal

Deployment currently requires a valid Cloudflare session or CLOUDFLARE_ACCOUNT_ID plus an API token with Pages permissions.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages