Skip to content

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

Notifications You must be signed in to change notification settings

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
📧 [email protected]
🔗 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

No packages published

Languages