# rrohan419/kittyp-be architecture

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

- Interactive diagram: https://gitdiagram.com/rrohan419/kittyp-be
- Repository: https://github.com/rrohan419/kittyp-be

## Overview

Kittyp Backend is a Spring Boot API for user accounts and product commerce, with substantial veterinary-clinic, booking, nutrition, and content capabilities. The documented commerce journey is cart and checkout through order management and payment; the sampled payment-capture service branches between store orders and treatment invoices, confirming stock, saving order status, generating invoices, and publishing payment-success events. The source excerpts are selective, so links among most controller, service, and persistence modules are not asserted; the README supplies several high-level capabilities not represented in the supplied tree.

Main entry points: [`src/main/java/com/kittyp/payment/service/PaymentCaptureService.java`](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/payment/service/PaymentCaptureService.java) (Payment capture), [`src/main/java/com/kittyp/visit/service/ParentBookingEnrollmentService.java`](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/visit/service/ParentBookingEnrollmentService.java) (Pet enrollment), [`src/main/java/com/kittyp/auth/service/GoogleOAuth2Service.java`](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/auth/service/GoogleOAuth2Service.java) (Google sign-in), [`src/main/java/com/kittyp/common/controller/FileStorageController.java`](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/common/controller/FileStorageController.java) (File uploads)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_identity["Identity and access"]
  node_auth["Authentication"]
  node_google["Google sign-in"]
end

subgraph group_commerce["Commerce and payments"]
  node_cart["Cart and checkout"]
  node_orders["Orders"]
  node_capture["Payment capture"]
  node_catalog["Product catalog"]
end

subgraph group_care["Veterinary care"]
  node_invoices["Treatment invoices"]
  node_clinics["Clinic operations"]
  node_bookings["Doctor bookings"]
  node_enrollment["Pet enrollment"]
end

subgraph group_content["Content and nutrition"]
  node_nutrition["Pet nutrition"]
  node_ai["AI recommendations"]
  node_articles["Articles and blogs"]
end

subgraph group_platform["Shared platform"]
  node_files["File uploads"]
  node_s3[("AWS S3 storage")]
  node_email["Email notifications"]
  node_whatsapp["WhatsApp messaging"]
end

node_customer(("User"))
node_razorpay(("Razorpay"))
node_postgres[("PostgreSQL")]

node_capture -->|"looks up and saves"| node_orders
node_capture -->|"confirms or cancels stock"| node_catalog
node_capture -->|"routes treatment capture"| node_invoices
node_capture -->|"publishes success event"| node_email
node_capture -->|"handles captured payment"| node_razorpay
node_files -->|"uploads files"| node_s3
node_google -.->|"fetches account info"| node_customer
node_enrollment -->|"enrolls pets"| node_clinics
node_enrollment -->|"backfills active bookings"| node_bookings

click node_auth "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/auth"
click node_google "https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/auth/service/GoogleOAuth2Service.java"
click node_cart "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/cart"
click node_orders "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/order"
click node_capture "https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/payment/service/PaymentCaptureService.java"
click node_invoices "https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/doctor/service/TreatmentInvoiceService.java"
click node_clinics "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/clinic"
click node_bookings "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/booking"
click node_enrollment "https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/visit/service/ParentBookingEnrollmentService.java"
click node_nutrition "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/nutrition"
click node_ai "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/ai"
click node_articles "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/article"
click node_files "https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/common/controller/FileStorageController.java"
click node_s3 "https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/common/service/S3StorageService.java"
click node_email "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/email"
click node_whatsapp "https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/notification"

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,node_google,node_customer toneBlue
class node_cart,node_orders,node_capture,node_catalog,node_postgres toneAmber
class node_invoices,node_clinics,node_bookings,node_enrollment toneMint
class node_nutrition,node_ai,node_articles toneRose
class node_files,node_s3,node_email,node_whatsapp,node_razorpay toneIndigo
```

## Components

### Identity and access

- [Authentication](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/auth): `src/main/java/com/kittyp/auth`
- [Google sign-in](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/auth/service/GoogleOAuth2Service.java): `src/main/java/com/kittyp/auth/service/GoogleOAuth2Service.java`

### Commerce and payments

- [Cart and checkout](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/cart): `src/main/java/com/kittyp/cart`
- [Orders](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/order): `src/main/java/com/kittyp/order`
- [Payment capture](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/payment/service/PaymentCaptureService.java): `src/main/java/com/kittyp/payment/service/PaymentCaptureService.java`
- **Product catalog**

### Veterinary care

- [Treatment invoices](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/doctor/service/TreatmentInvoiceService.java): `src/main/java/com/kittyp/doctor/service/TreatmentInvoiceService.java`
- [Clinic operations](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/clinic): `src/main/java/com/kittyp/clinic`
- [Doctor bookings](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/booking): `src/main/java/com/kittyp/booking`
- [Pet enrollment](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/visit/service/ParentBookingEnrollmentService.java): `src/main/java/com/kittyp/visit/service/ParentBookingEnrollmentService.java`

### Content and nutrition

- [Pet nutrition](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/nutrition): `src/main/java/com/kittyp/nutrition`
- [AI recommendations](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/ai): `src/main/java/com/kittyp/ai`
- [Articles and blogs](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/article): `src/main/java/com/kittyp/article`

### Shared platform

- [File uploads](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/common/controller/FileStorageController.java): `src/main/java/com/kittyp/common/controller/FileStorageController.java`
- [AWS S3 storage](https://github.com/rrohan419/kittyp-be/blob/master/src/main/java/com/kittyp/common/service/S3StorageService.java): `src/main/java/com/kittyp/common/service/S3StorageService.java`
- [Email notifications](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/email): `src/main/java/com/kittyp/email`
- [WhatsApp messaging](https://github.com/rrohan419/kittyp-be/tree/master/src/main/java/com/kittyp/notification): `src/main/java/com/kittyp/notification`

### Other components

- **User**
- **Razorpay**
- **PostgreSQL**

## Connections

- Payment capture → Orders: looks up and saves
- Payment capture → Product catalog: confirms or cancels stock
- Payment capture → Treatment invoices: routes treatment capture
- Payment capture → Email notifications: publishes success event
- Payment capture → Razorpay: handles captured payment
- File uploads → AWS S3 storage: uploads files
- Google sign-in → User: fetches account info
- Pet enrollment → Clinic operations: enrolls pets
- Pet enrollment → Doctor bookings: backfills active bookings
