Skip to content

About

Reinforce SST website, member dashboard, and FastAPI for projects, events, tickets, and merit.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

198 Commits

Folders and files

Repository files navigation

Reinforce Club SST

Reinforce Platform

A home for the AI/ML club at Scaler School of Technology.

Website · API status · Discord bot · Contributing


The public site, member workspace, and FastAPI service live here. Members can explore events and project groups, manage a profile, file and follow tickets, read articles, submit ideas, and see contribution history. Admins can manage members, publish events and banners, award merit points, review tickets and ideas, and publish articles.

Current status

Surface Address Status checked 29 September 2026
Next.js website reinforce-sst.com Serving the integrated frontend
FastAPI api.reinforce-sst.com Health endpoint returned 200
YUVI hosted endpoint YUVI health Returned 503; Discord bridge is not verified live
Older Vercel URL reinforce-student-dashboard.vercel.app Still serves the legacy Vite client

These checks establish availability, not a complete signed-in workflow. The dashboard ticket bridge and Discord role grant still require an end-to-end test with a real linked member. See verification and rollout. In the pending dashboard changes, an admin can approve an SPG registration in the Admin Console. Approval creates one group and resolves its ticket together; ordinary status changes cannot approve a registration. This still needs a live signed-in review after deployment.

How it fits together

Next.js web/ ──► FastAPI server/ ──► Firestore
                        ▲                ▲
                        │                │
                 YUVI Discord bot ───────┘

YUVI lives in a separate repository. The API and bot share Firestore document shapes, documented in the data contract. Firebase Admin credentials stay on the servers; the browser calls the API with a Firebase ID token.

Directory Purpose
web/ Next.js public site, /auth, dashboard, admin console
server/ FastAPI routes and Firestore services
docs/ Data contract, workflows, and verification

Run locally

Use Node 20+, Python 3.13+, and uv. Configuration examples contain names and safe defaults, never credentials.

cd server
cp .env.example .env                 # fill in your own Firebase configuration
uv sync --locked
uv run uvicorn main:app --reload --port 8080

In another terminal:

cd web
cp .env.example .env.local           # fill in Firebase web configuration
npm ci
npm run dev                           # http://localhost:3000

The API docs are at http://localhost:8080/docs. To verify a change, run uv run --locked pytest -q in server/ and npm test && npm run lint && npm run build in web/. Local tests use fixtures; they do not exercise Discord or production Firestore.

For anything that touches the dashboard UI, also run the end-to-end suite, which drives a real browser over every member-facing route:

cd web
npx playwright install --with-deps chromium   # once
npm run e2e                                   # or PLAYWRIGHT_CHANNEL=chrome npm run e2e

It builds and starts the app itself and intercepts every API and Firebase call, so it needs no running server and no credentials. See docs/verification.md for what it does and does not prove.

Before changing shared behavior

Read CONTRIBUTING.md, the Firestore data contract, and YUVI's source. Keep /auth compatible with YUVI's private #link_token= link. Admin API access requires the verified Firebase admin claim; Core and custom role labels are display metadata.

About

Reinforce SST website, member dashboard, and FastAPI for projects, events, tickets, and merit.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages