A comprehensive web application for managing the VTU Youth Fest 2025 at Global Academy of Technology, Bengaluru. This platform enables colleges to register, manage student participants, handle event registrations, process payments, and facilitate document verification for a seamless fest experience.
This application serves as the central hub for VTU Youth Fest 2025, themed "Brand Karnataka", celebrating Karnataka's rich cultural heritage and Bengaluru's innovative spirit. It provides a complete registration and management system for colleges, students, and administrators.
- JWT-based Authentication: Secure login system using JSON Web Tokens with jose library
- Role-based Access Control: Different permissions for colleges, students, and administrators
- Session Management: Stateless sessions with configurable expiration times
- Password Security: Bcrypt hashing for secure password storage
- College Registration: Colleges can register with their details and manage their profile
- Student Registration: Individual student registration with comprehensive profile management
- Event Registration: Flexible event registration system supporting participants and accompanists
- Document Upload: Secure file upload system for verification documents (Aadhar, SSLC, PUC, etc.)
- Uploadthing Integration: Robust file upload service for images and documents
- File Validation: Size and type restrictions (max 256KB per image)
- Secure Access: Authenticated file uploads with user-specific permissions
- Cloud Storage: Reliable file storage with CDN delivery
- User Management: Comprehensive user and college management
- Event Oversight: Monitor and manage all registered events
- Document Verification: Review and approve/reject submitted documents
- Attendance Tracking: Mark and track participant attendance
- Payment Management: Verify and manage payment statuses
- Reporting: Generate reports and export data to Excel/PDF
- Event Categories: Organized events by cultural categories
- Participant Limits: Configurable maximum participants per event
- Registration Tracking: Real-time registration counts and availability
- Prize Management: Track winners and prize distributions
- Email Notifications: Automated emails for registration confirmations, updates, and reminders
- OTP Verification: Secure email-based OTP system for account verification
- Bulk Communications: Mass email capabilities for important announcements
- Search & Filtering: Advanced search across registrations, events, and users
- Data Export: Export data to Excel and PDF formats
- Real-time Updates: Live dashboard with real-time statistics
- Responsive Design: Mobile-first design with Tailwind CSS
- Dark/Light Theme: Theme switching capability
- Next.js 15: React framework with App Router
- TypeScript: Type-safe JavaScript
- Tailwind CSS: Utility-first CSS framework
- shadcn/ui: Modern component library built on Radix UI and Tailwind CSS
- Radix UI: Accessible component primitives
- Framer Motion: Animation library
- React Hook Form: Form management with validation
- Zod: Schema validation
- Next.js API Routes: Server-side API endpoints
- Prisma: Database ORM with type safety
- PostgreSQL: Primary database
- Redis: Caching and session storage
- JWT (jose): Authentication tokens
- Bcrypt: Password hashing
- Uploadthing: File upload and storage
- Nodemailer: Email service
- Vercel Analytics: Usage analytics
- Arcjet: Security and rate limiting
- ESLint: Code linting
- TypeScript: Type checking
- Prisma Studio: Database management
- Tailwind CSS: Styling
- Users: College accounts with payment and verification status
- Registrants: Student participants with document links
- Events: Event definitions with capacity management
- EventRegistrations: Junction table for participant-event relationships
- Rate Limiting: API rate limiting with Arcjet
- Input Validation: Comprehensive input sanitization with Zod
- Authentication Middleware: Protected routes with session verification
- File Upload Security: Authenticated and validated file uploads
- Database Indexing: Optimized queries with proper indexing
- Caching: Redis caching for frequently accessed data
- Image Optimization: Next.js image optimization
- Code Splitting: Automatic code splitting and lazy loading
- Node.js 18+
- PostgreSQL database
- Redis instance
- Uploadthing account
- Email service (SMTP)
-
Clone the repository
git clone https://github.com/BhuvanSA/vtufest.git cd vtufest -
Install dependencies
npm install
-
Environment Setup Create a
.env.localfile with the following variables:DATABASE_URL="postgresql://username:password@localhost:5432/vtufest" JWT_SECRET="your-super-secret-jwt-key" JWT_EXPIRE="24h" REDIS_URL="redis://localhost:6379" UPLOADTHING_SECRET="your-uploadthing-secret" UPLOADTHING_APP_ID="your-uploadthing-app-id" SMTP_HOST="smtp.gmail.com" SMTP_PORT="587" SMTP_EMAIL="your-email@gmail.com" SMTP_PASSWORD="your-app-password" NEXT_PUBLIC_APP_URL="http://localhost:3000"
-
Database Setup
npx prisma generate npx prisma db push
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
vtufest/
βββ app/ # Next.js app directory
β βββ api/ # API routes
β βββ auth/ # Authentication pages
β βββ adminDashboard/ # Admin interface
β βββ register/ # Registration pages
β βββ ...
βββ components/ # Reusable UI components
βββ lib/ # Utility libraries
β βββ db.ts # Database connection
β βββ session.ts # JWT session management
β βββ ...
βββ prisma/ # Database schema and migrations
βββ public/ # Static assets
βββ utils/ # Helper utilities
POST /api/login- User loginPOST /api/signup- User registrationPOST /api/logout- User logoutPOST /api/resetpassword- Password reset
POST /api/register- College registrationPOST /api/eventsregister- Event registrationGET /api/getallregister- Get all registrations
POST /api/uploadthing/*- File upload endpoints
GET /api/getalleventregister- Get all event registrationsPOST /api/markverified- Verify documentsPOST /api/markattendance- Mark attendance
- Responsive Design: Optimized for all device sizes
- Accessibility: WCAG compliant with Radix UI components
- Modern UI: Clean, professional interface with Tailwind CSS
- Interactive Elements: Smooth animations with Framer Motion
- Loading States: Comprehensive loading indicators
- Error Handling: User-friendly error messages and validation
- Environment Variables: Sensitive data stored securely
- Input Sanitization: All inputs validated and sanitized
- Rate Limiting: API endpoints protected against abuse
- Session Security: HTTP-only, secure cookies with proper expiration
- File Upload Security: Restricted file types and sizes
- Database Security: Parameterized queries with Prisma
- Fast Loading: Optimized bundle sizes and lazy loading
- Database Efficiency: Indexed queries and connection pooling
- Caching Strategy: Redis caching for improved response times
- Image Optimization: Automatic image compression and WebP conversion
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is proprietary software developed for Global Academy of Technology.
- Global Academy of Technology for the opportunity
- VTU for organizing the Youth Fest 2025
- The development team for their dedication
- Open source community for the amazing tools and libraries
For questions or support, please contact the development team at bhuvansa@bhuvansa.com
Built with β€οΈ for VTU Youth Fest 2025 - Brand Karnataka

