Bhaban Documentation

Apartment Building Rent, Service Fees & Accounting Management System

Version 1.0  Β·  Laravel 12  Β·  PHP 8.2+

Introduction

Bhaban is a full-featured web application built with Laravel 12 for managing apartment buildings. It handles service charge billing, tenant rent collection, expense tracking, income recording, complaints management, notices, and real-time chat between tenants and management.

The system supports multiple roles β€” a super admin overseeing everything, cashiers handling billing and payments, flat owners managing their own tenants, and tenants submitting payments and complaints online.

Features

🏠

Multi-role System

Super Admin, Cashier, Flat Owner, and Tenant β€” each with a dedicated panel.

🧾

Monthly Billing

Auto-generate service charge bills for all flats with individual line items.

πŸ’³

Online Payment Requests

Tenants upload payment vouchers; cashiers review and approve.

🏑

Rent Management

Owners set monthly rent per tenant; tenants submit rent payments online.

πŸ“Š

Accounting Reports

Income, expense, collection summary and monthly closing reports.

πŸ’¬

Real-time Chat

Tenant–management messaging with online status indicator.

πŸ“£

Notices Board

Publish notices with priority levels visible to all tenants.

πŸ”§

Complaints Tracker

Tenants raise complaints; management replies and updates status.

🏒

Flat & Garage Management

Track occupancy, assign tenants, manage garage rentals.

πŸ“€

Export to Excel & PDF

Export reports and bills to Excel and PDF formats.

πŸ“±

Mobile Responsive

Bootstrap 5 β€” works on desktop, tablet, and mobile.

πŸ”’

Role-based Permissions

Fine-grained access control via Spatie Laravel Permission.

πŸ“

Activity Log

All major actions are logged for audit purposes.

πŸŒ™

Web Installer

Browser-based 4-step installer β€” no terminal required.

Requirements

RequirementMinimum Version
PHP8.2 or higher
MySQL8.0 or higher
Composer2.x
Laravel12.x (included)
PHP ExtensionsPDO, pdo_mysql, openssl, mbstring, tokenizer, xml, cURL, GD/Imagick, fileinfo
Minimum RAM512 MB
⚠️ SQLite is not supported. A MySQL database is required.

Installation

Option A β€” Web Installer (Recommended)

  1. Upload all project files to your server's web root (e.g. public_html/ or /var/www/html/).
  2. Create a MySQL database in cPanel / phpMyAdmin (e.g. bhaban_db).
  3. Open https://yourdomain.com/install in your browser.
  4. Follow the 4-step wizard: Requirements β†’ Database β†’ Admin Account β†’ Install.
  5. The installer will run migrations, seed roles & settings, and create your admin account automatically.
  6. Log in at https://yourdomain.com/login.

Option B β€” Command Line

# 1. Copy the environment file
cp .env.example .env

# 2. Edit .env with your database credentials
nano .env

# 3. Install PHP dependencies
composer install --no-dev --optimize-autoloader

# 4. Generate application key
php artisan key:generate

# 5. Run migrations and seed
php artisan migrate --force
php artisan db:seed --class=RolesAndPermissionsSeeder
php artisan db:seed --class=SettingsSeeder
php artisan db:seed --class=ExpenseCategorySeeder
php artisan db:seed --class=IncomeCategorySeeder

# 6. Create storage link
php artisan storage:link

# 7. Optimise (production)
php artisan config:cache
php artisan route:cache
php artisan view:cache

# 8. Mark as installed (important!)
echo "installed" > storage/installed
ℹ️ After installation, log in and go to Settings to configure your building name, address, bKash/Nagad payment numbers, and service charge amounts.

Environment Configuration

