# anusha29112/property-management architecture

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

- Interactive diagram: https://gitdiagram.com/anusha29112/property-management
- Repository: https://github.com/anusha29112/property-management

## Overview

This is a Django REST API for user registration/login and rental-property listings. A client reaches API routes, authenticates with JWT, and can browse listings; admins and landlords create properties, while owners or superusers can view, edit, or delete individual records. Registration captures a role and phone in a profile. The sampled source shows views, serializers, permissions, and models; no README documents further capabilities, and database operations are represented at the model boundary.

Main entry points: [`properties/views.py`](https://github.com/anusha29112/property-management/blob/master/properties/views.py) (Identity views), [`properties/urls.py`](https://github.com/anusha29112/property-management/blob/master/properties/urls.py) (API routes), [`properties/serializers.py`](https://github.com/anusha29112/property-management/blob/master/properties/serializers.py) (Registration serializer), [`properties/models.py`](https://github.com/anusha29112/property-management/blob/master/properties/models.py) (Property model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_routing["API routing"]
  node_root_routes["Root routes<br/>[urls.py]"]
  node_api_routes["API routes<br/>[urls.py]"]
end

subgraph group_identity["Identity and access"]
  node_identity_views["Identity views<br/>[views.py]"]
  node_registration_serializer["Registration serializer<br/>[serializers.py]"]
  node_login_serializer["Login serializer<br/>[serializers.py]"]
  node_permissions["Role permissions<br/>[permissions.py]"]
end

subgraph group_properties["Property management"]
  node_property_views["Property views<br/>[views.py]"]
  node_property_serializer["Property serializer<br/>[serializers.py]"]
end

subgraph group_persistence["Persistence"]
  node_property_model["Property model<br/>[models.py]"]
  node_profile_model["Profile model<br/>[models.py]"]
  node_user_model["Django user model"]
  node_database[("PostgreSQL")]
end

node_client(("API client"))
node_auth_framework["Django authentication"]
node_jwt["JWT tokens"]

node_client -->|"sends requests"| node_root_routes
node_root_routes -->|"includes API routes"| node_api_routes
node_api_routes -->|"dispatches identity"| node_identity_views
node_api_routes -->|"dispatches properties"| node_property_views
node_identity_views -->|"validates registration"| node_registration_serializer
node_identity_views -->|"validates credentials"| node_login_serializer
node_identity_views -->|"authenticates user"| node_auth_framework
node_identity_views -->|"issues tokens"| node_jwt
node_registration_serializer -->|"creates user"| node_user_model
node_registration_serializer -->|"creates profile"| node_profile_model
node_property_views -->|"checks access"| node_permissions
node_property_views -->|"validates and formats"| node_property_serializer
node_property_views -->|"queries and deletes"| node_property_model
node_property_serializer -->|"serializes and saves"| node_property_model
node_profile_model -->|"persists profile"| node_database
node_property_model -->|"persists properties"| node_database
node_user_model -->|"persists users"| node_database

click node_root_routes "https://github.com/anusha29112/property-management/blob/master/config/urls.py"
click node_api_routes "https://github.com/anusha29112/property-management/blob/master/properties/urls.py"
click node_identity_views "https://github.com/anusha29112/property-management/blob/master/properties/views.py"
click node_registration_serializer "https://github.com/anusha29112/property-management/blob/master/properties/serializers.py"
click node_login_serializer "https://github.com/anusha29112/property-management/blob/master/properties/serializers.py"
click node_permissions "https://github.com/anusha29112/property-management/blob/master/properties/permissions.py"
click node_property_views "https://github.com/anusha29112/property-management/blob/master/properties/views.py"
click node_property_serializer "https://github.com/anusha29112/property-management/blob/master/properties/serializers.py"
click node_property_model "https://github.com/anusha29112/property-management/blob/master/properties/models.py"
click node_profile_model "https://github.com/anusha29112/property-management/blob/master/properties/models.py"

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_root_routes,node_api_routes,node_client toneBlue
class node_identity_views,node_registration_serializer,node_login_serializer,node_permissions toneAmber
class node_property_views,node_property_serializer toneMint
class node_property_model,node_profile_model,node_user_model,node_database toneRose
class node_auth_framework,node_jwt toneIndigo
```

## Components

### API routing

- [Root routes](https://github.com/anusha29112/property-management/blob/master/config/urls.py): `config/urls.py`
- [API routes](https://github.com/anusha29112/property-management/blob/master/properties/urls.py): `properties/urls.py`

### Identity and access

- [Identity views](https://github.com/anusha29112/property-management/blob/master/properties/views.py): `properties/views.py`
- [Registration serializer](https://github.com/anusha29112/property-management/blob/master/properties/serializers.py): `properties/serializers.py`
- [Login serializer](https://github.com/anusha29112/property-management/blob/master/properties/serializers.py): `properties/serializers.py`
- [Role permissions](https://github.com/anusha29112/property-management/blob/master/properties/permissions.py): `properties/permissions.py`

### Property management

- [Property views](https://github.com/anusha29112/property-management/blob/master/properties/views.py): `properties/views.py`
- [Property serializer](https://github.com/anusha29112/property-management/blob/master/properties/serializers.py): `properties/serializers.py`

### Persistence

- [Property model](https://github.com/anusha29112/property-management/blob/master/properties/models.py): `properties/models.py`
- [Profile model](https://github.com/anusha29112/property-management/blob/master/properties/models.py): `properties/models.py`
- **Django user model**
- **PostgreSQL**

### Other components

- **API client**
- **Django authentication**
- **JWT tokens**

## Connections

- API client → Root routes: sends requests
- Root routes → API routes: includes API routes
- API routes → Identity views: dispatches identity
- API routes → Property views: dispatches properties
- Identity views → Registration serializer: validates registration
- Identity views → Login serializer: validates credentials
- Identity views → Django authentication: authenticates user
- Identity views → JWT tokens: issues tokens
- Registration serializer → Django user model: creates user
- Registration serializer → Profile model: creates profile
- Property views → Role permissions: checks access
- Property views → Property serializer: validates and formats
- Property views → Property model: queries and deletes
- Property serializer → Property model: serializes and saves
- Profile model → PostgreSQL: persists profile
- Property model → PostgreSQL: persists properties
- Django user model → PostgreSQL: persists users
