# navneettomar11/java architecture

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

- Interactive diagram: https://gitdiagram.com/navneettomar11/java
- Repository: https://github.com/navneettomar11/java

## Overview

This repository is a collection of separate Java/Spring examples rather than one integrated product: AI-assisted interview, resume, code, movie and math applications, plus a Drools rule-engine example and a Spring Cloud Gateway project. The typical user workflow enters through an endpoint or webhook, passes to a service, and returns a model-generated result; the PR bot is initiated by GitHub. The root README provides no capability overview, so this map follows the tree and sampled source. Gateway and Drools wiring is not established by the available excerpts.

Main entry points: [`spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/services/InterviewService.java`](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/services/InterviewService.java) (Interview Service), [`spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/services/ResumeReviewService.java`](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/services/ResumeReviewService.java) (Review Service), [`spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/services/ActorFilmService.java`](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/services/ActorFilmService.java) (Actor Film Service), [`spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/services/CodeReviewService.java`](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/services/CodeReviewService.java) (Code Review Service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interview["Interview Simulator"]
  node_interview_api["Interview API"]
  node_interview_service["Interview Service"]
  node_interview_memory["Conversation Memory<br/>[MemoryConfig.java]"]
  node_interview_result["Interview Response"]
end

subgraph group_resume["Resume Reviewer"]
  node_resume_api["Resume API"]
  node_resume_service["Review Service"]
  node_text_extractor["Text Extractor<br/>[TextExtractor.java]"]
  node_resume_result["Review Result<br/>[ResumeReview.java]"]
end

subgraph group_openai["AI Examples"]
  node_actor_api["Actor Film API"]
  node_actor_service["Actor Film Service"]
  node_movie_advisor["Movie Advisor<br/>[MovieAdvisor.java]"]
  node_movie_tools["Movie Tools<br/>[MovieTools.java]"]
  node_math_api["Math Tutor API"]
  node_math_service["Math Tutor Service"]
end

subgraph group_prbot["PR Review Bot"]
  node_webhook["GitHub Webhook"]
  node_pr_service["Pull Request Service"]
  node_review_service["Code Review Service"]
  node_review_prompt["Review Prompt"]
end

subgraph group_platform["Java Platform Examples"]
  node_rule_app["Drools Example"]
  node_rule_config["Drools Config<br/>[DroolConfig.java]"]
  node_discount_rule["Discount Rule<br/>[discount.drl]"]
  node_product_model["Product Model<br/>[Product.java]"]
  node_gateway_app["Gateway Application"]
  node_gateway_entities["Route and Service Entities<br/>[Route.java]"]
  node_gateway_schema[("Gateway Schema<br/>[schema.sql]")]
end

node_candidate(("Candidate"))
node_chat_model{{"Chat Model"}}
node_resume_user(("Resume Submitter"))
node_openai_user(("AI Example User"))
node_ollama{{"Ollama Model"}}
node_openai_model{{"OpenAI Model"}}
node_github(("GitHub"))

node_candidate -->|"submits interview"| node_interview_api
node_interview_api -->|"delegates"| node_interview_service
node_interview_service -->|"prompts"| node_chat_model
node_interview_service -->|"uses memory"| node_interview_memory
node_interview_service -->|"maps response"| node_interview_result
node_resume_user -->|"uploads resume"| node_resume_api
node_resume_api -->|"delegates"| node_resume_service
node_resume_service -->|"extracts text"| node_text_extractor
node_resume_service -->|"requests review"| node_chat_model
node_resume_service -->|"maps result"| node_resume_result
node_openai_user -->|"asks question"| node_actor_api
node_actor_api -->|"delegates"| node_actor_service
node_actor_service -->|"prompts"| node_ollama
node_actor_service -->|"adds advisor"| node_movie_advisor
node_actor_service -->|"enables tools"| node_movie_tools
node_openai_user -->|"asks concept"| node_math_api
node_math_api -->|"delegates"| node_math_service
node_math_service -->|"requests explanation"| node_openai_model
node_github -->|"sends event"| node_webhook
node_webhook -->|"dispatches PR"| node_pr_service
node_pr_service -->|"starts review"| node_review_service
node_review_service -->|"builds prompt"| node_review_prompt
node_review_service -->|"requests review"| node_chat_model

click node_interview_api "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/controller/InterviewController.java"
click node_interview_service "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/services/InterviewService.java"
click node_interview_memory "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/config/MemoryConfig.java"
click node_interview_result "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/model/InterviewResponse.java"
click node_resume_api "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/controller/ResumeReviewerController.java"
click node_resume_service "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/services/ResumeReviewService.java"
click node_text_extractor "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/utils/TextExtractor.java"
click node_resume_result "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/dto/ResumeReview.java"
click node_actor_api "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/controller/ActorFilmController.java"
click node_actor_service "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/services/ActorFilmService.java"
click node_movie_advisor "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/advisors/MovieAdvisor.java"
click node_movie_tools "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/tools/MovieTools.java"
click node_math_api "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/controller/MathTutorController.java"
click node_math_service "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/services/MathTutorService.java"
click node_webhook "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/controller/GithubWebhookController.java"
click node_pr_service "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/services/PullRequestService.java"
click node_review_service "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/services/CodeReviewService.java"
click node_review_prompt "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/prompts/CodeReviewPromptTemplate.java"
click node_rule_app "https://github.com/navneettomar11/java/blob/main/drool-rule-engine/src/main/java/com/nav/drools/DroolApplication.java"
click node_rule_config "https://github.com/navneettomar11/java/blob/main/drool-rule-engine/src/main/java/com/nav/drools/config/DroolConfig.java"
click node_discount_rule "https://github.com/navneettomar11/java/blob/main/drool-rule-engine/src/main/resources/rules/discount.drl"
click node_product_model "https://github.com/navneettomar11/java/blob/main/drool-rule-engine/src/main/java/com/nav/drools/models/Product.java"
click node_gateway_app "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-cloud/spring-cloud-gateway/src/main/java/com/nav/spring_boot/cloud/gateway/NavApiGatewayApplication.java"
click node_gateway_entities "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-cloud/spring-cloud-gateway/src/main/java/com/nav/spring_boot/cloud/gateway/database/entities/Route.java"
click node_gateway_schema "https://github.com/navneettomar11/java/blob/main/spring-boot/spring-cloud/spring-cloud-gateway/src/main/resources/schema.sql"

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_interview_api,node_interview_service,node_interview_memory,node_interview_result,node_openai_user toneBlue
class node_resume_api,node_resume_service,node_text_extractor,node_resume_result toneAmber
class node_actor_api,node_actor_service,node_movie_advisor,node_movie_tools,node_math_api,node_math_service toneMint
class node_webhook,node_pr_service,node_review_service,node_review_prompt toneRose
class node_rule_app,node_rule_config,node_discount_rule,node_product_model,node_gateway_app,node_gateway_entities,node_gateway_schema,node_candidate,node_chat_model,node_resume_user,node_ollama,node_openai_model,node_github toneIndigo
```

## Components

### Interview Simulator

- [Interview API](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/controller/InterviewController.java): `spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/controller/InterviewController.java`
- [Interview Service](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/services/InterviewService.java): `spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/services/InterviewService.java`
- [Conversation Memory](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/config/MemoryConfig.java): `spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/config/MemoryConfig.java`
- [Interview Response](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/model/InterviewResponse.java): `spring-boot/spring-ai/ai-interview-simulator/src/main/java/com/nav/spring_boot/ai/is/model/InterviewResponse.java`

### Resume Reviewer

- [Resume API](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/controller/ResumeReviewerController.java): `spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/controller/ResumeReviewerController.java`
- [Review Service](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/services/ResumeReviewService.java): `spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/services/ResumeReviewService.java`
- [Text Extractor](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/utils/TextExtractor.java): `spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/utils/TextExtractor.java`
- [Review Result](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/dto/ResumeReview.java): `spring-boot/spring-ai/ai-resume-reviewer/src/main/java/com/nav/spring_boot/ai/rr/dto/ResumeReview.java`

### AI Examples

- [Actor Film API](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/controller/ActorFilmController.java): `spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/controller/ActorFilmController.java`
- [Actor Film Service](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/services/ActorFilmService.java): `spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/services/ActorFilmService.java`
- [Movie Advisor](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/advisors/MovieAdvisor.java): `spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/advisors/MovieAdvisor.java`
- [Movie Tools](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/tools/MovieTools.java): `spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/tools/MovieTools.java`
- [Math Tutor API](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/controller/MathTutorController.java): `spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/controller/MathTutorController.java`
- [Math Tutor Service](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/services/MathTutorService.java): `spring-boot/spring-ai/ai-openai-examples/src/main/java/com/nav/spring_boot/ai/openai/services/MathTutorService.java`

### PR Review Bot

- [GitHub Webhook](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/controller/GithubWebhookController.java): `spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/controller/GithubWebhookController.java`
- [Pull Request Service](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/services/PullRequestService.java): `spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/services/PullRequestService.java`
- [Code Review Service](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/services/CodeReviewService.java): `spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/services/CodeReviewService.java`
- [Review Prompt](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/prompts/CodeReviewPromptTemplate.java): `spring-boot/spring-ai/ai-pr-review-bot/src/main/java/com/nav/springboot/ai/prreviewbot/prompts/CodeReviewPromptTemplate.java`

### Java Platform Examples

- [Drools Example](https://github.com/navneettomar11/java/blob/main/drool-rule-engine/src/main/java/com/nav/drools/DroolApplication.java): `drool-rule-engine/src/main/java/com/nav/drools/DroolApplication.java`
- [Drools Config](https://github.com/navneettomar11/java/blob/main/drool-rule-engine/src/main/java/com/nav/drools/config/DroolConfig.java): `drool-rule-engine/src/main/java/com/nav/drools/config/DroolConfig.java`
- [Discount Rule](https://github.com/navneettomar11/java/blob/main/drool-rule-engine/src/main/resources/rules/discount.drl): `drool-rule-engine/src/main/resources/rules/discount.drl`
- [Product Model](https://github.com/navneettomar11/java/blob/main/drool-rule-engine/src/main/java/com/nav/drools/models/Product.java): `drool-rule-engine/src/main/java/com/nav/drools/models/Product.java`
- [Gateway Application](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-cloud/spring-cloud-gateway/src/main/java/com/nav/spring_boot/cloud/gateway/NavApiGatewayApplication.java): `spring-boot/spring-cloud/spring-cloud-gateway/src/main/java/com/nav/spring_boot/cloud/gateway/NavApiGatewayApplication.java`
- [Route and Service Entities](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-cloud/spring-cloud-gateway/src/main/java/com/nav/spring_boot/cloud/gateway/database/entities/Route.java): `spring-boot/spring-cloud/spring-cloud-gateway/src/main/java/com/nav/spring_boot/cloud/gateway/database/entities/Route.java`
- [Gateway Schema](https://github.com/navneettomar11/java/blob/main/spring-boot/spring-cloud/spring-cloud-gateway/src/main/resources/schema.sql): `spring-boot/spring-cloud/spring-cloud-gateway/src/main/resources/schema.sql`

### Other components

- **Candidate**
- **Chat Model**
- **Resume Submitter**
- **AI Example User**
- **Ollama Model**
- **OpenAI Model**
- **GitHub**

## Connections

- Candidate → Interview API: submits interview
- Interview API → Interview Service: delegates
- Interview Service → Chat Model: prompts
- Interview Service → Conversation Memory: uses memory
- Interview Service → Interview Response: maps response
- Resume Submitter → Resume API: uploads resume
- Resume API → Review Service: delegates
- Review Service → Text Extractor: extracts text
- Review Service → Chat Model: requests review
- Review Service → Review Result: maps result
- AI Example User → Actor Film API: asks question
- Actor Film API → Actor Film Service: delegates
- Actor Film Service → Ollama Model: prompts
- Actor Film Service → Movie Advisor: adds advisor
- Actor Film Service → Movie Tools: enables tools
- AI Example User → Math Tutor API: asks concept
- Math Tutor API → Math Tutor Service: delegates
- Math Tutor Service → OpenAI Model: requests explanation
- GitHub → GitHub Webhook: sends event
- GitHub Webhook → Pull Request Service: dispatches PR
- Pull Request Service → Code Review Service: starts review
- Code Review Service → Review Prompt: builds prompt
- Code Review Service → Chat Model: requests review
