Skip to content

mistrypavankumar/java-quiz-micro-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠 Java Quiz Microservice System

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.

📚 Table of Contents

🔧 Tech Stack

  • Java 17+
  • Spring Boot
  • Spring Cloud Gateway
  • Netflix Eureka
  • Maven
  • REST APIs

🧩 Microservices

🧭 API Gateway

  • Handles routing to backend services

🧾 Service Registry (Eureka)

  • Discovers and manages service instances dynamically

❓ Question Service

  • Manages quiz questions (CRUD + category filtering)

📝 Quiz Service

  • Creates quizzes and evaluates submissions

🏗️ Architecture

Client → API Gateway → Quiz Service
                         ↑
                         ↓
                 Question Service
                         ↑
                         ↓
                Eureka Service Registry

🚀 Setup Instructions

Prerequisites

  • Java 17+
  • Maven
  • Git

Steps

  1. Clone the repository
git clone https://github.com/mistrypavankumar/java-quiz-micro-service.git
cd java-quiz-micro-service
  1. 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

🌐 API Endpoints

Question Service

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

Quiz Service

Method Endpoint Description
POST /quiz Create quiz
GET /quiz/{id} Get quiz by ID
POST /quiz/{id}/submit Submit quiz answers

🔮 Future Enhancements

  • Add user authentication and role-based access (JWT)
  • Add Docker and Docker Compose support
  • React.js-based frontend UI
  • Score history per user

👨‍💻 Author

Pavan Kumar Mistry
📍 Glassboro, NJ
📧 mistrypavankumar2304@gmail.com
🔗 LinkedIn | GitHub | Portfolio

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

About

A Java-based microservice quiz platform using Spring Boot, Spring Cloud Gateway, and Eureka. Features quiz creation, question management, and result evaluation.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages