Quick reference to all files in the Online Quiz System project.
| File | Description | Lines | Purpose |
|---|---|---|---|
README.md |
Main documentation | ~400 | Complete project overview, setup, usage |
SETUP_GUIDE.md |
Installation guide | ~300 | Step-by-step setup instructions |
NETWORK_CONCEPTS.md |
Concept explanations | ~500 | Detailed network concept documentation |
QUICK_START.md |
Quick reference | ~250 | Fast setup and command reference |
PROJECT_SUMMARY.md |
Project overview | ~400 | High-level project summary |
FILE_INDEX.md |
This file | ~150 | Complete file listing and reference |
| File | Description | Purpose |
|---|---|---|
pom.xml |
Maven configuration | Dependencies, build settings, project info |
.gitignore |
Git ignore rules | Exclude build files, IDE files from version control |
src/main/resources/application.properties |
App configuration | Server ports, logging, application settings |
| File | Platform | Description |
|---|---|---|
run-server.bat |
Windows | Start the quiz server |
run-client.bat |
Windows | Start a quiz client |
| File | Package | Description | Network Concept |
|---|---|---|---|
QuizApplication.java |
com.quiz |
Spring Boot main class | - |
| File | Package | Description | Key Features |
|---|---|---|---|
Question.java |
com.quiz.model |
Quiz question model | Serializable, contains options |
Player.java |
com.quiz.model |
Player data model | Synchronized score updates |
QuizMessage.java |
com.quiz.model |
Message protocol | Enum types, JSON serialization |
| File | Package | Description | Network Concept |
|---|---|---|---|
QuizService.java |
com.quiz.service |
Quiz logic & state | Synchronization β |
Key Methods:
addPlayer()- Synchronized player additioncheckAnswer()- Thread-safe score updategetLeaderboard()- Sorted player list
| File | Package | Description | Network Concept |
|---|---|---|---|
QuizServer.java |
com.quiz.server |
Main server | TCP Socket β + Multithreading β |
ClientHandler.java |
com.quiz.server |
Client thread handler | Multithreading β |
UDPBroadcaster.java |
com.quiz.server |
UDP broadcaster | UDP Broadcasting β |
QuizServer.java Features:
- TCP ServerSocket on port 5000
- Thread pool (ExecutorService)
- Client connection management
- Quiz flow control
ClientHandler.java Features:
- Implements Runnable
- Handles individual client
- Manages client lifecycle
- Sends/receives messages
UDPBroadcaster.java Features:
- DatagramSocket
- Broadcast address (255.255.255.255)
- Sends final results
| File | Package | Description | Network Concept |
|---|---|---|---|
QuizClient.java |
com.quiz.client |
Client application | Client-Server β |
UDPResultsListener.java |
com.quiz.client |
UDP receiver | UDP Broadcasting β |
QuizClient.java Features:
- TCP Socket connection
- Console-based UI
- Message handling
- Answer submission
UDPResultsListener.java Features:
- Implements Runnable
- Listens on UDP port 5001
- Receives broadcast messages
- Displays final results
| File | Package | Description | Endpoints |
|---|---|---|---|
QuizController.java |
com.quiz.controller |
REST API | /api/quiz/info, /api/quiz/leaderboard, /api/quiz/players |
| File | Location | Description | Technology |
|---|---|---|---|
index.html |
src/main/resources/static/ |
Main web page | HTML5 |
styles.css |
src/main/resources/static/ |
Styling | CSS3 |
script.js |
src/main/resources/static/ |
Frontend logic | JavaScript (ES6) |
index.html Features:
- Server status display
- Leaderboard view
- Network concepts showcase
- Instructions
styles.css Features:
- Modern gradient design
- Responsive layout
- Card-based UI
- Animations
script.js Features:
- API calls
- Auto-refresh (5s)
- Dynamic leaderboard
- Error handling
| Type | Count | Purpose |
|---|---|---|
| Java Files | 11 | Application logic |
| Documentation | 6 | Project documentation |
| Configuration | 3 | Build & app config |
| Web Files | 3 | Frontend UI |
| Scripts | 2 | Launchers |
| Total | 25 | Complete project |
| Concept | Files | Lines |
|---|---|---|
| TCP Socket | 2 | ~300 |
| Multithreading | 2 | ~250 |
| Synchronization | 2 | ~200 |
| UDP Broadcasting | 2 | ~150 |
| Client-Server | 11 | ~800 |
| Category | Files | Approx. Lines |
|---|---|---|
| Java Source | 11 | ~1,500 |
| Documentation | 6 | ~2,000 |
| Web Frontend | 3 | ~500 |
| Configuration | 3 | ~100 |
| Total | 23 | ~4,100 |
MCQ spring/
β
βββ π Documentation (Root Level)
β βββ README.md
β βββ SETUP_GUIDE.md
β βββ NETWORK_CONCEPTS.md
β βββ QUICK_START.md
β βββ PROJECT_SUMMARY.md
β βββ FILE_INDEX.md
β
βββ βοΈ Configuration (Root Level)
β βββ pom.xml
β βββ .gitignore
β βββ run-server.bat
β βββ run-client.bat
β
βββ π src/main/
β β
β βββ π java/com/quiz/
β β β
β β βββ π QuizApplication.java
β β β
β β βββ π model/
β β β βββ Question.java
β β β βββ Player.java
β β β βββ QuizMessage.java
β β β
β β βββ π service/
β β β βββ QuizService.java
β β β
β β βββ π server/
β β β βββ QuizServer.java
β β β βββ ClientHandler.java
β β β βββ UDPBroadcaster.java
β β β
β β βββ π client/
β β β βββ QuizClient.java
β β β βββ UDPResultsListener.java
β β β
β β βββ π controller/
β β βββ QuizController.java
β β
β βββ π resources/
β βββ application.properties
β βββ π static/
β βββ index.html
β βββ styles.css
β βββ script.js
β
βββ π target/ (Generated by Maven)
βββ online-quiz-system-1.0.0.jar
Server port?
β src/main/resources/application.properties
Questions?
β src/main/java/com/quiz/service/QuizService.java (line ~30)
Client connection settings?
β src/main/java/com/quiz/client/QuizClient.java (line ~20)
Web UI appearance?
β src/main/resources/static/styles.css
Web UI content?
β src/main/resources/static/index.html
API endpoints?
β src/main/java/com/quiz/controller/QuizController.java
Thread pool size?
β src/main/resources/application.properties (quiz.server.max.clients)
Message protocol?
β src/main/java/com/quiz/model/QuizMessage.java
README.md- Project overviewQUICK_START.md- Quick setupNETWORK_CONCEPTS.md- Concept details
SETUP_GUIDE.md- Installationpom.xml- Dependenciesapplication.properties- Configuration
QuizApplication.java- Entry pointQuizMessage.java- ProtocolQuizServer.java- Server logicQuizClient.java- Client logicQuizService.java- Business logic
index.html- Structurestyles.css- Stylingscript.js- Interactivity
Primary Files:
QuizServer.java- Main server implementationapplication.properties- Port configuration
Reference:
README.md- TCP socket documentationNETWORK_CONCEPTS.md- TCP explanation
Primary Files:
ClientHandler.java- Thread implementationQuizServer.java- Thread pool management
Reference:
NETWORK_CONCEPTS.md- Multithreading sectionQuizService.java- Shared resource usage
Primary Files:
QuizClient.java- Client implementationQuizMessage.java- Message protocol
Reference:
NETWORK_CONCEPTS.md- Client-server sectionREADME.md- Communication flow
Primary Files:
QuizService.java- Synchronized methodsPlayer.java- Score management
Reference:
NETWORK_CONCEPTS.md- Synchronization sectionREADME.md- Thread safety
Primary Files:
UDPBroadcaster.java- UDP senderUDPResultsListener.java- UDP receiver
Reference:
NETWORK_CONCEPTS.md- UDP sectionREADME.md- Broadcasting explanation
QuizApplication.java
βββ QuizServer.java
βββ QuizService.java
βββ ClientHandler.java
βββ UDPBroadcaster.java
QuizClient.java
βββ QuizMessage.java
βββ UDPResultsListener.java
QuizService.java
βββ Question.java
βββ Player.java
βββ QuizMessage.java
index.html
βββ styles.css
βββ script.js
βββ QuizController.java (REST API)
β
All files created
β
All features implemented
β
Documentation complete
β
Ready for deployment
Network Concepts:
QuizServer.java- TCP + MultithreadingQuizService.java- SynchronizationUDPBroadcaster.java- UDP BroadcastingQuizClient.java- Client-Server Communication
Documentation Quality:
README.md- CompletenessNETWORK_CONCEPTS.md- Depth- Code comments - Clarity
Code Quality:
- Package structure - Organization
- Error handling - Robustness
- Thread safety - Correctness
# Documentation
cat README.md
cat SETUP_GUIDE.md
cat NETWORK_CONCEPTS.md
# Configuration
cat pom.xml
cat src/main/resources/application.properties
# Java Source
cat src/main/java/com/quiz/QuizApplication.java
cat src/main/java/com/quiz/server/QuizServer.java
cat src/main/java/com/quiz/client/QuizClient.java
# Web Files
cat src/main/resources/static/index.html# Find all synchronized methods
grep -r "synchronized" src/
# Find all socket operations
grep -r "Socket" src/
# Find all thread operations
grep -r "Thread" src/- README.md
- SETUP_GUIDE.md
- NETWORK_CONCEPTS.md
- QUICK_START.md
- PROJECT_SUMMARY.md
- FILE_INDEX.md
- pom.xml
- application.properties
- .gitignore
- QuizApplication.java
- Model classes (3)
- Service classes (1)
- Server classes (3)
- Client classes (2)
- Controller classes (1)
- index.html
- styles.css
- script.js
- run-server.bat
- run-client.bat
Total Files: 25
Status: β
COMPLETE
Ready for: Deployment & Demonstration
This index provides a complete reference to all project files.