# gopalakrishna57/pglife architecture

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

## Overview

PG-Life is a PHP property-finding and management site. Visitors search listings by city and gender, open property details, and can register or sign in; signed-in users can save properties of interest and submit reviews. Administrators sign in separately to publish properties and update descriptions. The excerpts show listing, detail, review, and admin-dashboard behavior; other endpoint internals are unsampled, so their links reflect only the visible forms or filenames. The React component is a separate static sample, not shown wired into the PHP workflow.

Main entry points: [`property_detail.php`](https://github.com/gopalakrishna57/pglife/blob/main/property_detail.php) (Property details), [`admin_dashboard.php`](https://github.com/gopalakrishna57/pglife/blob/main/admin_dashboard.php) (Admin dashboard), [`db_connect.php`](https://github.com/gopalakrishna57/pglife/blob/main/db_connect.php) (Database connection), [`property_list.php`](https://github.com/gopalakrishna57/pglife/blob/main/property_list.php) (Property listings)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_discovery["Property discovery"]
  node_home["Home and search<br/>[index.php]"]
  node_listing["Property listings<br/>[property_list.php]"]
  node_detail["Property details"]
end

subgraph group_accounts["Accounts and engagement"]
  node_header["Shared navigation<br/>[header.php]"]
  node_signup["Signup handler<br/>[signup_submit.php]"]
  node_login["Login handler<br/>[login_submit.php]"]
  node_logout["Logout handler<br/>[logout.php]"]
  node_dashboard["User dashboard<br/>[dashboard.php]"]
  node_interest["Interest toggle"]
  node_review["Review submission<br/>[submit_review.php]"]
end

subgraph group_admin["Property administration"]
  node_adminlogin["Admin sign-in<br/>[admin_login.php]"]
  node_admindash["Admin dashboard"]
  node_adminsubmit["Property publishing<br/>[admin_submit.php]"]
  node_adminupdate["Description update"]
end

subgraph group_data["Data access"]
  node_connection["Database connection<br/>[db_connect.php]"]
  node_database[("Application database")]
end

node_visitor(("Visitor"))

node_visitor -->|"browses"| node_home
node_home -->|"searches"| node_listing
node_listing -->|"opens property"| node_detail
node_home -->|"includes"| node_header
node_detail -->|"includes"| node_header
node_visitor -->|"submits signup"| node_signup
node_visitor -->|"submits login"| node_login
node_visitor -->|"requests logout"| node_logout
node_visitor -->|"views account"| node_dashboard
node_visitor -->|"toggles interest"| node_interest
node_detail -->|"submits review"| node_review
node_visitor -->|"admin sign-in"| node_adminlogin
node_adminlogin -->|"redirects on success"| node_admindash
node_admindash -->|"posts property"| node_adminsubmit
node_admindash -->|"posts description"| node_adminupdate
node_listing -->|"requires"| node_connection
node_detail -->|"requires"| node_connection
node_review -->|"requires"| node_connection
node_admindash -->|"requires"| node_connection
node_listing -->|"queries listings"| node_database
node_detail -->|"reads property and reviews"| node_database
node_review -->|"inserts review"| node_database
node_admindash -->|"reads properties"| node_database
node_dashboard -->|"requires"| node_connection

click node_home "https://github.com/gopalakrishna57/pglife/blob/main/index.php"
click node_listing "https://github.com/gopalakrishna57/pglife/blob/main/property_list.php"
click node_detail "https://github.com/gopalakrishna57/pglife/blob/main/property_detail.php"
click node_header "https://github.com/gopalakrishna57/pglife/blob/main/header.php"
click node_signup "https://github.com/gopalakrishna57/pglife/blob/main/signup_submit.php"
click node_login "https://github.com/gopalakrishna57/pglife/blob/main/login_submit.php"
click node_logout "https://github.com/gopalakrishna57/pglife/blob/main/logout.php"
click node_dashboard "https://github.com/gopalakrishna57/pglife/blob/main/dashboard.php"
click node_interest "https://github.com/gopalakrishna57/pglife/blob/main/toggle_interested.php"
click node_review "https://github.com/gopalakrishna57/pglife/blob/main/submit_review.php"
click node_adminlogin "https://github.com/gopalakrishna57/pglife/blob/main/admin_login.php"
click node_admindash "https://github.com/gopalakrishna57/pglife/blob/main/admin_dashboard.php"
click node_adminsubmit "https://github.com/gopalakrishna57/pglife/blob/main/admin_submit.php"
click node_adminupdate "https://github.com/gopalakrishna57/pglife/blob/main/admin_update_desc.php"
click node_connection "https://github.com/gopalakrishna57/pglife/blob/main/db_connect.php"

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_home,node_listing,node_detail toneBlue
class node_header,node_signup,node_login,node_logout,node_dashboard,node_interest,node_review toneAmber
class node_adminlogin,node_admindash,node_adminsubmit,node_adminupdate toneMint
class node_connection,node_database toneRose
class node_visitor toneIndigo
```

## Components

### Property discovery

- [Home and search](https://github.com/gopalakrishna57/pglife/blob/main/index.php): `index.php`
- [Property listings](https://github.com/gopalakrishna57/pglife/blob/main/property_list.php): `property_list.php`
- [Property details](https://github.com/gopalakrishna57/pglife/blob/main/property_detail.php): `property_detail.php`

### Accounts and engagement

- [Shared navigation](https://github.com/gopalakrishna57/pglife/blob/main/header.php): `header.php`
- [Signup handler](https://github.com/gopalakrishna57/pglife/blob/main/signup_submit.php): `signup_submit.php`
- [Login handler](https://github.com/gopalakrishna57/pglife/blob/main/login_submit.php): `login_submit.php`
- [Logout handler](https://github.com/gopalakrishna57/pglife/blob/main/logout.php): `logout.php`
- [User dashboard](https://github.com/gopalakrishna57/pglife/blob/main/dashboard.php): `dashboard.php`
- [Interest toggle](https://github.com/gopalakrishna57/pglife/blob/main/toggle_interested.php): `toggle_interested.php`
- [Review submission](https://github.com/gopalakrishna57/pglife/blob/main/submit_review.php): `submit_review.php`

### Property administration

- [Admin sign-in](https://github.com/gopalakrishna57/pglife/blob/main/admin_login.php): `admin_login.php`
- [Admin dashboard](https://github.com/gopalakrishna57/pglife/blob/main/admin_dashboard.php): `admin_dashboard.php`
- [Property publishing](https://github.com/gopalakrishna57/pglife/blob/main/admin_submit.php): `admin_submit.php`
- [Description update](https://github.com/gopalakrishna57/pglife/blob/main/admin_update_desc.php): `admin_update_desc.php`

### Data access

- [Database connection](https://github.com/gopalakrishna57/pglife/blob/main/db_connect.php): `db_connect.php`
- **Application database**

### Other components

- **Visitor**

## Connections

- Visitor → Home and search: browses
- Home and search → Property listings: searches
- Property listings → Property details: opens property
- Home and search → Shared navigation: includes
- Property details → Shared navigation: includes
- Visitor → Signup handler: submits signup
- Visitor → Login handler: submits login
- Visitor → Logout handler: requests logout
- Visitor → User dashboard: views account
- Visitor → Interest toggle: toggles interest
- Property details → Review submission: submits review
- Visitor → Admin sign-in: admin sign-in
- Admin sign-in → Admin dashboard: redirects on success
- Admin dashboard → Property publishing: posts property
- Admin dashboard → Description update: posts description
- Property listings → Database connection: requires
- Property details → Database connection: requires
- Review submission → Database connection: requires
- Admin dashboard → Database connection: requires
- Property listings → Application database: queries listings
- Property details → Application database: reads property and reviews
- Review submission → Application database: inserts review
- Admin dashboard → Application database: reads properties
- User dashboard → Database connection: requires
