SGGSIE&T Annual Sports Festival - A full-stack web platform for managing sports event registrations, admin operations, and showcasing tournament information with stunning 3D visuals.
- 3D Cinematic Intro - Three.js powered intro with cricket player animation and stadium environment
- GSAP Animation Timeline - Smooth, sequenced animations (player swing → ball flight → impact → logo reveal)
- Particle Effects - Dynamic particle bursts and visual effects
- Smart Fallback - 2D version for mobile/low-end devices
- Multi-Sport Support - Cricket, Volleyball, Chess, E-Games, Athletics, Badminton, and more
- Women's Tournament - Dedicated registration system with 3 categories
- Event Registration - Universal registration system for all sports events
- Payment Integration - Screenshot-based payment verification with Cloudinary
- Gallery Management - Admin-controlled event photo gallery
- Dashboard - Real-time statistics and overview
- Registration Management - Approve/reject registrations with status tracking
- Admin Management - Multi-admin system with role-based access
- Analytics - Comprehensive analytics for registrations and events
- Media Management - Upload and manage images via Cloudinary
- Neon Aesthetic - Futuristic neon blue/orange color scheme
- Responsive Design - Mobile-first approach with Tailwind CSS
- Smooth Animations - Framer Motion page transitions
- Custom Fonts - Orbitron & Rajdhani (sporty, futuristic)
Zenith-26/
├── frontend/ # React + Vite frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── context/ # React Context providers
│ │ ├── hooks/ # Custom React hooks
│ │ ├── services/ # API service layer
│ │ ├── config/ # Configuration files
│ │ └── styles/ # Global styles
│ ├── public/ # Static assets
│ └── package.json
├── backend/ # Node.js + Express backend
│ ├── controllers/ # Route controllers
│ ├── models/ # MongoDB schemas
│ ├── routes/ # API routes
│ ├── middleware/ # Custom middleware
│ ├── services/ # Business logic
│ ├── config/ # Server configuration
│ ├── scripts/ # Utility scripts
│ └── package.json
├── scripts/ # Deployment & maintenance scripts
├── docs/ # Documentation files
└── README.md # This file
- Framework: React 18 with Vite
- Styling: Tailwind CSS
- Animations: Framer Motion, GSAP, Lottie
- 3D Graphics: Three.js + React Three Fiber
- Routing: React Router DOM v6
- State Management: React Context API
- HTTP Client: Axios
- Notifications: React Toastify
- Runtime: Node.js
- Framework: Express.js
- Database: MongoDB with Mongoose
- Authentication: JWT (JSON Web Tokens)
- File Upload: Multer + Cloudinary
- Email: Nodemailer
- Security: bcrypt, helmet, cors
- Node.js >= 18.x
- npm >= 9.x
- MongoDB (local or Atlas)
- Cloudinary account (for image uploads)
git clone https://github.com/atharva038/Zenith-26.git
cd Zenith-26cd frontend
npm install
cp .env.example .env
# Configure environment variables
npm run devFrontend runs at: http://localhost:5173
cd backend
npm install
cp .env.example .env
# Configure MongoDB URI, JWT secret, Cloudinary credentials
npm run devBackend runs at: http://localhost:5000
VITE_API_URL=http://localhost:5000 # Development
# Production will auto-detectMONGODB_URI=mongodb://localhost:27017/zenith26
JWT_SECRET=your_jwt_secret_key
JWT_EXPIRE=7d
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USER=your_email@gmail.com
EMAIL_PASSWORD=your_app_password
NODE_ENV=development
PORT=5000npm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLintnpm run dev # Start with nodemon
npm start # Start production server# Create admin account
cd backend && node scripts/createAdmin.js
# Reset admin password
cd backend && node scripts/resetAdminPassword.js
# Upload images to Cloudinary
cd backend && node scripts/upload1stCategoryImages.js
# Deploy to production
./scripts/deploy.shSee backend/scripts/README.md and scripts/README.md for more details.
POST /api/auth/admin/login- Admin loginPOST /api/auth/verify- Verify JWT token
GET /api/admin/dashboard/stats- Dashboard statisticsGET /api/admin/admins- List all adminsDELETE /api/admin/admins/:id- Delete admin
GET /api/events- List all eventsPOST /api/events- Create event (admin)GET /api/events/:id- Get event detailsPUT /api/events/:id- Update event (admin)
POST /api/registrations- Create registrationGET /api/registrations- List registrations (admin)PATCH /api/registrations/:id/status- Update status (admin)
POST /api/women-tournament/register- Register for tournamentGET /api/women-tournament/admin/registrations- Get all registrations (admin)PATCH /api/women-tournament/:id/status- Update registration status (admin)
POST /api/media/upload- Upload image to CloudinaryGET /api/media- List all media (admin)
See API documentation for complete endpoint list.
/- Cinematic intro animation/home- Homepage with events overview/gameverse- Sports categories showcase/events- All events listing/events/:id- Event registration/women-tournament- Women's tournament registration/gallery- Photo gallery
/admin/login- Admin authentication/admin/dashboard- Overview & statistics/admin/events- Event management/admin/women-tournament- Women's tournament admin/admin/admins- Admin management/admin/gallery- Gallery management/admin/settings- Configuration settings
- Primary:
#00d4ff(Neon Blue) - Secondary:
#ff6b35(Neon Orange) - Accent:
#00ffff(Electric Cyan) - Background:
#0a0a0a(Dark) - Text:
#ffffff(White)
- Headings: Orbitron (Geometric, Futuristic)
- Body: Rajdhani (Clean, Modern, Sporty)
// In browser console
localStorage.removeItem('introPlayed');
// Refresh page./scripts/test-women-tournament.sh- Frontend README
- Backend README
- Backend Scripts
- Deployment Scripts
- Payment Integration
- Tab Position Fix
# Frontend
cd frontend
npm run build
# Deploy dist/ folder
# Backend
cd backend
npm start
# Or use PM2: pm2 start ecosystem.config.json./scripts/deploy.shThe app automatically detects environment:
- Development: Uses
http://localhost:5000 - Production: Uses
https://zenithapp-5onhx.ondigitalocean.app
- Fork the repository
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
This project is licensed under the MIT License.
- SGGSIE&T for organizing Zenith 2026
- All contributors and participants
- Open source community
- Email: zenith@sggs.ac.in
- GitHub: @atharva038
Made with ❤️ for Zenith 2026
Where Champions Rise 🏆