KeyDescription
APP_NAMEYour building/app name shown in the UI
APP_URLYour full domain URL (e.g. https://yourdomain.com)
DB_HOST / DB_DATABASE / DB_USERNAME / DB_PASSWORDMySQL connection details
MAIL_*SMTP mail settings for email notifications
TELEGRAM_BOT_TOKENOptional β€” Telegram bot token for notifications
SESSION_LIFETIMESession duration in minutes (default: 43200 = 30 days)

User Roles

RoleDescription
system_admin Manages buildings and subscriptions at the platform level.
building_admin Full access to everything within a building β€” manage owners, cashiers, billing, expenses, reports, settings, month closing.
cashier Can generate bills, record payments, manage expenses and incomes, manage notices, review payment requests. Cannot close months or manage settings.
flat_owner Manages their own flats and tenants. Sets rent amounts, reviews tenant rent payments, creates complaints, views notices.
tenant Views own bills, submits payment vouchers, pays house rent, raises and tracks own complaints.
guard Manages entry logs for the building.

Application Settings

Go to Admin β†’ Settings to configure:

Admin Panel

Accessible by building_admin and cashier roles.

SectionDescription
DashboardSummary stats β€” total flats, collection, expenses, complaints, recent activity
Flat OwnersAdd, edit, activate/deactivate owner accounts
FlatsManage all flats β€” assign to owners, track occupancy
GaragesManage garage rentals
Monthly BillsGenerate monthly service bills, edit line items, mark as paid
PaymentsRecord manual payments, print receipts
Payment RequestsReview tenant online payment vouchers β€” approve or reject
ExpensesRecord building expenses by category, approve/reject
IncomesRecord non-rent income (garage rent, roof rent, etc.)
ReportsCollection summary, expense summary, ledger
Monthly ClosingClose month after reconciliation
ComplaintsView and reply to all tenant complaints
NoticesPublish notices to all tenants
SettingsConfigure building, billing, payment details

Owner Panel

Accessible by flat_owner role only.

SectionDescription
DashboardOverview of own flats, tenants, and pending rent payments
My FlatsView and manage flats assigned to this owner
My TenantsAdd/edit tenants, set monthly rent, activate/deactivate
Rent PaymentsReview tenant rent payment submissions β€” approve or reject
ExpensesSubmit and track expenses for own flats
ComplaintsView complaints from own tenants
NoticesView building notices
ChatMessage tenants directly

Tenant Panel

Accessible by tenant role only.

SectionDescription
DashboardCurrent due, monthly rent, recent bills, recent complaints, notices
My BillsView monthly service charge bills and payment status
Payment RequestsSubmit bill payment vouchers for online approval
House RentView monthly rent, submit rent payments, track history
ComplaintsRaise complaints, view replies, track status
ChatMessage building management directly

Demo Accounts

βœ… Run the DemoSeeder during installation (check "Import demo data") to create these accounts.
RoleEmailPassword
building_adminYour account from installerYour password
cashiercashier@demo.compassword
flat_ownerowner1@demo.compassword
flat_ownerowner2@demo.compassword
tenanttenant1@demo.compassword
tenanttenant2@demo.compassword
⚠️ Change all demo passwords immediately in a production environment.

FAQ

How do I add a new flat owner?

Go to Admin β†’ Flat Owners β†’ Create. Enter name, email, and password. The owner will receive login credentials and can immediately log in to the Owner Panel.

Can one owner manage multiple flats?

Yes. Each flat is assigned to one owner during flat creation. An owner can have any number of flats.

How does a tenant pay service charges online?

The tenant logs in β†’ sees the bill β†’ clicks "Pay Now" β†’ uploads a payment screenshot and transaction ID. The cashier reviews and approves from the Admin β†’ Payment Requests section.

How does house rent collection work?

The flat owner sets a monthly rent amount on each tenant's profile. The tenant then goes to House Rent β†’ Pay, selects the month, enters the transaction ID, and uploads a voucher. The owner reviews and approves from their Rent Payments panel.

How do I upgrade?

Back up your database and files. Upload the new version files. Run php artisan migrate --force and clear caches with php artisan optimize.

Changelog

v1.0 β€” May 2026

Support

For support, please use the Envato item comments section or contact us through the author profile.

When reporting a bug, please include: PHP version, MySQL version, browser, and steps to reproduce.


Bhaban v1.0  Β·  Built with Laravel 12  Β·  © All rights reserved.