Creative brief for this page
Concept: every dev gets a ticket stub, like the ones at a college fest gate. Tear the stub, read your name, read your slice. Palette comes from MJCET's world: fog-grey notice boards, petrol-blue ink, and five stub colours so you can find yourself fast.
Assumptions: brand name "Manch" is a placeholder (Urdu/Hindi for stage). Stack suggestion is React + Node/Express + PostgreSQL + Socket.io; swap it if the team already agreed on something else. Real club logos and MJCET photos are needed from the club heads before launch.
Roles in the system
- Student: browses, RSVPs, joins live, sees recaps
- Club admin: registers a club, hosts events, approves people, runs the live room, builds the recap
- Super admin: approves new clubs (a handful of staff)
The five slices
Each slice has about 6 pages and 10 to 14 endpoints. Counts are shown on every stub so you can check the split is fair.
Shared rules (agree on day one, 30 minutes)
/server/modules/<name>, pages in /client/src/features/<name>. Touch only your own folder; open a PR for anything shared.{ ok, data, error }. Errors carry a plain message the UI can show as is.POST /api/uploads in week one. Robert (QR) and Roy (payment screenshots) call it, never their own Multer setup.requireAuth, requireRole("club_admin") and requireClubOwner. Everyone imports them.Who owns which table
| Table | Owner | Key fields |
|---|---|---|
| users, clubs | Robin | role, email, club status (pending, approved), owner_id |
| events, event_settings | Robert | club_id, capacity, approval_mode (auto_until_full or manual), is_paid, price, qr_url, status (draft, open, live, ended) |
| rsvps, payments | Roy | event_id, user_id, answers, status (pending, approved, rejected, waitlist), screenshot_url, verified_by |
| speakers, quizzes, questions, answers, doubts, doubt_votes | Baskin | quiz state, points per answer, upvote count, pinned |
| gallery_items, certificates, leaderboard_entries, tech_links, uploads | Scoop | event_id, file_url, points, rank, link title and url |
Timeline that avoids blocking
| Phase | What lands | Who unblocks whom |
|---|---|---|
| Days 1 to 3 | Repo, migration, auth, guards, upload service, design tokens, mock JSON for every endpoint | Robin and Scoop ship foundations. Others build UI against mock JSON in /mocks. |
| Days 4 to 8 | Club registration, host-event form, discover feed, RSVP flow, speaker and doubt boards | Robert needs Robin's club approval. Roy needs Robert's event detail. |
| Days 9 to 13 | Attendee approval queue, payment verification, live quiz with sockets, recap page, leaderboard | Scoop reads Baskin's quiz scores. Baskin reads Roy's approved list for room access. |
| Days 14 to 16 | Integration, bug bash on one real club event, phone testing | Everyone. Pick one real club to test with. |