A role-based Society Management System built using Django.
This application allows Admin, Owner, and Tenant users to manage societies, flats, and bills efficiently with secure role-based access.
- Custom User model with role-based access:
ADMINOWNERTENANT
- Only active users can log in
- Separate dashboards for each role
- Access Admin Dashboard
- Create Owner accounts
- Create Society
- Create Flats
- Create Bills
- Access Owner Dashboard
- View assigned flats
- View bills
- Edit bill payment information (update paid status)
- Access Tenant Dashboard
- View assigned flat
- View bills
- Backend: Django 4.2
- Language: Python 3.8+
- Database: SQLite
- Frontend: HTML, CSS
Society Management System/
│
├── core/ │ ├── models.py │ ├── views.py │ ├── urls.py
│
├── society_management/ │ ├── settings.py
│
├── templates/ ├── static/ ├── manage.py
git clone
cd Society Management System
2️⃣ Install Django
pip install django
3️⃣ Apply Database Migrations
python manage.py makemigrations
python manage.py migrate
4️⃣ Run the Development Server
python manage.py runserver
Open in browser:
🔐 Default Login Credentials Admin
Username: admin Password: 1234 Role: ADMIN
Owner
Username: owner Password: 1234 Role: OWNER
Tenant
Username: testtenet Password: 1234 Role: TENANT
📌 Assumptions Made
Custom User model includes a role field.
Roles are defined as:
ADMIN
OWNER
TENANT
Only active users (is_active=True) can log in.
SQLite is used as the default database.
Templates are stored in the project-level templates/ directory.
Static files are stored in the project-level static/ directory.
Owners are allowed to update their bill payment status.