Pranathi 2k26 Registration App
Full-stack Django registration platform for Pranathi 2k26 - the annual cultural fest of Jyothy Institute of Technology - with Razorpay payments, QR check-in and team management.
Overview
A full-stack Django web application for managing Pranathi 2k26 - the annual cultural fest of Jyothy Institute of Technology. The platform handles 500+ participant registrations, team formations, Razorpay payment integration, QR-based check-in, and comprehensive admin management through Django admin.
The Problem
Manual paper-based registration process for a 2-day college event with 500+ participants across 30+ events; complex team event management requiring dynamic team sizes (2-member depending on event type); no automated payment verification - manual bank transfer reconciliation was time-consuming; schedule conflicts when multiple team members registered for overlapping events; slow check-in process without digital attendance system; difficulty in bulk communication with registered participants.
Approach
- Designed normalized Django models with foreign key relationships (User -> Registration -> Event -> Category), implementing a state machine for registration status (pending_verification -> pending_payment -> confirmed).
- Integrated Razorpay API with order creation, webhook handlers with HMAC SHA256 signature verification, and automatic retry logic for failed payments.
- Built QR code generation using the qrcode library linked to unique registration IDs, with barcode scanning for instant check-in and a real-time attendance dashboard.
- Extended Django admin with custom list_filters, search_fields, inline scheduling, date-based exports via pandas, and bulk email campaign functionality.
- Developed responsive mobile-first UI with Tailwind CSS, GSAP scroll-triggered animations with CustomEase, and glassmorphism navigation with mesh gradient backgrounds.
Technical Stack
| Layer | Technology |
|---|---|
| Backend | Django 4.2, Python 3.11 |
| ORM | Django ORM with SQLite3 (dev), PostgreSQL 15 (prod) |
| Frontend | HTML5, Tailwind CSS 3.x, JavaScript ES6+, GSAP 3.12 |
| Payments | Razorpay API v2 (orders, payments, webhooks) |
| QR Codes | qrcode library, Html5-Qrcode scanner |
| Deployment | Gunicorn, Nginx, Ubuntu 22.04 LTS VPS |
What I learned
- Designing and implementing normalized database models with Django ORM, including custom User model with USN validation.
- Payment gateway integration with proper security (webhook signature verification, idempotency handling).
- Creating QR code generation and barcode scanning systems for event check-in.
- Building responsive layouts with Tailwind CSS utility classes.
- Creating complex GSAP animation timelines with ScrollTrigger and CustomEase.
- Deploying Django applications to production VPS with Nginx as reverse proxy and Gunicorn workers.
- Managing PostgreSQL databases - migrations, backups, restoration from production dumps.
- Environment-based configuration management using python-decouple.
- Extending Django admin with custom ModelAdmin classes for better UX.