Skip to content

feat: Build Days live floor, club leaderboard, mentor bench, and a site reshuffle - #10

Merged
PRAteek-singHWY merged 1 commit into
ScalerOpenSourceLabsOrg:mainfrom
bhumindeshpande8-spec:feat/team-mentors-build-day-updates
Oct 9, 2026
Merged

PRAteek-singHWY merged 1 commit into
ScalerOpenSourceLabsOrg:mainfrom
bhumindeshpande8-spec:feat/team-mentors-build-day-updates

Conversation

@bhumindeshpande8-spec

Copy link
Copy Markdown
Contributor

What this does

Build Days (new)

  • Roll call: organisers take attendance per Build Day at /admin/build-days. Each student's row records their track, repo, issue/PR links, blocker and next step.
  • Live floor: during a Build Day, students post their progress (setup → found repo → … → merged) and can ask for help at /dashboard/build-days/floor. Floor mentors claim and resolve those requests.
  • Big screen: /dashboard/build-days/screen is a projector view of the room.
  • Floor mentors: organisers appoint them by @sst.scaler.com email.
  • Cohort view: /admin/cohort puts every student's Build Days side by side, for choosing the mentor cohort.
  • New collections in firestore.rules: attendance/{session} and /present/{uid}, floor_mentors/{email}, floor/{session}/students/{uid}. Students can only write to the floor from 1h before a Build Day starts until 12h after. Mentors can only change the help fields on another student's row.
  • Sessions get a kind field (build-day), and hackathon becomes a valid path.

Leaderboard (new)

  • rebuildLeaderboard() in functions/index.js runs in the nightly sweep. It publishes one doc, leaderboard/current, with the top 100 admitted members who have given a GitHub handle: name, handle, merged PRs, repos, issues opened.
  • contributions stays private. Only admitted members can read the board (isClubMember()).
  • functions/github.js now also counts issues opened. That's a third search per member, so GAP_MS goes from 5s to 7s.
  • Shown at /dashboard/leaderboard (noindex).

Public site

  • /how-to-join is gone; it redirects (302) to /join, which now has the entry paths and the program mentor bench.
  • New /guide page, made of the explainers moved off the home page and how-to-join.
  • New /events page: what we run, and outside events worth applying to.
  • Home page rework: new hero graph, a merge-a-PR playground, peelable stickers and small achievements (stored in localStorage).
  • Team page, Projects page, Programmes page and Nav reworked. New logo and favicon.
  • content/club.ts was split into one module per topic (positioning, mentors, events, how-to-join, lookup, …). CONTRIBUTING.md lists them.

Dashboard

  • New sections: Build Days, Events, Floor card, mentorship results.

Housekeeping

  • Member photos are no longer tracked. web/public/people/* is gitignored and the files are removed from the index. With no photo, Portrait falls back to initials. Deploy machines need the photos copied in by hand. The photos are still in git history.
  • Dev login removed (DevLogin, DevLoginSlot, assert-no-dev-login.mjs).
  • npm run dev now starts the Auth + Firestore emulator too and saves its data between runs (see FIREBASE.md). The old Next-only command is now npm run dev:next.
  • New npm run e2e:build-days. Rules tests cover the new collections.

Before merging

  • npm run rules:emulator and npm run e2e:build-days pass
  • Deploy rules and functions together: the leaderboard page reads a doc only the new function writes
  • Photos are copied onto the deploy machine
  • /how-to-join redirects to /join on hosting

@PRAteek-singHWY
PRAteek-singHWY merged commit 2c0bc34 into ScalerOpenSourceLabsOrg:main Oct 9, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants