# dixitvaghela11/real-estate-management-system architecture

> Architecture diagram of the GitHub repository dixitvaghela11/real-estate-management-system, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dixitvaghela11/real-estate-management-system
- Repository: https://github.com/dixitvaghela11/real-estate-management-system

## Overview

This is a PHP/MySQL real-estate marketplace with separate public, user, agent, and administrator areas. The principal workflow is browsing and filtering listings, opening property details, and contacting an agent; users can also save listings, while agents manage properties and inquiries and administrators oversee accounts and listings. Registration, login, email verification/OTP, profile management, and SMTP email support these workflows. The README documents capabilities beyond the sampled excerpts; links for those are shown at the feature level, not as claims about unsampled call wiring.

Main entry points: [`propertiesgrid.php`](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/propertiesgrid.php) (Listing search), [`register.php`](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/register.php) (Registration), [`index.php`](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/index.php) (Property home), [`login.php`](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/login.php) (Login)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_marketplace["Property marketplace"]
  node_home["Property home<br/>[index.php]"]
  node_listing_search["Listing search<br/>[propertiesgrid.php]"]
  node_property_filter["Property filters"]
  node_property_detail["Property details"]
  node_wishlist["Wishlist<br/>[wishlist.php]"]
  node_contact["Contact forms<br/>[submit_contact.php]"]
end

subgraph group_identity["Accounts and access"]
  node_registration["Registration<br/>[register.php]"]
  node_authentication["Login<br/>[login.php]"]
  node_otp["Email verification<br/>[verify_otp.php]"]
  node_user_profile["User profile<br/>[profile.php]"]
end

subgraph group_agent["Agent workspace"]
  node_agent_property["Property management<br/>[addproperty.php]"]
  node_agent_listing["Agent listings<br/>[propertygrid.php]"]
  node_agent_inquiries["Inquiry management"]
  node_agent_profile["Agent profile<br/>[profile.php]"]
end

subgraph group_admin["Administration"]
  node_admin_login["Admin login<br/>[index.php]"]
  node_admin_dashboard["Admin overview<br/>[dashboard.php]"]
  node_admin_accounts["Account management<br/>[userlist.php]"]
  node_admin_properties["Listing oversight<br/>[property.php]"]
end

subgraph group_integrations["Data and email"]
  node_mysql[("MySQL database")]
  node_smtp["SMTP mail service"]
end

node_visitor(("Visitor"))
node_user(("User"))
node_agent_actor(("Agent"))
node_admin_actor(("Administrator"))

node_visitor -->|"opens"| node_home
node_user -->|"browses"| node_home
node_agent_actor -->|"signs in"| node_authentication
node_admin_actor -->|"signs in"| node_admin_login
node_home -->|"opens listings"| node_listing_search
node_listing_search -->|"filters"| node_property_filter
node_property_filter -->|"queries listings"| node_mysql
node_listing_search -->|"reads listings"| node_mysql
node_property_detail -->|"reads property"| node_mysql
node_user -->|"views listing"| node_property_detail
node_user -->|"saves listing"| node_wishlist
node_wishlist -->|"stores saved listings"| node_mysql
node_visitor -->|"registers"| node_registration
node_registration -->|"stores account"| node_mysql
node_user -->|"signs in"| node_authentication
node_authentication -->|"checks account"| node_mysql
node_registration -->|"verifies email"| node_otp
node_otp -.->|"sends code"| node_smtp
node_user -->|"manages profile"| node_user_profile
node_user_profile -->|"updates profile"| node_mysql
node_visitor -->|"submits message"| node_contact
node_contact -->|"stores message"| node_mysql
node_agent_actor -->|"manages listings"| node_agent_property
node_agent_property -->|"writes property"| node_mysql
node_agent_actor -->|"reviews listings"| node_agent_listing
node_agent_listing -->|"reads listings"| node_mysql
node_agent_actor -->|"handles inquiries"| node_agent_inquiries
node_agent_inquiries -->|"reads and updates"| node_mysql
node_agent_actor -->|"manages profile"| node_agent_profile
node_admin_actor -->|"authenticates"| node_admin_login
node_admin_login -->|"checks credentials"| node_mysql
node_admin_actor -->|"reviews overview"| node_admin_dashboard
node_admin_dashboard -->|"reads reports"| node_mysql
node_admin_actor -->|"manages accounts"| node_admin_accounts
node_admin_accounts -->|"reads accounts"| node_mysql
node_admin_actor -->|"moderates listings"| node_admin_properties
node_admin_properties -->|"manages listings"| node_mysql

