# drspgroup/dr-sushant-patil-group architecture

> Architecture diagram of the GitHub repository drspgroup/dr-sushant-patil-group, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-06-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/drspgroup/dr-sushant-patil-group
- Repository: https://github.com/drspgroup/dr-sushant-patil-group

## Overview

1. **Overall shape**
   - This is a **Next.js App Router** site for the Dr. Sushant Patil Group, built as a mostly static, content-driven marketing/information website.
   - The architecture is layered: **route pages in `src/app`**, **page sections in `src/sections`**, **shared UI in `src/components`**, and **content/data in `src/data`**.

2. **Routing and page boundaries**
   - The main routes are:
     - `/` home
     - `/about`
     - `/entities`
     - `/journey`
     - `/news`
     - `/team`
   - Each route has its own `page.js` under `src/app/<route>/page.js`, which acts as the composition boundary for that page.
   - There is also `not-found.js` for missing routes, plus `robots.js` and `sitemap.js` for crawler/indexing support.

3. **Page composition model**
   - Pages are not built from server/API data flows; instead, they are assembled from **predefined section components**.
   - For example, the home page is likely composed from `src/sections/home/*`, while the about page uses `src/sections/about/*`.
   - This indicates a **presentation-first architecture** where the route layer orchestrates sections, and the sections contain the actual UI/marketing content.

4. **Content sources and data flow**
   - Structured content lives in `src/data/`:
     - `entities.js`
     - `journey.js`
     - `news.js`
     - `team.js`
     - `videoSeries.js`
   - These data modules are the main source of truth for repeatable content such as lists, timelines, cards, team profiles, and media series.
   - The flow is generally: **data module → section component → page route**.

5. **Home page subsystem**
   - `src/sections/home/` contains the homepage’s major storytelling blocks:
     - hero
     - founder/leadership sections
     - business/entity section
     - Anuja-related content
     - podcast/video-related content
   - This page appears to be a curated landing experience with strong brand/leadership emphasis rather than a transactional homepage.

6. **About, entities, journey, news, and team subsystems**
   - `src/sections/about/` contains mission/values/ambition and patriarch/leadership-oriented sections.
   - `src/sections/entities/` handles business/entity listings and a hero banner for that page.
   - `src/sections/journey/` provides a hero plus timeline-style content, suggesting a historical or growth narrative.
   - `src/sections/news/` is structured as a hero plus grid, implying a content listing/press/newsroom page.
   - `src/sections/team/` contains a hero and team listing page, backed by team data.

7. **Shared components and cross-cutting UI**
   - `src/components/` contains reusable elements used across multiple routes:
     - `Navbar.js`
     - `Footer.js`
     - shared utilities like `ScrollToTop`, `ReadMore`, and `VideoModal`
   - These components form the stable chrome and behavior layer around the page-specific sections.
   - The presence of `VideoModal` and `ReadMore` suggests interactive enhancement, but the site is still primarily static content.

8. **Layout and global app shell**
   - `src/app/layout.js` defines the global shell that wraps all routes.
   - `src/app/globals.css` is the central stylesheet entrypoint.
   - The app uses Next.js font optimization through `next/font` per the README, and the project is configured with modern Next.js tooling such as `next.config.mjs`, PostCSS, and ESLint.

9. **Static assets and media-heavy presentation**
   - The `public/` directory holds most of the site’s heavy assets:
     - hero video
     - team imagery organized by entity/team folders
     - news thumbnails
     - event thumbnails
     - additional images
     - an Excel file for news links/titles
   - This reinforces that the app is **asset-driven** and likely renders many image/video-rich sections without an external CMS in the repository.

10. **SEO and crawlability**
   - The inclusion of `robots.js` and `sitemap.js` means the site is designed to be discoverable and indexable.
   - This is important architecturally because it suggests the routes are intended as public marketing pages with search visibility, not just internal UI.

11. **No visible backend or API layer**
   - There is no `src/app/api` directory, no database layer, and no service integration layer in the tree.
   - That implies the site is **frontend-only** within this repository, with content embedded in code/data files and assets shipped from `public/`.

12. **Likely runtime and deployment model**
   - The project is a standard **Next.js** application intended to run locally with `npm run dev` and deploy cleanly to **Vercel**.
   - Because the content is static and route-based, it is well-suited to static generation or hybrid rendering, but the repo structure strongly suggests a mostly static marketing site rather than a dynamic app.

13. **How to draw the architecture**
   - A clear diagram would show:
     - **Browser → Next.js route pages**
     - **Route pages → section components**
     - **Section components → shared components and data modules**
     - **All UI → public assets**
   - The major boundaries are **route-level pages**, **section-level content blocks**, and **shared cross-page UI/data**.

