Case study · № 022025One-day hackathon

StackIt

A full-stack Q&A forum where users post questions with rich-text answers, vote, tag, get notified, and are moderated through an admin dashboard. Built by a four-person team in a single hackathon day, from Problem Statement 2.

Team4 people
My roleTeam lead
Built in1 day
StackReact · Express
stackit · q&a graph
ClientAPIModulesDataReact SPAVite · TipTapExpress/api/*JWT · RBACuser / mod / adminQ&Avotes · tagsNotifications@mentionsAdminmoderationPostgreSQLPrismaCloudinaryimagesimages
Fig. 1 · Q&A forum — JWT/RBAC-gated Express routes over Prisma·Postgres, TipTap rich text, Cloudinary uploads. (I built the scaffold, auth, admin & uploads.)
01

Context

The hackathon brief — Problem Statement 2 — was a minimal Stack-Overflow-style Q&A platform: ask questions, post answers, vote the best ones up, and organise it all with tags, minus the bloat of the big platforms.

I led a team of four, with one day on the clock.

questions · answers
02

My role, honestly

As team lead in a one-day sprint, my job was to unblock three other people. I made the founding commits — the Express server, the initial Prisma schema, the route skeleton, auth middleware, and the Vite/React bootstrap — so everyone else had stable ground to build features on by hour two. Then I owned the admin and moderation subsystem (dashboard, analytics, content moderation, user management, settings) and the Cloudinary image-upload path. The Q&A internals — voting, notifications, profiles, the rich-text editing — were largely built by teammates on the scaffold I set up.

admin · moderation
03

The platform

The finished product does more than the brief asked: a TipTap rich-text editor with inline image upload, up/down voting on questions and answers with accepted-answer marking, a many-to-many tag system, and a notification model (answers, votes, comments, @mentions) with read/unread state.

Roles run three deep — user, moderator, admin — with JWT auth, reputation, and verify/ban flags, all enforced through the middleware layer I set up on day one.

04

What worked

Spending the first hour on scaffolding instead of features is counter-intuitive under a one-day clock, but it’s why four people never collided in the same file. Route stubs and a settled schema meant everyone could work in parallel against contracts that didn’t move.

05

What I would change

Notifications are stored and polled, which is fine at hackathon scale and wrong past it — I’d put them on a socket channel. And with more than a day, the moderation tools deserved real audit trails rather than the direct state changes we shipped to make the demo.

Built with
React 18ViteTipTapTailwindNodeExpressPrismaPostgreSQLJWTCloudinary
← PreviousVansaarthiNext →QuickCourt
You found the trick.
Thanks for
looking closely.
↑ ↑ ↓ ↓ ← → ← → B A · konami