A scalable microservice-based quiz application built using Spring Boot, Spring Cloud, and Netflix Eureka. It allows creating, managing, and evaluating quizzes based on categorized questions.
- Tech Stack
- Microservices
- Architecture
- Setup Instructions
- API Endpoints
- Future Enhancements
- Author
- License
- Java 17+
- Spring Boot
- Spring Cloud Gateway
- Netflix Eureka
- Maven
- REST APIs
- Handles routing to backend services
- Discovers and manages service instances dynamically
- Manages quiz questions (CRUD + category filtering)
- Creates quizzes and evaluates submissions
Client → API Gateway → Quiz Service
↑
↓
Question Service
↑
↓
Eureka Service Registry
- Java 17+
- Maven
- Git
- Clone the repository
git clone https://github.com/mistrypavankumar/java-quiz-micro-service.git
cd java-quiz-micro-service
- Start Services (in order):
# Terminal 1
cd service-registry && mvn spring-boot:run
# Terminal 2
cd api-gateway && mvn spring-boot:run
# Terminal 3
cd question-service && mvn spring-boot:run
# Terminal 4
cd quiz-service && mvn spring-boot:run
API Gateway Default Port:
8765
Eureka Dashboard:http://localhost:8761
Method | Endpoint | Description |
---|---|---|
GET | /question/all |
Get all questions |
GET | /question/category/{category} |
Get questions by category |
POST | /question/add |
Add new question |
GET | /question/generate |
Generate questions for quiz |
POST | /question/getQuestions |
Get questions by ID |
POST | /question/getScore |
Submit quiz answers and get score |
Method | Endpoint | Description |
---|---|---|
POST | /quiz |
Create quiz |
GET | /quiz/{id} |
Get quiz by ID |
POST | /quiz/{id}/submit |
Submit quiz answers |
- Add user authentication and role-based access (JWT)
- Add Docker and Docker Compose support
- React.js-based frontend UI
- Score history per user
Pavan Kumar Mistry
📍 Glassboro, NJ
📧 [email protected]
🔗 LinkedIn | GitHub | Portfolio
This project is licensed under the MIT License. See the LICENSE file for details.