# tejprakash25/printfloww architecture

> Architecture diagram of the GitHub repository tejprakash25/printfloww, 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/tejprakash25/printfloww
- Repository: https://github.com/tejprakash25/printfloww

## Overview

PrintFlow is a print-order management application with a React interface and Spring backend. Customers authenticate, place and track print orders, review design proofs, and handle payments; staff manage production and delivery, while admins support quotations, approvals, invoices, and operational views. The sampled backend shows order creation, production/delivery updates, payment recording, history, and notifications. The README is empty and source excerpts are selective, so unsampled feature wiring is not asserted; the frontend excerpt also includes illustrative local UI state.

Main entry points: [`src/App.tsx`](https://github.com/tejprakash25/printfloww/blob/main/src/App.tsx) (React App), [`printflow-backend/src/main/java/com/printflow/backend/service/WorkflowService.java`](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/WorkflowService.java) (Production, Delivery, Payment), [`src/api/apiClient.ts`](https://github.com/tejprakash25/printfloww/blob/main/src/api/apiClient.ts) (API Client), [`printflow-backend/src/main/java/com/printflow/backend/service/OrderService.java`](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/OrderService.java) (Order Management)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Customer Interface"]
  node_app["React App<br/>[App.tsx]"]
  node_api["API Client<br/>[apiClient.ts]"]
  node_authapi["Auth API<br/>[authApi.ts]"]
  node_orderapi["Order API<br/>[orderApi.ts]"]
end

subgraph group_identity["Identity and Access"]
  node_authcontroller["Auth Endpoints"]
  node_authservice["Authentication<br/>[AuthService.java]"]
  node_jwt["JWT Service<br/>[JwtService.java]"]
  node_userstore[("User Store")]
end

subgraph group_orders["Orders and Designs"]
  node_ordercontroller["Order Endpoints"]
  node_orderservice["Order Management<br/>[OrderService.java]"]
  node_orderstore[("Order and History Store")]
  node_designcontroller["Design Endpoints"]
  node_designservice["Design Management<br/>[DesignService.java]"]
end

subgraph group_operations["Production and Finance"]
  node_workflowcontroller["Workflow Endpoints"]
  node_workflowservice["Production, Delivery, Payment"]
  node_workflowstores[("Workflow Records")]
  node_notifications["Notifications"]
  node_quotation["Quotations"]
  node_approval["Approvals"]
  node_invoice["Invoices"]
  node_dashboard["Dashboard"]
end

node_customer(("Customer"))
node_staff(("Staff"))
node_admin(("Admin"))

node_customer -->|"uses"| node_app
node_staff -->|"uses"| node_app
node_admin -->|"uses"| node_app
node_app -->|"submits login"| node_authapi
node_authapi -->|"requests"| node_api
node_app -->|"order actions"| node_orderapi
node_orderapi -->|"requests"| node_api
node_api -->|"HTTP API"| node_authcontroller
node_api -->|"HTTP API"| node_ordercontroller
node_authcontroller -->|"delegates"| node_authservice
node_authservice -->|"reads and saves"| node_userstore
node_authservice -->|"generates token"| node_jwt
node_customer -->|"places and tracks orders"| node_ordercontroller
node_ordercontroller -->|"delegates"| node_orderservice
node_orderservice -->|"reads and writes"| node_orderstore
node_orderservice -->|"notifies"| node_notifications
node_customer -->|"manages artwork"| node_designcontroller
node_designcontroller -->|"delegates"| node_designservice
node_staff -->|"updates workflow"| node_workflowcontroller
node_workflowcontroller -->|"delegates"| node_workflowservice
node_workflowservice -->|"loads and updates orders"| node_orderservice
node_workflowservice -->|"reads and writes"| node_workflowstores
node_workflowservice -->|"notifies"| node_notifications
node_admin -->|"manages quotations"| node_quotation
node_admin -->|"handles approvals"| node_approval
node_admin -->|"manages invoices"| node_invoice
node_admin -->|"views operations"| node_dashboard

click node_app "https://github.com/tejprakash25/printfloww/blob/main/src/App.tsx"
click node_api "https://github.com/tejprakash25/printfloww/blob/main/src/api/apiClient.ts"
click node_authapi "https://github.com/tejprakash25/printfloww/blob/main/src/api/authApi.ts"
click node_orderapi "https://github.com/tejprakash25/printfloww/blob/main/src/api/orderApi.ts"
click node_authcontroller "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/AuthController.java"
click node_authservice "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/AuthService.java"
click node_jwt "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/security/JwtService.java"
click node_userstore "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/repository/UserRepository.java"
click node_ordercontroller "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/OrderController.java"
click node_orderservice "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/OrderService.java"
click node_orderstore "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/repository/PrintOrderRepository.java"
click node_designcontroller "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/DesignController.java"
click node_designservice "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/DesignService.java"
click node_workflowcontroller "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/WorkflowController.java"
click node_workflowservice "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/WorkflowService.java"
click node_workflowstores "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/repository/ProductionJobRepository.java"
click node_notifications "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/NotificationService.java"
click node_quotation "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/QuotationController.java"
click node_approval "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/ApprovalController.java"
click node_invoice "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/InvoiceService.java"
click node_dashboard "https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/DashboardController.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_app,node_api,node_authapi,node_orderapi toneBlue
class node_authcontroller,node_authservice,node_jwt,node_userstore toneAmber
class node_ordercontroller,node_orderservice,node_orderstore,node_designcontroller,node_designservice toneMint
class node_workflowcontroller,node_workflowservice,node_workflowstores,node_notifications,node_quotation,node_approval,node_invoice,node_dashboard toneRose
class node_customer,node_staff,node_admin toneIndigo
```

## Components

### Customer Interface

- [React App](https://github.com/tejprakash25/printfloww/blob/main/src/App.tsx): `src/App.tsx`
- [API Client](https://github.com/tejprakash25/printfloww/blob/main/src/api/apiClient.ts): `src/api/apiClient.ts`
- [Auth API](https://github.com/tejprakash25/printfloww/blob/main/src/api/authApi.ts): `src/api/authApi.ts`
- [Order API](https://github.com/tejprakash25/printfloww/blob/main/src/api/orderApi.ts): `src/api/orderApi.ts`

### Identity and Access

- [Auth Endpoints](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/AuthController.java): `printflow-backend/src/main/java/com/printflow/backend/controller/AuthController.java`
- [Authentication](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/AuthService.java): `printflow-backend/src/main/java/com/printflow/backend/service/AuthService.java`
- [JWT Service](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/security/JwtService.java): `printflow-backend/src/main/java/com/printflow/backend/security/JwtService.java`
- [User Store](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/repository/UserRepository.java): `printflow-backend/src/main/java/com/printflow/backend/repository/UserRepository.java`

### Orders and Designs

- [Order Endpoints](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/OrderController.java): `printflow-backend/src/main/java/com/printflow/backend/controller/OrderController.java`
- [Order Management](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/OrderService.java): `printflow-backend/src/main/java/com/printflow/backend/service/OrderService.java`
- [Order and History Store](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/repository/PrintOrderRepository.java): `printflow-backend/src/main/java/com/printflow/backend/repository/PrintOrderRepository.java`
- [Design Endpoints](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/DesignController.java): `printflow-backend/src/main/java/com/printflow/backend/controller/DesignController.java`
- [Design Management](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/DesignService.java): `printflow-backend/src/main/java/com/printflow/backend/service/DesignService.java`

### Production and Finance

- [Workflow Endpoints](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/WorkflowController.java): `printflow-backend/src/main/java/com/printflow/backend/controller/WorkflowController.java`
- [Production, Delivery, Payment](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/WorkflowService.java): `printflow-backend/src/main/java/com/printflow/backend/service/WorkflowService.java`
- [Workflow Records](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/repository/ProductionJobRepository.java): `printflow-backend/src/main/java/com/printflow/backend/repository/ProductionJobRepository.java`
- [Notifications](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/NotificationService.java): `printflow-backend/src/main/java/com/printflow/backend/service/NotificationService.java`
- [Quotations](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/QuotationController.java): `printflow-backend/src/main/java/com/printflow/backend/controller/QuotationController.java`
- [Approvals](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/ApprovalController.java): `printflow-backend/src/main/java/com/printflow/backend/controller/ApprovalController.java`
- [Invoices](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/service/InvoiceService.java): `printflow-backend/src/main/java/com/printflow/backend/service/InvoiceService.java`
- [Dashboard](https://github.com/tejprakash25/printfloww/blob/main/printflow-backend/src/main/java/com/printflow/backend/controller/DashboardController.java): `printflow-backend/src/main/java/com/printflow/backend/controller/DashboardController.java`

### Other components

- **Customer**
- **Staff**
- **Admin**

## Connections

- Customer → React App: uses
- Staff → React App: uses
- Admin → React App: uses
- React App → Auth API: submits login
- Auth API → API Client: requests
- React App → Order API: order actions
- Order API → API Client: requests
- API Client → Auth Endpoints: HTTP API
- API Client → Order Endpoints: HTTP API
- Auth Endpoints → Authentication: delegates
- Authentication → User Store: reads and saves
- Authentication → JWT Service: generates token
- Customer → Order Endpoints: places and tracks orders
- Order Endpoints → Order Management: delegates
- Order Management → Order and History Store: reads and writes
- Order Management → Notifications: notifies
- Customer → Design Endpoints: manages artwork
- Design Endpoints → Design Management: delegates
- Staff → Workflow Endpoints: updates workflow
- Workflow Endpoints → Production, Delivery, Payment: delegates
- Production, Delivery, Payment → Order Management: loads and updates orders
- Production, Delivery, Payment → Workflow Records: reads and writes
- Production, Delivery, Payment → Notifications: notifies
- Admin → Quotations: manages quotations
- Admin → Approvals: handles approvals
- Admin → Invoices: manages invoices
- Admin → Dashboard: views operations
