# manikanta-achanta/springboot-30days architecture

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

- Interactive diagram: https://gitdiagram.com/manikanta-achanta/springboot-30days
- Repository: https://github.com/manikanta-achanta/springboot-30days

## Overview

This is a Spring Boot student-management API. Clients submit student requests to the REST controller, which maps and validates input, delegates CRUD and search operations to a service, and returns mapped responses. The service uses a JPA repository to access student records; the API also exposes name/age searches and pagination. The README is empty, so capabilities and relationships here are based on the sampled source and tree; database configuration and other controllers were not inspected.

Main entry points: [`springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/controller/StudentController2.java`](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/controller/StudentController2.java) (Student endpoints), [`springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/service/impl/StudentServiceImpl.java`](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/service/impl/StudentServiceImpl.java) (Student service), [`springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/repository/StudentRepository.java`](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/repository/StudentRepository.java) (Student repository), [`springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/exception/GlobalExceptionHandler.java`](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/exception/GlobalExceptionHandler.java) (Error handling)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["HTTP API"]
  node_controller["Student endpoints"]
  node_request["Request DTO"]
  node_response["Response DTOs"]
  node_apiresponse["API response<br/>[ApiResponse.java]"]
  node_exceptionhandler["Error handling"]
  node_errorresponse["Error response<br/>[ErrorResponse.java]"]
end

subgraph group_domain["Student Domain"]
  node_mapper["Student mapper<br/>[StudentMapper.java]"]
  node_servicecontract["Service contract"]
  node_service["Student service"]
end

subgraph group_persistence["Persistence"]
  node_student["Student entity<br/>[Student.java]"]
  node_repository["Student repository"]
  node_database[("Relational database")]
end

node_client(("API client"))

node_client -->|"HTTP requests"| node_controller
node_controller -->|"binds input"| node_request
node_controller -->|"maps students"| node_mapper
node_controller -->|"calls operations"| node_servicecontract
node_controller -->|"wraps results"| node_apiresponse
node_controller -->|"returns student DTOs"| node_response
node_service -->|"implements"| node_servicecontract
node_service -->|"queries and saves"| node_repository
node_repository -->|"persists records"| node_database
node_repository -->|"loads entities"| node_student
node_service -->|"uses records"| node_student
node_service -->|"raises not found"| node_exceptionhandler
node_exceptionhandler -->|"builds errors"| node_errorresponse

click node_controller "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/controller/StudentController2.java"
click node_request "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/StudentRequestDTO.java"
click node_response "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/StudentResponseDTO.java"
click node_apiresponse "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/ApiResponse.java"
click node_exceptionhandler "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/exception/GlobalExceptionHandler.java"
click node_errorresponse "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/ErrorResponse.java"
click node_mapper "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/mapper/StudentMapper.java"
click node_servicecontract "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/service/StudentService.java"
click node_service "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/service/impl/StudentServiceImpl.java"
click node_student "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/model/Student.java"
click node_repository "https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/repository/StudentRepository.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_controller,node_request,node_response,node_apiresponse,node_exceptionhandler,node_errorresponse,node_client toneBlue
class node_mapper,node_servicecontract,node_service toneAmber
class node_student,node_repository,node_database toneMint
```

## Components

### HTTP API

- [Student endpoints](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/controller/StudentController2.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/controller/StudentController2.java`
- [Request DTO](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/StudentRequestDTO.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/StudentRequestDTO.java`
- [Response DTOs](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/StudentResponseDTO.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/StudentResponseDTO.java`
- [API response](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/ApiResponse.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/ApiResponse.java`
- [Error handling](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/exception/GlobalExceptionHandler.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/exception/GlobalExceptionHandler.java`
- [Error response](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/ErrorResponse.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/dto/ErrorResponse.java`

### Student Domain

- [Student mapper](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/mapper/StudentMapper.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/mapper/StudentMapper.java`
- [Service contract](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/service/StudentService.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/service/StudentService.java`
- [Student service](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/service/impl/StudentServiceImpl.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/service/impl/StudentServiceImpl.java`

### Persistence

- [Student entity](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/model/Student.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/model/Student.java`
- [Student repository](https://github.com/manikanta-achanta/springboot-30days/blob/main/springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/repository/StudentRepository.java): `springboot-backend/src/main/java/com/manikanta/springboot_backend/basics/repository/StudentRepository.java`
- **Relational database**

### Other components

- **API client**

## Connections

- API client → Student endpoints: HTTP requests
- Student endpoints → Request DTO: binds input
- Student endpoints → Student mapper: maps students
- Student endpoints → Service contract: calls operations
- Student endpoints → API response: wraps results
- Student endpoints → Response DTOs: returns student DTOs
- Student service → Service contract: implements
- Student service → Student repository: queries and saves
- Student repository → Relational database: persists records
- Student repository → Student entity: loads entities
- Student service → Student entity: uses records
- Student service → Error handling: raises not found
- Error handling → Error response: builds errors