click node_home "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/index.php"
click node_listing_search "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/propertiesgrid.php"
click node_property_filter "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/filter_properties.php"
click node_property_detail "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/user/property-detail.php"
click node_wishlist "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/user/wishlist.php"
click node_contact "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/submit_contact.php"
click node_registration "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/register.php"
click node_authentication "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/login.php"
click node_otp "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/verify_otp.php"
click node_user_profile "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/user/profile.php"
click node_agent_property "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/agent/addproperty.php"
click node_agent_listing "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/agent/propertygrid.php"
click node_agent_inquiries "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/agent/manageenquiries.php"
click node_agent_profile "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/agent/profile.php"
click node_admin_login "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/admin/index.php"
click node_admin_dashboard "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/admin/dashboard.php"
click node_admin_accounts "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/admin/userlist.php"
click node_admin_properties "https://github.com/dixitvaghela11/real-estate-management-system/blob/main/admin/property.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_search,node_property_filter,node_property_detail,node_wishlist,node_contact,node_user toneBlue
class node_registration,node_authentication,node_otp,node_user_profile toneAmber
class node_agent_property,node_agent_listing,node_agent_inquiries,node_agent_profile toneMint
class node_admin_login,node_admin_dashboard,node_admin_accounts,node_admin_properties toneRose
class node_mysql,node_smtp,node_visitor,node_agent_actor,node_admin_actor toneIndigo
```

## Components

### Property marketplace

- [Property home](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/index.php): `index.php`
- [Listing search](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/propertiesgrid.php): `propertiesgrid.php`
- [Property filters](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/filter_properties.php): `filter_properties.php`
- [Property details](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/user/property-detail.php): `user/property-detail.php`
- [Wishlist](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/user/wishlist.php): `user/wishlist.php`
- [Contact forms](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/submit_contact.php): `submit_contact.php`

### Accounts and access

- [Registration](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/register.php): `register.php`
- [Login](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/login.php): `login.php`
- [Email verification](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/verify_otp.php): `verify_otp.php`
- [User profile](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/user/profile.php): `user/profile.php`

### Agent workspace

- [Property management](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/agent/addproperty.php): `agent/addproperty.php`
- [Agent listings](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/agent/propertygrid.php): `agent/propertygrid.php`
- [Inquiry management](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/agent/manageenquiries.php): `agent/manageenquiries.php`
- [Agent profile](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/agent/profile.php): `agent/profile.php`

### Administration

- [Admin login](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/admin/index.php): `admin/index.php`
- [Admin overview](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/admin/dashboard.php): `admin/dashboard.php`
- [Account management](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/admin/userlist.php): `admin/userlist.php`
- [Listing oversight](https://github.com/dixitvaghela11/real-estate-management-system/blob/main/admin/property.php): `admin/property.php`

### Data and email

- **MySQL database**
- **SMTP mail service**

### Other components

- **Visitor**
- **User**
- **Agent**
- **Administrator**

## Connections

- Visitor → Property home: opens
- User → Property home: browses
- Agent → Login: signs in
- Administrator → Admin login: signs in
- Property home → Listing search: opens listings
- Listing search → Property filters: filters
- Property filters → MySQL database: queries listings
- Listing search → MySQL database: reads listings
- Property details → MySQL database: reads property
- User → Property details: views listing
- User → Wishlist: saves listing
- Wishlist → MySQL database: stores saved listings
- Visitor → Registration: registers
- Registration → MySQL database: stores account
- User → Login: signs in
- Login → MySQL database: checks account
- Registration → Email verification: verifies email
- Email verification → SMTP mail service: sends code
- User → User profile: manages profile
- User profile → MySQL database: updates profile
- Visitor → Contact forms: submits message
- Contact forms → MySQL database: stores message
- Agent → Property management: manages listings
- Property management → MySQL database: writes property
- Agent → Agent listings: reviews listings
- Agent listings → MySQL database: reads listings
- Agent → Inquiry management: handles inquiries
- Inquiry management → MySQL database: reads and updates
- Agent → Agent profile: manages profile
- Administrator → Admin login: authenticates
- Admin login → MySQL database: checks credentials
- Administrator → Admin overview: reviews overview
- Admin overview → MySQL database: reads reports
- Administrator → Account management: manages accounts
- Account management → MySQL database: reads accounts
- Administrator → Listing oversight: moderates listings
- Listing oversight → MySQL database: manages listings
