# pronoy999/petcoset architecture

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

- Interactive diagram: https://gitdiagram.com/pronoy999/petcoset
- Repository: https://github.com/pronoy999/petcoset

## Overview

Petcoset is a pet-care marketplace backed by an API and database, with separate customer/vendor and administrator Angular frontends. The customer app exposes service discovery and booking-oriented service forms, profiles, partner registration, subscriptions, and payment; the admin app provides login, dashboard, and customer management. The sampled backend shows HTTP request parsing, token validation, handler dispatch, stored-procedure access, and service search/registration. Many domain modules are present in the tree or constants but were not sampled, so their internal calls are not inferred.

Main entry points: [`server/src/Handlers`](https://github.com/pronoy999/petcoset/tree/master/server/src/Handlers) (Domain Handlers), [`frontend/src/app`](https://github.com/pronoy999/petcoset/tree/master/frontend/src/app) (Marketplace App), [`frontend_admin/src/app`](https://github.com/pronoy999/petcoset/tree/master/frontend_admin/src/app) (Admin Console), [`server/src/Helpers/server.js`](https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/server.js) (Petcoset API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_customer["Customer Marketplace"]
  node_customer_app["Marketplace App"]
  node_customer_auth["Authentication"]
  node_service_forms["Service Forms"]
  node_customer_profiles["Profiles"]
  node_marketplace_pages["Marketplace Pages"]
end

subgraph group_admin["Admin Console"]
  node_admin_app["Admin Console"]
  node_admin_auth["Admin Authentication"]
  node_customer_admin["Customer Management"]
  node_admin_dashboard["Dashboard"]
end

subgraph group_api["API Runtime"]
  node_market_api["Petcoset API<br/>[server.js]"]
  node_route_dispatch["Route Dispatch<br/>[router.js]"]
  node_api_handlers["Domain Handlers"]
end

subgraph group_domain["Marketplace Domain"]
  node_auth_domain["Authentication<br/>[authentication.js]"]
  node_booking_domain["Bookings<br/>[booking.js]"]
  node_service_domain["Services<br/>[service.js]"]
  node_customer_vendor_domain["Customers and Vendors"]
  node_payments_subscriptions["Payments and Subscriptions"]
  node_catalog_domain["Catalog and Locations"]
  node_service_entity["Service Entity<br/>[service.js]"]
end

subgraph group_infra["Persistence and Support"]
  node_database[("MySQL Database<br/>[databaseService.js]")]
  node_query_builder["Query Generator<br/>[queryGenerator.js]"]
  node_token_validation["Token Validation<br/>[validators.js]"]
  node_notifications["Notifications"]
end

node_customer_actor(("Customer or Vendor"))
node_admin_actor(("Administrator"))
node_aws_services["AWS SNS and SES"]

node_customer_actor -.->|"uses"| node_customer_app
node_admin_actor -.->|"uses"| node_admin_app
node_customer_app -.->|"authenticates"| node_customer_auth
node_customer_app -->|"offers"| node_service_forms
node_customer_app -.->|"offers"| node_customer_profiles
node_customer_app -->|"offers"| node_marketplace_pages
node_admin_app -.->|"authenticates"| node_admin_auth
node_admin_app -.->|"offers"| node_customer_admin
node_admin_app -.->|"offers"| node_admin_dashboard
node_admin_auth -->|"sends HTTP requests"| node_market_api
node_market_api -->|"gets route"| node_route_dispatch
node_route_dispatch -->|"resolves handlers"| node_api_handlers
node_market_api -->|"validates token"| node_token_validation
node_market_api -->|"dispatches request"| node_api_handlers
node_api_handlers -.->|"delegates to"| node_auth_domain
node_api_handlers -.->|"delegates to"| node_booking_domain
node_api_handlers -.->|"delegates to"| node_service_domain
node_api_handlers -.->|"delegates to"| node_customer_vendor_domain
node_api_handlers -.->|"delegates to"| node_payments_subscriptions
node_api_handlers -.->|"delegates to"| node_catalog_domain
node_service_domain -->|"uses"| node_service_entity
node_service_entity -->|"runs procedures"| node_database
node_database -->|"generates procedure SQL"| node_query_builder
node_notifications -->|"sends messages"| node_aws_services

click node_customer_app "https://github.com/pronoy999/petcoset/tree/master/frontend/src/app"
click node_customer_auth "https://github.com/pronoy999/petcoset/blob/master/frontend/src/app/authentication.service.ts"
click node_service_forms "https://github.com/pronoy999/petcoset/tree/master/frontend/src/app/main/manage-customer-service"
click node_customer_profiles "https://github.com/pronoy999/petcoset/tree/master/frontend/src/app/main/users"
click node_marketplace_pages "https://github.com/pronoy999/petcoset/tree/master/frontend/src/app/main"
click node_admin_app "https://github.com/pronoy999/petcoset/tree/master/frontend_admin/src/app"
click node_admin_auth "https://github.com/pronoy999/petcoset/blob/master/frontend_admin/src/app/authentication.service.ts"
click node_customer_admin "https://github.com/pronoy999/petcoset/tree/master/frontend_admin/src/app/main/customer"
click node_admin_dashboard "https://github.com/pronoy999/petcoset/tree/master/frontend_admin/src/app/main/dashboard"
click node_market_api "https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/server.js"
click node_route_dispatch "https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/router.js"
click node_api_handlers "https://github.com/pronoy999/petcoset/tree/master/server/src/Handlers"
click node_auth_domain "https://github.com/pronoy999/petcoset/blob/master/server/src/CoreServices/authentication.js"
click node_booking_domain "https://github.com/pronoy999/petcoset/blob/master/server/src/CoreServices/booking.js"
click node_service_domain "https://github.com/pronoy999/petcoset/blob/master/server/src/CoreServices/service.js"
click node_customer_vendor_domain "https://github.com/pronoy999/petcoset/tree/master/server/src/CoreServices"
click node_payments_subscriptions "https://github.com/pronoy999/petcoset/tree/master/server/src/CoreServices"
click node_catalog_domain "https://github.com/pronoy999/petcoset/tree/master/server/src/CoreServices"
click node_service_entity "https://github.com/pronoy999/petcoset/blob/master/server/src/Entity/service.js"
click node_database "https://github.com/pronoy999/petcoset/blob/master/server/src/Services/databaseService.js"
click node_query_builder "https://github.com/pronoy999/petcoset/blob/master/server/src/Services/queryGenerator.js"
click node_token_validation "https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/validators.js"
click node_notifications "https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/notificationManager.js"

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_customer_app,node_customer_auth,node_service_forms,node_customer_profiles,node_marketplace_pages toneBlue
class node_admin_app,node_admin_auth,node_customer_admin,node_admin_dashboard toneAmber
class node_market_api,node_route_dispatch,node_api_handlers toneMint
class node_auth_domain,node_booking_domain,node_service_domain,node_customer_vendor_domain,node_payments_subscriptions,node_catalog_domain,node_service_entity toneRose
class node_database,node_query_builder,node_token_validation,node_notifications,node_customer_actor,node_admin_actor,node_aws_services toneIndigo
```

## Components

### Customer Marketplace

- [Marketplace App](https://github.com/pronoy999/petcoset/tree/master/frontend/src/app): `frontend/src/app`
- [Authentication](https://github.com/pronoy999/petcoset/blob/master/frontend/src/app/authentication.service.ts): `frontend/src/app/authentication.service.ts`
- [Service Forms](https://github.com/pronoy999/petcoset/tree/master/frontend/src/app/main/manage-customer-service): `frontend/src/app/main/manage-customer-service`
- [Profiles](https://github.com/pronoy999/petcoset/tree/master/frontend/src/app/main/users): `frontend/src/app/main/users`
- [Marketplace Pages](https://github.com/pronoy999/petcoset/tree/master/frontend/src/app/main): `frontend/src/app/main`

### Admin Console

- [Admin Console](https://github.com/pronoy999/petcoset/tree/master/frontend_admin/src/app): `frontend_admin/src/app`
- [Admin Authentication](https://github.com/pronoy999/petcoset/blob/master/frontend_admin/src/app/authentication.service.ts): `frontend_admin/src/app/authentication.service.ts`
- [Customer Management](https://github.com/pronoy999/petcoset/tree/master/frontend_admin/src/app/main/customer): `frontend_admin/src/app/main/customer`
- [Dashboard](https://github.com/pronoy999/petcoset/tree/master/frontend_admin/src/app/main/dashboard): `frontend_admin/src/app/main/dashboard`

### API Runtime

- [Petcoset API](https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/server.js): `server/src/Helpers/server.js`
- [Route Dispatch](https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/router.js): `server/src/Helpers/router.js`
- [Domain Handlers](https://github.com/pronoy999/petcoset/tree/master/server/src/Handlers): `server/src/Handlers`

### Marketplace Domain

- [Authentication](https://github.com/pronoy999/petcoset/blob/master/server/src/CoreServices/authentication.js): `server/src/CoreServices/authentication.js`
- [Bookings](https://github.com/pronoy999/petcoset/blob/master/server/src/CoreServices/booking.js): `server/src/CoreServices/booking.js`
- [Services](https://github.com/pronoy999/petcoset/blob/master/server/src/CoreServices/service.js): `server/src/CoreServices/service.js`
- [Customers and Vendors](https://github.com/pronoy999/petcoset/tree/master/server/src/CoreServices): `server/src/CoreServices`
- [Payments and Subscriptions](https://github.com/pronoy999/petcoset/tree/master/server/src/CoreServices): `server/src/CoreServices`
- [Catalog and Locations](https://github.com/pronoy999/petcoset/tree/master/server/src/CoreServices): `server/src/CoreServices`
- [Service Entity](https://github.com/pronoy999/petcoset/blob/master/server/src/Entity/service.js): `server/src/Entity/service.js`

### Persistence and Support

- [MySQL Database](https://github.com/pronoy999/petcoset/blob/master/server/src/Services/databaseService.js): `server/src/Services/databaseService.js`
- [Query Generator](https://github.com/pronoy999/petcoset/blob/master/server/src/Services/queryGenerator.js): `server/src/Services/queryGenerator.js`
- [Token Validation](https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/validators.js): `server/src/Helpers/validators.js`
- [Notifications](https://github.com/pronoy999/petcoset/blob/master/server/src/Helpers/notificationManager.js): `server/src/Helpers/notificationManager.js`

### Other components

- **Customer or Vendor**
- **Administrator**
- **AWS SNS and SES**

## Connections

- Customer or Vendor → Marketplace App: uses
- Administrator → Admin Console: uses
- Marketplace App → Authentication: authenticates
- Marketplace App → Service Forms: offers (evidence: `frontend/src/app/main/manage-customer-service/manage-customer-service.module.ts`)
- Marketplace App → Profiles: offers
- Marketplace App → Marketplace Pages: offers (evidence: `frontend/src/app/main/main.module.ts`)
- Admin Console → Admin Authentication: authenticates (evidence: `frontend_admin/src/app/auth/login/login.component.ts`)
- Admin Console → Customer Management: offers
- Admin Console → Dashboard: offers
- Admin Authentication → Petcoset API: sends HTTP requests (evidence: `frontend_admin/src/app/authentication.service.ts`)
- Petcoset API → Route Dispatch: gets route (evidence: `server/src/Helpers/server.js`)
- Route Dispatch → Domain Handlers: resolves handlers (evidence: `server/src/Helpers/router.js`)
- Petcoset API → Token Validation: validates token (evidence: `server/src/Helpers/server.js`)
- Petcoset API → Domain Handlers: dispatches request (evidence: `server/src/Helpers/server.js`)
- Domain Handlers → Authentication: delegates to
- Domain Handlers → Bookings: delegates to
- Domain Handlers → Services: delegates to
- Domain Handlers → Customers and Vendors: delegates to
- Domain Handlers → Payments and Subscriptions: delegates to
- Domain Handlers → Catalog and Locations: delegates to
- Services → Service Entity: uses (evidence: `server/src/CoreServices/service.js`)
- Service Entity → MySQL Database: runs procedures (evidence: `server/src/Entity/service.js`)
- MySQL Database → Query Generator: generates procedure SQL (evidence: `server/src/Services/databaseService.js`)
- Notifications → AWS SNS and SES: sends messages (evidence: `server/src/Helpers/notificationManager.js`)
