# charanrao543/salessavvy architecture

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

- Interactive diagram: https://gitdiagram.com/charanrao543/salessavvy
- Repository: https://github.com/charanrao543/salessavvy

## Overview

SalesSavvy appears to be a Spring application for product and user management with authentication. The visible API surface is split across authentication, product, and user controllers; corresponding services, repositories, and domain entities are present. The tree does not include a README or source excerpts, so internal calls, persistence configuration, and the exact user-to-result flow cannot be verified. The graph therefore shows only the apparent API entry points and omits speculative wiring.

Main entry points: [`SalesSavvy/src/main/java/com/example/project/salessavvy/controller/AuthController.java`](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/AuthController.java) (Auth API), [`SalesSavvy/src/main/java/com/example/project/salessavvy/controller/ProductController.java`](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/ProductController.java) (Product API), [`SalesSavvy/src/main/java/com/example/project/salessavvy/controller/UserController.java`](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/UserController.java) (User API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["API"]
  node_auth_controller["Auth API"]
  node_product_controller["Product API"]
  node_user_controller["User API"]
  node_app["Application"]
end

subgraph group_services["Services"]
  node_auth_service["Auth service<br/>[AuthService.java]"]
  node_product_service["Product service"]
  node_user_service["User service<br/>[UserService.java]"]
end

subgraph group_domain["Domain"]
  node_login_request["Login request<br/>[LoginRequest.java]"]
  node_product["Product<br/>[Product.java]"]
  node_category["Category<br/>[Category.java]"]
  node_product_image["Product image<br/>[ProductImage.java]"]
  node_user["User<br/>[User.java]"]
  node_role["Role<br/>[Role.java]"]
  node_jwt_token["JWT token<br/>[JWTToken.java]"]
end

subgraph group_persistence["Persistence"]
  node_product_repo["Product repository"]
  node_category_repo["Category repository"]
  node_image_repo["Image repository"]
  node_user_repo["User repository"]
  node_token_repo["Token repository"]
end

node_shopper(("API user"))

node_shopper -->|"requests auth"| node_auth_controller
node_shopper -->|"requests products"| node_product_controller
node_shopper -->|"requests users"| node_user_controller

click node_auth_controller "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/AuthController.java"
click node_product_controller "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/ProductController.java"
click node_user_controller "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/UserController.java"
click node_login_request "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/dto/LoginRequest.java"
click node_auth_service "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/service/AuthService.java"
click node_product_service "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/service/ProductService.java"
click node_user_service "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/service/UserService.java"
click node_product "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Product.java"
click node_category "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Category.java"
click node_product_image "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/ProductImage.java"
click node_user "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/User.java"
click node_role "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Role.java"
click node_jwt_token "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/JWTToken.java"
click node_product_repo "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/ProductRepository.java"
click node_category_repo "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/CategoryRepository.java"
click node_image_repo "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/ProductImageRepository.java"
click node_user_repo "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/UserRepository.java"
click node_token_repo "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/JWTTokenRepository.java"
click node_app "https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/SalesSavvyApplication.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_product_controller,node_user_controller,node_app,node_shopper toneBlue
class node_auth_service,node_product_service,node_user_service toneAmber
class node_login_request,node_product,node_category,node_product_image,node_user,node_role,node_jwt_token toneMint
class node_product_repo,node_category_repo,node_image_repo,node_user_repo,node_token_repo toneRose
```

## Components

### API

- [Auth API](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/AuthController.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/controller/AuthController.java`
- [Product API](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/ProductController.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/controller/ProductController.java`
- [User API](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/controller/UserController.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/controller/UserController.java`
- [Application](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/SalesSavvyApplication.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/SalesSavvyApplication.java`

### Services

- [Auth service](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/service/AuthService.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/service/AuthService.java`
- [Product service](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/service/ProductService.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/service/ProductService.java`
- [User service](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/service/UserService.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/service/UserService.java`

### Domain

- [Login request](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/dto/LoginRequest.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/dto/LoginRequest.java`
- [Product](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Product.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Product.java`
- [Category](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Category.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Category.java`
- [Product image](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/ProductImage.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/entities/ProductImage.java`
- [User](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/User.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/entities/User.java`
- [Role](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Role.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/entities/Role.java`
- [JWT token](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/entities/JWTToken.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/entities/JWTToken.java`

### Persistence

- [Product repository](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/ProductRepository.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/repository/ProductRepository.java`
- [Category repository](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/CategoryRepository.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/repository/CategoryRepository.java`
- [Image repository](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/ProductImageRepository.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/repository/ProductImageRepository.java`
- [User repository](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/UserRepository.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/repository/UserRepository.java`
- [Token repository](https://github.com/charanrao543/salessavvy/blob/master/SalesSavvy/src/main/java/com/example/project/salessavvy/repository/JWTTokenRepository.java): `SalesSavvy/src/main/java/com/example/project/salessavvy/repository/JWTTokenRepository.java`

### Other components

- **API user**

## Connections

- API user → Auth API: requests auth
- API user → Product API: requests products
- API user → User API: requests users
