Repository navigation
feat: Build Days live floor, club leaderboard, mentor bench, and a site reshuffle - #10
Merged
PRAteek-singHWY merged 1 commit intoOct 9, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this does
Build Days (new)
/admin/build-days. Each student's row records their track, repo, issue/PR links, blocker and next step./dashboard/build-days/floor. Floor mentors claim and resolve those requests./dashboard/build-days/screenis a projector view of the room.@sst.scaler.comemail./admin/cohortputs every student's Build Days side by side, for choosing the mentor cohort.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.kindfield (build-day), andhackathonbecomes a valid path.Leaderboard (new)
rebuildLeaderboard()infunctions/index.jsruns 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.contributionsstays private. Only admitted members can read the board (isClubMember()).functions/github.jsnow also counts issues opened. That's a third search per member, soGAP_MSgoes from 5s to 7s./dashboard/leaderboard(noindex).Public site
/how-to-joinis gone; it redirects (302) to/join, which now has the entry paths and the program mentor bench./guidepage, made of the explainers moved off the home page and how-to-join./eventspage: what we run, and outside events worth applying to.content/club.tswas split into one module per topic (positioning,mentors,events,how-to-join,lookup, …).CONTRIBUTING.mdlists them.Dashboard
Housekeeping
web/public/people/*is gitignored and the files are removed from the index. With no photo,Portraitfalls back to initials. Deploy machines need the photos copied in by hand. The photos are still in git history.DevLogin,DevLoginSlot,assert-no-dev-login.mjs).npm run devnow starts the Auth + Firestore emulator too and saves its data between runs (seeFIREBASE.md). The old Next-only command is nownpm run dev:next.npm run e2e:build-days. Rules tests cover the new collections.Before merging
npm run rules:emulatorandnpm run e2e:build-dayspass/how-to-joinredirects to/joinon hosting