# biraj2222/portfolio-creator architecture

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

## Overview

Portfolio Forge is a PHP application for building and publishing personal portfolios. The landing page describes a user workflow from account creation and resume upload through content review, template selection, customization, preview, and sharing; the tree also shows resume/ATS tools and portfolio analytics. The public portfolio controller selects a template and renders it, while the preview page delegates to that controller. The README is empty and most feature controllers were not sampled, so connections beyond the visible calls and documented workflow are kept limited.

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_accounts["Accounts and access"]
  node_register["Register"]
  node_login["Sign in"]
  node_userauth["User access checks"]
end

subgraph group_authoring["Portfolio authoring"]
  node_userdash["User dashboard"]
  node_profile["Profile editing"]
  node_sections["Portfolio sections"]
  node_resume["Resume management"]
  node_ats["ATS checking"]
  node_templates["Template selection"]
  node_edit["Portfolio customization"]
  node_stats["Portfolio statistics"]
end

subgraph group_publishing["Rendering and publishing"]
  node_home["Discover templates"]
  node_preview["Owner preview"]
  node_portfolio["Portfolio controller"]
  node_publicview["Public portfolio"]
  node_modern["Modern design"]
  node_minimal["Minimal design"]
  node_professional["Professional design"]
  node_creative["Creative design"]
  node_classic["Classic design"]
end

subgraph group_operations["Administration"]
  node_admin["Admin dashboard"]
  node_adminauth["Admin access checks"]
  node_adminusers["User administration"]
  node_admintemplates["Template administration"]
end

node_visitor(("Visitor"))
node_owner(("Portfolio owner"))
node_db[("Portfolio database")]
node_connection["Database connection"]

node_visitor -->|"browse"| node_home
node_home -->|"reads templates"| node_db
node_owner -->|"create account"| node_register
node_owner -->|"sign in"| node_login
node_register -->|"connects through"| node_connection
node_login -->|"connects through"| node_connection
node_userauth -->|"connects through"| node_connection
node_userauth -->|"checks account"| node_db
node_owner -->|"manage portfolio"| node_userdash
node_userdash -->|"requires login"| node_userauth
node_owner -->|"edit profile"| node_profile
node_owner -->|"edit content"| node_sections
node_owner -->|"manage resume"| node_resume
node_owner -->|"check resume"| node_ats
node_owner -->|"select design"| node_templates
node_owner -->|"customize layout"| node_edit
node_owner -->|"preview portfolio"| node_preview
node_preview -->|"requires login"| node_userauth
node_preview -->|"loads controller"| node_portfolio
node_visitor -->|"request portfolio"| node_portfolio
node_portfolio -->|"connects through"| node_connection
node_portfolio -->|"reads portfolio data"| node_db
node_portfolio -->|"renders selected design"| node_modern
node_portfolio -->|"renders selected design"| node_minimal
node_portfolio -->|"renders selected design"| node_professional
node_portfolio -->|"renders selected design"| node_creative
node_portfolio -->|"renders selected design"| node_classic
node_portfolio -->|"outputs page"| node_publicview
node_portfolio -->|"records public visit"| node_db
node_owner -->|"review analytics"| node_stats
node_admin -->|"requires admin access"| node_adminauth
node_adminauth -->|"connects through"| node_connection
node_adminauth -->|"checks administrator"| node_db
node_admin -->|"manage users"| node_adminusers
node_admin -->|"manage templates"| node_admintemplates

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_register,node_login,node_userauth toneBlue
class node_userdash,node_profile,node_sections,node_resume,node_ats,node_templates,node_edit,node_stats,node_db,node_connection toneAmber
class node_home,node_preview,node_portfolio,node_publicview,node_modern,node_minimal,node_professional,node_creative,node_classic toneMint
class node_admin,node_adminauth,node_adminusers,node_admintemplates toneRose
class node_visitor,node_owner toneIndigo
```

## Components

### Accounts and access

- **Register**
- **Sign in**
- **User access checks**

### Portfolio authoring

- **User dashboard**
- **Profile editing**
- **Portfolio sections**
- **Resume management**
- **ATS checking**
- **Template selection**
- **Portfolio customization**
- **Portfolio statistics**

### Rendering and publishing

- **Discover templates**
- **Owner preview**
- **Portfolio controller**
- **Public portfolio**
- **Modern design**
- **Minimal design**
- **Professional design**
- **Creative design**
- **Classic design**

### Administration

- **Admin dashboard**
- **Admin access checks**
- **User administration**
- **Template administration**

### Other components

- **Visitor**
- **Portfolio owner**
- **Portfolio database**
- **Database connection**

## Connections

- Visitor → Discover templates: browse
- Discover templates → Portfolio database: reads templates
- Portfolio owner → Register: create account
- Portfolio owner → Sign in: sign in
- Register → Database connection: connects through
- Sign in → Database connection: connects through
- User access checks → Database connection: connects through
- User access checks → Portfolio database: checks account
- Portfolio owner → User dashboard: manage portfolio
- User dashboard → User access checks: requires login
- Portfolio owner → Profile editing: edit profile
- Portfolio owner → Portfolio sections: edit content
- Portfolio owner → Resume management: manage resume
- Portfolio owner → ATS checking: check resume
- Portfolio owner → Template selection: select design
- Portfolio owner → Portfolio customization: customize layout
- Portfolio owner → Owner preview: preview portfolio
- Owner preview → User access checks: requires login
- Owner preview → Portfolio controller: loads controller
- Visitor → Portfolio controller: request portfolio
- Portfolio controller → Database connection: connects through
- Portfolio controller → Portfolio database: reads portfolio data
- Portfolio controller → Modern design: renders selected design
- Portfolio controller → Minimal design: renders selected design
- Portfolio controller → Professional design: renders selected design
- Portfolio controller → Creative design: renders selected design
- Portfolio controller → Classic design: renders selected design
- Portfolio controller → Public portfolio: outputs page
- Portfolio controller → Portfolio database: records public visit
- Portfolio owner → Portfolio statistics: review analytics
- Admin dashboard → Admin access checks: requires admin access
- Admin access checks → Database connection: connects through
- Admin access checks → Portfolio database: checks administrator
- Admin dashboard → User administration: manage users
- Admin dashboard → Template administration: manage templates
