Create quizzes. Host coding contests. Track leaderboards. Generate certificates.
All in one beautifully designed, real-time platform.
π Live Demo Β β’Β π Documentation Β β’Β π Report Bug Β β’Β π‘ Request Feature
| Feature | Description |
|---|---|
| ποΈ Organization Management | Multi-tenant support β each org gets its own dashboard, events, and student roster |
| π MCQ Quiz Engine | Create timed quizzes with single/multiple-choice questions, auto-grading, and analytics |
| π» Coding Contests | Full-featured coding contest system with problem management, test cases, and submissions |
| π Real-time Leaderboards | WebSocket-powered live leaderboards that update as students submit |
| π Certificate Generation | Auto-generate participation & rank certificates (PDF-ready) |
| π€ Editable Profiles | Students can edit their username, full name, roll number, university/college, and academic year |
| π Role-Based Access | Student, Org Admin, and Super Admin roles with fine-grained permissions |
| π Dark / Light Theme | Premium glassmorphism UI with automatic theme switching |
| π± Fully Responsive | Works beautifully on desktop, tablet, and mobile |
- React 18 β Component-based UI with hooks
- Vite 5 β Lightning-fast HMR and build
- React Router v6 β Client-side routing
- Axios β HTTP client with interceptors
- SockJS + STOMP β WebSocket real-time communication
- React Toastify β Toast notifications
- TailwindCSS β Utility-first CSS framework
- Custom CSS β Glassmorphism, gradients, micro-animations
- Spring Boot 3 β RESTful API framework
- Spring Security + JWT β Authentication & authorization
- MongoDB β NoSQL document database
- WebSocket (STOMP) β Real-time event broadcasting
- Lombok β Boilerplate reduction
EventProject/
βββ event-frontend/ # React + Vite frontend
β βββ src/
β β βββ components/ # Reusable components (Navbar, etc.)
β β βββ context/ # Auth context provider
β β βββ pages/ # Route pages (Dashboard, Profile, Quizβ¦)
β β βββ services/ # API service layer
β β βββ styles/ # Custom CSS modules
β βββ index.html
β βββ vite.config.js
β
βββ src/main/java/com/company/event/ # Spring Boot Backend
β βββ user/ # User entity, controller, service
β βββ quiz/ # MCQ quiz engine
β βββ contestPackage/ # Coding contest system
β βββ organization/ # Organization management
β βββ security/ # JWT auth, filters, config
β βββ websocket/ # Real-time WebSocket service
β
βββ pom.xml # Maven dependencies
βββ README.md
Ensure you have the following installed:
| Tool | Version | Download |
|---|---|---|
| Node.js | β₯ 18.x | nodejs.org |
| npm | β₯ 9.x | Comes with Node.js |
| Java JDK | β₯ 17 | adoptium.net |
| Maven | β₯ 3.8 | maven.apache.org |
| MongoDB | β₯ 6.x | mongodb.com |
git clone https://github.com/krishna3163/EventProject.git
cd EventProject# Set environment variables (or add to application.properties)
# SPRING_DATA_MONGODB_URI=mongodb://localhost:27017/eventdb
# JWT_SECRET=your-secret-key
# Build & run the Spring Boot server
mvn clean install -DskipTests
mvn spring-boot:runThe backend will start on http://localhost:8080.
cd event-frontend
# Install dependencies
npm install
# Create .env file (optional β defaults to localhost:8080)
echo "VITE_API_BASE_URL=http://localhost:8080" > .env
# Start the dev server
npm run devThe frontend will start on http://localhost:5173.
| Field | Value |
|---|---|
| Username | admin |
| Password | admin123 |
β οΈ Change the default admin password in production!
Users can edit the following fields from their profile page:
| Field | Description | Example |
|---|---|---|
| Username | Unique identifier | john_doe |
| First Name | Given name | John |
| Last Name | Family name | Doe |
| Contact email | [email protected] |
|
| University / College | Institution name | IIT Delhi |
| Roll Number | Student ID | 22CS104 |
| Academic Year | Current year of study | 3rd Year |
| Department | Branch/major | Computer Science |
- Log in to your account
- Click on your avatar or navigate to
/profile - Click the βοΈ Edit Profile button
- Modify any editable field
- Click Save Changes β updates are sent to the backend via
PATCH /api/users/me/profile
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/login |
Login with username/email + password |
| POST | /api/auth/register/student |
Register a new student |
| POST | /api/auth/register/organization |
Register a new organization |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/users/me |
Get current user profile |
| PATCH | /api/users/me/profile |
Update own profile fields |
| GET | /user/getById/{id} |
Get user by ID |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/events/getAllEvent |
List all events |
| POST | /api/events/createEvent |
Create a new event (admin) |
| POST | /api/mcq/start/{eventId} |
Start a quiz |
| POST | /api/mcq/submit/{eventId} |
Submit quiz answers |
| Method | Endpoint | Description |
|---|---|---|
| GET | /contest/getAll |
List all contests |
| POST | /submission/run |
Run code against test cases |
| POST | /submission |
Submit a solution |
| GET | /leaderboard/{contestId} |
Get contest leaderboard |
We welcome contributions! Here's how to get started:
- 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
- Frontend hot-reload is enabled via Vite β just save your files
- Backend changes require a restart (or use Spring DevTools for auto-reload)
- The API service layer (
src/services/api.js) centralizes all API calls β add new endpoints there - CSS styles follow a glassmorphism design system β check
styles/LandingPage.cssfor patterns
The frontend is Vercel-ready:
cd event-frontend
npm run build
# Deploy the 'dist' folder to VercelDeploy the Spring Boot JAR to any cloud provider:
mvn clean package -DskipTests
java -jar target/event-0.0.1-SNAPSHOT.jarSet these environment variables in production:
SPRING_DATA_MONGODB_URIβ MongoDB connection stringJWT_SECRETβ Secret key for JWT tokensSPRING_PROFILES_ACTIVE=prod
This project is licensed under the MIT License β see the LICENSE file for details.
Built with β€οΈ for the developer community
β Star this repo if you found it useful!