# saivamshi00/quizapp-monolithic architecture

> Architecture diagram of the GitHub repository saivamshi00/quizapp-monolithic, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-26). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/saivamshi00/quizapp-monolithic
- Repository: https://github.com/saivamshi00/quizapp-monolithic

## Overview

This is a Spring Boot quiz API. Clients can manage and browse categorized questions, create a quiz from randomly selected questions, retrieve its answer-free questions, and submit responses for scoring. Controllers delegate to services, which use Spring Data repositories for question and quiz persistence. The README is empty; the graph reflects the supplied source excerpts, so it does not infer additional capabilities or deployment details.

Main entry points: [`src/main/java/com/telusko/quizapp/service/QuizService.java`](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/service/QuizService.java) (Quiz Service), [`src/main/java/com/telusko/quizapp/service/QuestionService.java`](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/service/QuestionService.java) (Question Service), [`src/main/java/com/telusko/quizapp/controller/QuestionController.java`](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/controller/QuestionController.java) (Question Controller), [`src/main/java/com/telusko/quizapp/controller/QuizController.java`](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/controller/QuizController.java) (Quiz Controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["REST API"]
  node_question_controller["Question Controller"]
  node_quiz_controller["Quiz Controller"]
  node_application["Application Bootstrap"]
end

subgraph group_logic["Quiz Logic"]
  node_question_service["Question Service"]
  node_quiz_service["Quiz Service<br/>[QuizService.java]"]
  node_question["Question<br/>[Question.java]"]
  node_quiz["Quiz<br/>[Quiz.java]"]
  node_question_wrapper["Question Wrapper"]
  node_response["Quiz Response<br/>[Response.java]"]
end

subgraph group_storage["Persistence"]
  node_question_dao["Question Repository<br/>[QuestionDao.java]"]
  node_quiz_dao["Quiz Repository<br/>[QuizDao.java]"]
  node_database[("Relational Database")]
end

node_client(("API Client"))

node_client -->|"sends question requests"| node_question_controller
node_client -->|"sends quiz requests"| node_quiz_controller
node_question_controller -->|"delegates"| node_question_service
node_question_service -->|"returns results"| node_question_controller
node_quiz_controller -->|"delegates"| node_quiz_service
node_quiz_service -->|"returns results"| node_quiz_controller
node_question_service -->|"queries and saves"| node_question_dao
node_quiz_service -->|"selects random questions"| node_question_dao
node_quiz_service -->|"saves and loads quizzes"| node_quiz_dao
node_question_dao -->|"reads and writes questions"| node_database
node_quiz_dao -->|"reads and writes quizzes"| node_database
node_question_service -->|"handles question records"| node_question
node_quiz_service -->|"creates and reads quizzes"| node_quiz
node_quiz_service -->|"builds quiz questions"| node_question_wrapper
node_quiz_service -->|"scores submitted answers"| node_response

click node_question_controller "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/controller/QuestionController.java"
click node_quiz_controller "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/controller/QuizController.java"
click node_application "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/QuizappApplication.java"
click node_question_service "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/service/QuestionService.java"
click node_quiz_service "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/service/QuizService.java"
click node_question "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/model/Question.java"
click node_quiz "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/model/Quiz.java"
click node_question_wrapper "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/model/QuestionWrapper.java"
click node_response "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/model/Response.java"
click node_question_dao "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/dao/QuestionDao.java"
click node_quiz_dao "https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/dao/QuizDao.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_question_controller,node_quiz_controller,node_application,node_client toneBlue
class node_question_service,node_quiz_service,node_question,node_quiz,node_question_wrapper,node_response toneAmber
class node_question_dao,node_quiz_dao,node_database toneMint
```

## Components

### REST API

- [Question Controller](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/controller/QuestionController.java): `src/main/java/com/telusko/quizapp/controller/QuestionController.java`
- [Quiz Controller](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/controller/QuizController.java): `src/main/java/com/telusko/quizapp/controller/QuizController.java`
- [Application Bootstrap](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/QuizappApplication.java): `src/main/java/com/telusko/quizapp/QuizappApplication.java`

### Quiz Logic

- [Question Service](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/service/QuestionService.java): `src/main/java/com/telusko/quizapp/service/QuestionService.java`
- [Quiz Service](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/service/QuizService.java): `src/main/java/com/telusko/quizapp/service/QuizService.java`
- [Question](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/model/Question.java): `src/main/java/com/telusko/quizapp/model/Question.java`
- [Quiz](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/model/Quiz.java): `src/main/java/com/telusko/quizapp/model/Quiz.java`
- [Question Wrapper](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/model/QuestionWrapper.java): `src/main/java/com/telusko/quizapp/model/QuestionWrapper.java`
- [Quiz Response](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/model/Response.java): `src/main/java/com/telusko/quizapp/model/Response.java`

### Persistence

- [Question Repository](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/dao/QuestionDao.java): `src/main/java/com/telusko/quizapp/dao/QuestionDao.java`
- [Quiz Repository](https://github.com/saivamshi00/quizapp-monolithic/blob/master/src/main/java/com/telusko/quizapp/dao/QuizDao.java): `src/main/java/com/telusko/quizapp/dao/QuizDao.java`
- **Relational Database**

### Other components

- **API Client**

## Connections

- API Client → Question Controller: sends question requests
- API Client → Quiz Controller: sends quiz requests
- Question Controller → Question Service: delegates
- Question Service → Question Controller: returns results
- Quiz Controller → Quiz Service: delegates
- Quiz Service → Quiz Controller: returns results
- Question Service → Question Repository: queries and saves
- Quiz Service → Question Repository: selects random questions
- Quiz Service → Quiz Repository: saves and loads quizzes
- Question Repository → Relational Database: reads and writes questions
- Quiz Repository → Relational Database: reads and writes quizzes
- Question Service → Question: handles question records
- Quiz Service → Quiz: creates and reads quizzes
- Quiz Service → Question Wrapper: builds quiz questions
- Quiz Service → Quiz Response: scores submitted answers
