# pranay0904/ai-interview-assist-backend architecture

> Architecture diagram of the GitHub repository pranay0904/ai-interview-assist-backend, 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/pranay0904/ai-interview-assist-backend
- Repository: https://github.com/pranay0904/ai-interview-assist-backend

## Overview

This repository is a Spring Boot backend for an AI interview platform. Its tree identifies authentication, resume handling and analysis, persistence, and security components, but the README provides no workflow details and no source excerpts are available. The graph therefore shows these components without inferring calls, data flow, or external integrations.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API"]
  node_auth_controller["Authentication API"]
  node_resume_controller["Resume API"]
end

subgraph group_services["Domain services"]
  node_user_service["User service"]
  node_resume_service["Resume service"]
  node_analysis_service["Resume analysis"]
  node_pdf_util["PDF utility<br/>[PdfUtil.java]"]
end

subgraph group_identity["Identity and security"]
  node_jwt_service["JWT service<br/>[JwtService.java]"]
  node_jwt_filter["JWT filter"]
  node_user_details["User details"]
  node_security_config["Security config"]
end

subgraph group_data["Persistence"]
  node_user_entity["User record<br/>[User.java]"]
  node_resume_entity["Resume record<br/>[Resume.java]"]
  node_user_repository["User repository"]
  node_resume_repository["Resume repository"]
end

click node_auth_controller "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/controller/AuthController.java"
click node_resume_controller "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/controller/ResumeController.java"
click node_user_service "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/UserServiceImpl.java"
click node_resume_service "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/ResumeServiceImpl.java"
click node_analysis_service "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/ResumeAnalysisServiceImpl.java"
click node_pdf_util "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/util/PdfUtil.java"
click node_jwt_service "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/JwtService.java"
click node_jwt_filter "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/JwtAuthenticationFilter.java"
click node_user_details "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/CustomUserDetailsService.java"
click node_security_config "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/config/SecurityConfig.java"
click node_user_entity "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/entity/User.java"
click node_resume_entity "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/entity/Resume.java"
click node_user_repository "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/repository/UserRepository.java"
click node_resume_repository "https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/repository/ResumeRepository.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_auth_controller,node_resume_controller toneBlue
class node_user_service,node_resume_service,node_analysis_service,node_pdf_util toneAmber
class node_jwt_service,node_jwt_filter,node_user_details,node_security_config toneMint
class node_user_entity,node_resume_entity,node_user_repository,node_resume_repository toneRose
```

## Components

### API

- [Authentication API](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/controller/AuthController.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/controller/AuthController.java`
- [Resume API](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/controller/ResumeController.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/controller/ResumeController.java`

### Domain services

- [User service](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/UserServiceImpl.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/UserServiceImpl.java`
- [Resume service](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/ResumeServiceImpl.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/ResumeServiceImpl.java`
- [Resume analysis](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/ResumeAnalysisServiceImpl.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/service/impl/ResumeAnalysisServiceImpl.java`
- [PDF utility](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/util/PdfUtil.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/util/PdfUtil.java`

### Identity and security

- [JWT service](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/JwtService.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/JwtService.java`
- [JWT filter](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/JwtAuthenticationFilter.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/JwtAuthenticationFilter.java`
- [User details](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/CustomUserDetailsService.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/security/CustomUserDetailsService.java`
- [Security config](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/config/SecurityConfig.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/config/SecurityConfig.java`

### Persistence

- [User record](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/entity/User.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/entity/User.java`
- [Resume record](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/entity/Resume.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/entity/Resume.java`
- [User repository](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/repository/UserRepository.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/repository/UserRepository.java`
- [Resume repository](https://github.com/pranay0904/ai-interview-assist-backend/blob/main/ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/repository/ResumeRepository.java): `ai-interview-assist-backend/src/main/java/com/example/aiinterviewassist/repository/ResumeRepository.java`