14. **Core takeaway**
   - This repository is a **content-managed-in-code Next.js site** with a modular section system, strong brand/storytelling focus, and a static asset pipeline.
   - Its architecture is optimized for maintainability of marketing pages, not for backend-driven workflows or complex client-server interactions.

Main entry points: [`src/app/layout.js`](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/layout.js) (App Shell), [`src/data`](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/data) (Content Data), [`public`](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/public) (Static Assets), [`src/sections/home`](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/home) (Home Blocks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_group_app["App Router"]
  node_layout["App Shell<br/>next layout<br/>[layout.js]"]
  node_home_page["Home Page<br/>route page<br/>[page.js]"]
  node_about_page["About Page<br/>route page<br/>[page.js]"]
  node_entities_page["Entities Page<br/>route page<br/>[page.js]"]
  node_journey_page["Journey Page<br/>route page<br/>[page.js]"]
  node_news_page["News Page<br/>route page<br/>[page.js]"]
  node_team_page["Team Page<br/>route page<br/>[page.js]"]
  node_seo_routes["SEO Routes<br/>meta routes<br/>[robots.js]"]
  node_not_found["404 Page<br/>error page<br/>[not-found.js]"]
end

subgraph group_group_sections["Page Sections"]
  node_about_sections["About Blocks<br/>section set"]
  node_home_sections["Home Blocks<br/>section set"]
  node_entities_sections["Entity Blocks<br/>section set"]
  node_journey_sections["Journey Blocks<br/>section set"]
  node_news_sections["News Blocks<br/>section set"]
  node_team_sections["Team Blocks<br/>section set"]
  node_shared_sections["Shared Sections<br/>section set"]
end

subgraph group_group_shared["Shared UI"]
  node_navbar["Navbar<br/>chrome<br/>[Navbar.js]"]
  node_footer["Footer<br/>chrome<br/>[Footer.js]"]
  node_shared_widgets["Shared Widgets<br/>ui helpers"]
end

subgraph group_group_content["Content & Assets"]
  node_content_data[("Content Data<br/>data modules")]
  node_public_assets[("Static Assets<br/>media bundle")]
end

node_browser(("Browser<br/>client"))

node_browser -->|"requests"| node_layout
node_layout -->|"includes"| node_navbar
node_layout -->|"includes"| node_footer
node_layout -->|"wraps"| node_home_page
node_layout -->|"wraps"| node_about_page
node_layout -->|"wraps"| node_entities_page
node_layout -->|"wraps"| node_journey_page
node_layout -->|"wraps"| node_news_page
node_layout -->|"wraps"| node_team_page
node_home_page -->|"composes"| node_home_sections
node_home_sections -->|"reuses"| node_shared_sections
node_about_page -->|"composes"| node_about_sections
node_entities_page -->|"composes"| node_entities_sections
node_journey_page -->|"composes"| node_journey_sections
node_news_page -->|"composes"| node_news_sections
node_team_page -->|"composes"| node_team_sections
node_shared_sections -->|"reads"| node_content_data
node_home_sections -->|"reads"| node_content_data
node_entities_sections -->|"reads"| node_content_data
node_journey_sections -->|"reads"| node_content_data
node_news_sections -->|"reads"| node_content_data
node_team_sections -->|"reads"| node_content_data
node_home_sections -->|"uses"| node_public_assets
node_about_sections -->|"uses"| node_public_assets
node_entities_sections -->|"uses"| node_public_assets
node_news_sections -->|"uses"| node_public_assets
node_team_sections -->|"uses"| node_public_assets
node_shared_widgets -->|"uses"| node_public_assets
node_seo_routes -->|"supports"| node_layout
node_not_found -->|"uses"| node_layout

click node_layout "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/layout.js"
click node_home_page "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/page.js"
click node_about_page "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/about/page.js"
click node_entities_page "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/entities/page.js"
click node_journey_page "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/journey/page.js"
click node_news_page "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/news/page.js"
click node_team_page "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/team/page.js"
click node_about_sections "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/about"
click node_home_sections "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/home"
click node_entities_sections "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/entities"
click node_journey_sections "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/journey"
click node_news_sections "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/news"
click node_team_sections "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/team"
click node_shared_sections "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/shared"
click node_navbar "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/components/Navbar.js"
click node_footer "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/components/Footer.js"
click node_shared_widgets "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/components/shared"
click node_content_data "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/data"
click node_public_assets "https://github.com/drspgroup/dr-sushant-patil-group/tree/main/public"
click node_seo_routes "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/robots.js"
click node_not_found "https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/not-found.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_layout,node_home_page,node_about_page,node_entities_page,node_journey_page,node_news_page,node_team_page,node_seo_routes,node_not_found toneBlue
class node_about_sections,node_home_sections,node_entities_sections,node_journey_sections,node_news_sections,node_team_sections,node_shared_sections toneAmber
class node_navbar,node_footer,node_shared_widgets toneMint
class node_content_data,node_public_assets toneRose
class node_browser toneNeutral
```

## Components

### App Router

Next.js route layer and global shell

- [App Shell](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/layout.js): next layout · Global wrapper for all routes · `src/app/layout.js`
- [Home Page](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/page.js): route page · Entry route composition · `src/app/page.js`
- [About Page](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/about/page.js): route page · About route composition · `src/app/about/page.js`
- [Entities Page](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/entities/page.js): route page · Entities route composition · `src/app/entities/page.js`
- [Journey Page](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/journey/page.js): route page · Journey route composition · `src/app/journey/page.js`
- [News Page](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/news/page.js): route page · News route composition · `src/app/news/page.js`
- [Team Page](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/team/page.js): route page · Team route composition · `src/app/team/page.js`
- [SEO Routes](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/robots.js): meta routes · robots and sitemap support · `src/app/robots.js`
- [404 Page](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/app/not-found.js): error page · Fallback route for missing pages · `src/app/not-found.js`

### Page Sections

Route-specific content blocks composed into pages

- [About Blocks](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/about): section set · Mission, values, ambition, and leadership storytelling · `src/sections/about`
- [Home Blocks](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/home): section set · Hero and brand/storytelling sections for the landing page · `src/sections/home`
- [Entity Blocks](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/entities): section set · Businesses hero and listings · `src/sections/entities`
- [Journey Blocks](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/journey): section set · Journey hero and timeline narrative · `src/sections/journey`
- [News Blocks](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/news): section set · News hero and grid listing · `src/sections/news`
- [Team Blocks](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/team): section set · Team hero and roster sections · `src/sections/team`
- [Shared Sections](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/sections/shared): section set · Cross-page leadership and media sections · `src/sections/shared`

### Shared UI

Reusable chrome and cross-page widgets

- [Navbar](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/components/Navbar.js): chrome · Primary navigation component · `src/components/Navbar.js`
- [Footer](https://github.com/drspgroup/dr-sushant-patil-group/blob/main/src/components/Footer.js): chrome · Site-wide footer component · `src/components/Footer.js`
- [Shared Widgets](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/components/shared): ui helpers · Scroll-to-top, read-more, and video modal behaviors · `src/components/shared`

### Content & Assets

Structured data and static media sources

- [Content Data](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/src/data): data modules · Entities, journey, news, team, and video series content · `src/data`
- [Static Assets](https://github.com/drspgroup/dr-sushant-patil-group/tree/main/public): media bundle · Images, video, and downloadable news sheet · `public`

### Other components

- **Browser**: client · Visitor requests and views pages

## Connections

- Browser → App Shell: requests · All visits enter through the app shell
- App Shell → Navbar: includes · Global chrome rendered across routes
- App Shell → Footer: includes · Global chrome rendered across routes
- App Shell → Home Page: wraps · Home route is rendered inside the shell
- App Shell → About Page: wraps · About route is rendered inside the shell
- App Shell → Entities Page: wraps · Entities route is rendered inside the shell
- App Shell → Journey Page: wraps · Journey route is rendered inside the shell
- App Shell → News Page: wraps · News route is rendered inside the shell
- App Shell → Team Page: wraps · Team route is rendered inside the shell
- Home Page → Home Blocks: composes · Home page assembles storytelling blocks
- Home Blocks → Shared Sections: reuses · Home page shares leadership and media modules
- About Page → About Blocks: composes · About page assembles mission and values content
- Entities Page → Entity Blocks: composes · Entities page assembles business listings
- Journey Page → Journey Blocks: composes · Journey page assembles the timeline narrative
- News Page → News Blocks: composes · News page assembles the newsroom grid
- Team Page → Team Blocks: composes · Team page assembles team listing content
- Shared Sections → Content Data: reads · Shared sections are driven by structured content
- Home Blocks → Content Data: reads · Home storytelling blocks use curated data
- Entity Blocks → Content Data: reads · Entity listings come from data modules
- Journey Blocks → Content Data: reads · Timeline content comes from journey data
- News Blocks → Content Data: reads · News cards are populated from data modules
- Team Blocks → Content Data: reads · Team roster uses team data
- Home Blocks → Static Assets: uses · Homepage media is served from public assets
- About Blocks → Static Assets: uses · About visuals and portraits come from public assets
- Entity Blocks → Static Assets: uses · Entity imagery is served from public assets
- News Blocks → Static Assets: uses · News thumbnails are served from public assets
- Team Blocks → Static Assets: uses · Team imagery is served from public assets
- Shared Widgets → Static Assets: uses · Video modal and media helpers depend on bundled assets
- SEO Routes → App Shell: supports · Metadata routes support the global app shell
- 404 Page → App Shell: uses · 404 page shares the same shell
