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.