Team project
Zenith.
A team-based online cryptic hunt: twenty levels of image, audio and text clues, a live leaderboard, and a server built for everyone submitting at once.
In a hunt, every team hits the server at the same moments: the start, each new level and the final minutes. The platform had to stay fast through those spikes, keep the leaderboard honest, and shrug off anyone trying to brute-force answers.
Concurrent users
1000+
during live competition.
Response time
< 100 ms
through submission spikes.
Levels
20
image, audio and text clues.
Rate limit
50/min
requests per IP, on top of NGINX limits.
How it works
From sign-up to leaderboard.
Register
Teams sign up with a leader and members. Zod validates every payload and passwords are hashed with bcrypt.
Sign in
A short-lived JWT access token and a seven-day refresh token live in cookies, so the API stays stateless and needs no session lookups.
Solve
Levels unlock in order. Each answer is checked on the server, and the time taken on every level is recorded against the team.
Rank
The leaderboard is calculated from levels solved and time taken, and shown as a progress graph per team.
Hold the line
Cloudflare absorbs DDoS traffic, NGINX rate-limits and load-balances in front of Node, and the app caps each IP at 50 requests a minute.
Tech stack
What it's built with.
Backend
- Node.js, Express
- Routes for auth, levels and the leaderboard
- MongoDB, Mongoose
- Teams, users and per-level timing
- JWT, bcrypt
- Stateless sign-in with access and refresh tokens
- Zod
- Validating sign-ups and answers
- Helmet, express-rate-limit
- Headers and per-IP limits
- Nodemailer
- Account emails
Frontend
- HTML, CSS, JavaScript
- Hunt, leaderboard and team pages
- three.js
- A 3D model with ASCII and glitch effects on the home page
Infrastructure
- NGINX
- Reverse proxy, rate limiting and load balancing
- Cloudflare
- DDoS mitigation
- AWS
- Hosting
My part
What I built.
- Built a competition platform serving 1000+ concurrent users at sub-100 ms response times, with real-time leaderboard calculation and stateless JWT auth to keep the database out of the way during submission spikes.
- Secured the deployment with Cloudflare DDoS mitigation and NGINX reverse-proxy rate limiting and load balancing.
Next project
ZaiGuardHiring for backend, forward-deployed or GPU work? Let’s talk.
saxena.shikhar1808@gmail.com