Back to projects

April 2025 · Frontend and backend contributor

WSS Website

The site for the Winter Seminar Series, the largest event run by Sharif's CE department — frontend and backend features plus a load-performance overhaul.

Next.jsDjangoPostgreSQLDockerNginxTanStack Query

Overview

The Winter Seminar Series is the largest event the Computer Engineering department at Sharif runs, and its website carries real traffic in bursts — quiet for months, then thousands of concurrent visitors when registration opens. I contributed features across the frontend and backend and led work on load performance.

Rendering strategy

The interesting decision was refusing to pick one rendering mode for the whole site. Next.js supports both static generation and server rendering, and the right choice differs per route.

Schedule and speaker pages change rarely and are read constantly, so they are statically generated and served from cache. Registration and dashboard views depend on who is asking and have to render per request. Treating this as a per-route decision rather than a global setting is most of where the performance came from — the pages taking the traffic spike are the ones that never touch the database.

Features

I added a grouping system for team registrations, resume upload, and job posting functionality, each of which had been handled manually by organizers through spreadsheets in prior years. The frontend uses TanStack Query for server state, Zustand for client state, and Zod with React Hook Form for validated multi-step registration flows.

Backend and deployment

Django and Django REST Framework over PostgreSQL, containerized with Docker and fronted by Nginx. Nginx does more than proxy here: it terminates TLS, serves static assets directly without touching the application server, and provides the buffer that keeps a registration-opening spike from reaching Django all at once.