# devamanaly/adspacex architecture

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

- Interactive diagram: https://gitdiagram.com/devamanaly/adspacex
- Repository: https://github.com/devamanaly/adspacex

## Overview

AdSpaceX is a full-stack outdoor-advertising marketplace for billboard auctions. The documented product goal is transparent bidding; the visible backend supports advertiser registration, authentication, company and ad-space management, admin verification, and profiles. The frontend includes public landing pages, sign-in/sign-up routes, and an admin dashboard UI. The auction service is present, but its orchestration and any connection from the frontend to the API are not established by the sampled evidence, so those links are omitted.

Main entry points: [`backend/src/app.ts`](https://github.com/devamanaly/adspacex/blob/main/backend/src/app.ts) (API Router), [`backend/src/modules/Admin/CreateAdminController.ts`](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/CreateAdminController.ts) (Admin Routes), [`backend/src/modules/auth/Middleware.ts`](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/auth/Middleware.ts) (Token Middleware), [`backend/src/modules/compnay/Company.Controller.ts`](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/compnay/Company.Controller.ts) (Company Routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public Experience"]
  node_public_pages["Public Pages"]
  node_landing["Landing Sections"]
  node_auth_pages["Auth Pages"]
  node_signin_form["Sign-in Form<br/>[SignInForm.tsx]"]
  node_signup_form["Sign-up Form<br/>[SignUpForm.tsx]"]
end

subgraph group_identity["Identity and Profiles"]
  node_auth_controller["Auth Routes<br/>[Auth.Controller.ts]"]
  node_auth_service["Authentication<br/>[Auth.Service.ts]"]
  node_auth_middleware["Token Middleware<br/>[Middleware.ts]"]
  node_profile_routes["Profile Routes"]
  node_profile_service["Profile Lookup"]
end

subgraph group_market["Marketplace Operations"]
  node_advertiser_routes["Advertiser Routes"]
  node_advertiser_service["Advertiser Registration"]
  node_company_routes["Company Routes"]
  node_company_create["Company Registration"]
  node_company_get["Company Lookup"]
  node_adspace_routes["Ad-space Routes"]
  node_adspace_create["Ad-space Creation"]
  node_adspace_get["Ad-space Lookup"]
  node_auction["Auction Service"]
end

subgraph group_admin["Administration"]
  node_admin_ui["Admin Dashboard UI"]
  node_admin_routes["Admin Routes"]
  node_admin_create["Admin Registration"]
  node_company_admin["Company Review"]
  node_verification["Verification"]
end

node_visitor(("Visitor"))
node_api["API Router<br/>[app.ts]"]
node_database[("Prisma Database")]

node_visitor -->|"visits"| node_public_pages
node_public_pages -->|"renders"| node_landing
node_visitor -.->|"opens"| node_auth_pages
node_auth_pages -.->|"renders"| node_signin_form
node_auth_pages -.->|"renders"| node_signup_form
node_api -->|"routes to"| node_advertiser_routes
node_api -->|"routes to"| node_admin_routes
node_api -->|"routes to"| node_auth_controller
node_api -->|"routes to"| node_company_routes
node_api -->|"routes to"| node_adspace_routes
node_api -->|"routes to"| node_profile_routes
node_auth_controller -->|"calls"| node_auth_service
node_advertiser_routes -->|"calls"| node_advertiser_service
node_advertiser_routes -->|"guards"| node_auth_middleware
node_company_routes -->|"calls"| node_company_create
node_company_routes -->|"calls"| node_company_get
node_company_routes -->|"guards"| node_auth_middleware
node_adspace_routes -->|"calls"| node_adspace_create
node_adspace_routes -->|"calls"| node_adspace_get
node_adspace_routes -->|"guards"| node_auth_middleware
node_profile_routes -->|"calls"| node_profile_service
node_profile_routes -->|"guards"| node_auth_middleware
node_admin_routes -->|"calls"| node_admin_create
node_admin_routes -->|"calls"| node_company_admin
node_admin_routes -->|"calls"| node_verification
node_admin_routes -->|"guards"| node_auth_middleware
node_auth_service -.->|"reads and updates"| node_database
node_advertiser_service -.->|"creates advertiser"| node_database
node_profile_service -.->|"reads profile"| node_database
node_visitor -.->|"uses"| node_admin_ui

click node_public_pages "https://github.com/devamanaly/adspacex/tree/main/frontend/src/app/(public)"
click node_landing "https://github.com/devamanaly/adspacex/tree/main/frontend/src/components/landing"
click node_auth_pages "https://github.com/devamanaly/adspacex/tree/main/frontend/src/app/(full-width-pages)/(auth)"
click node_signin_form "https://github.com/devamanaly/adspacex/blob/main/frontend/src/components/auth/SignInForm.tsx"
click node_signup_form "https://github.com/devamanaly/adspacex/blob/main/frontend/src/components/auth/SignUpForm.tsx"
click node_admin_ui "https://github.com/devamanaly/adspacex/tree/main/frontend/src/app/(admin)"
click node_api "https://github.com/devamanaly/adspacex/blob/main/backend/src/app.ts"
click node_auth_controller "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/auth/Auth.Controller.ts"
click node_auth_service "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/auth/Auth.Service.ts"
click node_auth_middleware "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/auth/Middleware.ts"
click node_profile_routes "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/profile/Profile.Controller.ts"
click node_profile_service "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/profile/GetAdvertiser.Service.ts"
click node_advertiser_routes "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Advertiser/Advertiser.Controller.ts"
click node_advertiser_service "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Advertiser/Advertiser.Service.ts"
click node_company_routes "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/compnay/Company.Controller.ts"
click node_company_create "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/compnay/CreateCompany.Service.ts"
click node_company_get "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/compnay/GetCompany.Service.ts"
click node_adspace_routes "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/AdSpace/AdSpace.Controller.ts"
click node_adspace_create "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/AdSpace/CreateAdSpace.Service.ts"
click node_adspace_get "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/AdSpace/GetAdSpace.Service.ts"
click node_auction "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Auction/CreateAuction.service.ts"
click node_admin_routes "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/CreateAdminController.ts"
click node_admin_create "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/CreateAdminService.ts"
click node_company_admin "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/GetCompaniesService.ts"
click node_verification "https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/Verifing.Service.ts"

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_public_pages,node_landing,node_auth_pages,node_signin_form,node_signup_form toneBlue
class node_auth_controller,node_auth_service,node_auth_middleware,node_profile_routes,node_profile_service,node_database toneAmber
class node_advertiser_routes,node_advertiser_service,node_company_routes,node_company_create,node_company_get,node_adspace_routes,node_adspace_create,node_adspace_get,node_auction,node_api toneMint
class node_admin_ui,node_admin_routes,node_admin_create,node_company_admin,node_verification toneRose
class node_visitor toneIndigo
```

## Components

### Public Experience

- [Public Pages](https://github.com/devamanaly/adspacex/tree/main/frontend/src/app/(public)): `frontend/src/app/(public)`
- [Landing Sections](https://github.com/devamanaly/adspacex/tree/main/frontend/src/components/landing): `frontend/src/components/landing`
- [Auth Pages](https://github.com/devamanaly/adspacex/tree/main/frontend/src/app/(full-width-pages)/(auth)): `frontend/src/app/(full-width-pages)/(auth)`
- [Sign-in Form](https://github.com/devamanaly/adspacex/blob/main/frontend/src/components/auth/SignInForm.tsx): `frontend/src/components/auth/SignInForm.tsx`
- [Sign-up Form](https://github.com/devamanaly/adspacex/blob/main/frontend/src/components/auth/SignUpForm.tsx): `frontend/src/components/auth/SignUpForm.tsx`

### Identity and Profiles

- [Auth Routes](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/auth/Auth.Controller.ts): `backend/src/modules/auth/Auth.Controller.ts`
- [Authentication](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/auth/Auth.Service.ts): `backend/src/modules/auth/Auth.Service.ts`
- [Token Middleware](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/auth/Middleware.ts): `backend/src/modules/auth/Middleware.ts`
- [Profile Routes](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/profile/Profile.Controller.ts): `backend/src/modules/profile/Profile.Controller.ts`
- [Profile Lookup](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/profile/GetAdvertiser.Service.ts): `backend/src/modules/profile/GetAdvertiser.Service.ts`

### Marketplace Operations

- [Advertiser Routes](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Advertiser/Advertiser.Controller.ts): `backend/src/modules/Advertiser/Advertiser.Controller.ts`
- [Advertiser Registration](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Advertiser/Advertiser.Service.ts): `backend/src/modules/Advertiser/Advertiser.Service.ts`
- [Company Routes](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/compnay/Company.Controller.ts): `backend/src/modules/compnay/Company.Controller.ts`
- [Company Registration](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/compnay/CreateCompany.Service.ts): `backend/src/modules/compnay/CreateCompany.Service.ts`
- [Company Lookup](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/compnay/GetCompany.Service.ts): `backend/src/modules/compnay/GetCompany.Service.ts`
- [Ad-space Routes](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/AdSpace/AdSpace.Controller.ts): `backend/src/modules/AdSpace/AdSpace.Controller.ts`
- [Ad-space Creation](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/AdSpace/CreateAdSpace.Service.ts): `backend/src/modules/AdSpace/CreateAdSpace.Service.ts`
- [Ad-space Lookup](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/AdSpace/GetAdSpace.Service.ts): `backend/src/modules/AdSpace/GetAdSpace.Service.ts`
- [Auction Service](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Auction/CreateAuction.service.ts): `backend/src/modules/Auction/CreateAuction.service.ts`

### Administration

- [Admin Dashboard UI](https://github.com/devamanaly/adspacex/tree/main/frontend/src/app/(admin)): `frontend/src/app/(admin)`
- [Admin Routes](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/CreateAdminController.ts): `backend/src/modules/Admin/CreateAdminController.ts`
- [Admin Registration](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/CreateAdminService.ts): `backend/src/modules/Admin/CreateAdminService.ts`
- [Company Review](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/GetCompaniesService.ts): `backend/src/modules/Admin/GetCompaniesService.ts`
- [Verification](https://github.com/devamanaly/adspacex/blob/main/backend/src/modules/Admin/Verifing.Service.ts): `backend/src/modules/Admin/Verifing.Service.ts`

### Other components

- **Visitor**
- [API Router](https://github.com/devamanaly/adspacex/blob/main/backend/src/app.ts): `backend/src/app.ts`
- **Prisma Database**

## Connections

- Visitor → Public Pages: visits (evidence: `frontend/src/app/(public)/about/page.tsx`)
- Public Pages → Landing Sections: renders (evidence: `frontend/src/app/(public)/home/page.tsx`)
- Visitor → Auth Pages: opens
- Auth Pages → Sign-in Form: renders
- Auth Pages → Sign-up Form: renders
- API Router → Advertiser Routes: routes to (evidence: `backend/src/app.ts`)
- API Router → Admin Routes: routes to (evidence: `backend/src/app.ts`)
- API Router → Auth Routes: routes to (evidence: `backend/src/app.ts`)
- API Router → Company Routes: routes to (evidence: `backend/src/app.ts`)
- API Router → Ad-space Routes: routes to (evidence: `backend/src/app.ts`)
- API Router → Profile Routes: routes to (evidence: `backend/src/app.ts`)
- Auth Routes → Authentication: calls (evidence: `backend/src/modules/auth/Auth.Controller.ts`)
- Advertiser Routes → Advertiser Registration: calls (evidence: `backend/src/modules/Advertiser/Advertiser.Controller.ts`)
- Advertiser Routes → Token Middleware: guards (evidence: `backend/src/modules/Advertiser/Advertiser.Controller.ts`)
- Company Routes → Company Registration: calls (evidence: `backend/src/modules/compnay/Company.Controller.ts`)
- Company Routes → Company Lookup: calls (evidence: `backend/src/modules/compnay/Company.Controller.ts`)
- Company Routes → Token Middleware: guards (evidence: `backend/src/modules/compnay/Company.Controller.ts`)
- Ad-space Routes → Ad-space Creation: calls (evidence: `backend/src/modules/AdSpace/AdSpace.Controller.ts`)
- Ad-space Routes → Ad-space Lookup: calls (evidence: `backend/src/modules/AdSpace/AdSpace.Controller.ts`)
- Ad-space Routes → Token Middleware: guards (evidence: `backend/src/modules/AdSpace/AdSpace.Controller.ts`)
- Profile Routes → Profile Lookup: calls (evidence: `backend/src/modules/profile/Profile.Controller.ts`)
- Profile Routes → Token Middleware: guards (evidence: `backend/src/modules/profile/Profile.Controller.ts`)
- Admin Routes → Admin Registration: calls (evidence: `backend/src/modules/Admin/CreateAdminController.ts`)
- Admin Routes → Company Review: calls (evidence: `backend/src/modules/Admin/CreateAdminController.ts`)
- Admin Routes → Verification: calls (evidence: `backend/src/modules/Admin/CreateAdminController.ts`)
- Admin Routes → Token Middleware: guards (evidence: `backend/src/modules/Admin/CreateAdminController.ts`)
- Authentication → Prisma Database: reads and updates
- Advertiser Registration → Prisma Database: creates advertiser
- Profile Lookup → Prisma Database: reads profile
- Visitor → Admin Dashboard UI: uses
