How vigneshrdy/sih-ps-archive works
SIH Problem Statement Archive combines a plain-Markdown corpus with a web selection desk. Visitors browse and search statements; signed-in users can shortlist them, add private notes, form six-member teams, comment, and vote. The sampled code shows statement parsing and public API routes, plus authentication, session, team, review, and comment handling over a PostgreSQL layer. The README documents the app’s broader workflow; app.js and some feature wiring were not excerpted, so those connections are not inferred.
Main entry points: http.js HTTP utilities · session.js Session services · statements.js Statement parser · db.js Database access
Components 17
Statement archive
- 2026 statements
2026 - Statement parser
lib/statements.js
Web experience
- Selection desk
app.js
Application API
- Problem list API
api/problems/index.js - Statement pages
api/statement.js - Sitemap
api/sitemap.js - Reviews and votes
api/reviews.js - Team comments
api/comments/index.js - HTTP utilities
lib/http.js
Identity and teams
- Authentication API
api/auth.js - Session refresh API
api/session/refresh.js - Session services
lib/session.js - Team management
api/team.js
Persistence
- Database access
lib/db.js - Database schema
supabase/schema.sql
Other components
- Visitor
- Supabase Auth
Connections 24
- Visitor → Selection desk: browses
README.md - Selection desk → 2026 statements: reads statements
README.md - Problem list API → Statement parser: loads list
api/problems/index.js - Statement pages → Statement parser: loads pages
api/statement.js - Sitemap → Statement parser: loads entries
api/sitemap.js - Statement parser → 2026 statements: parses Markdown
lib/statements.js - Authentication API → Session services: calls auth
api/auth.js - Session refresh API → Session services: rotates session
api/session/refresh.js - Team management → Session services: checks access
api/team.js - Reviews and votes → Session services: checks access
api/reviews.js - Team comments → Session services: checks access
api/comments/index.js - Session services → Supabase Auth: verifies and refreshes
lib/session.js - Session services → Database access: queries sessions
lib/session.js - Team management → Database access: queries teams
api/team.js - Reviews and votes → Database access: stores reviews
api/reviews.js - Team comments → Database access: stores comments
api/comments/index.js - Problem list API → HTTP utilities: handles methods
api/problems/index.js - Statement pages → HTTP utilities: handles methods
api/statement.js - Sitemap → HTTP utilities: handles methods
api/sitemap.js - Authentication API → HTTP utilities: checks origin
api/auth.js - Session refresh API → HTTP utilities: checks origin
api/session/refresh.js - Team management → HTTP utilities: checks origin
api/team.js - Reviews and votes → HTTP utilities: checks origin
api/reviews.js - Team comments → HTTP utilities: checks origin
api/comments/index.js