DEV Community

Cover image for Society Management System Using PHP and MySQL (Free Source Code)
Lavkush kumar
Lavkush kumar

Posted on Originally published at codingcush.com

Society Management System Using PHP and MySQL (Free Source Code)

Originally published on CodingCush.

A Society Management System is a web application that helps a housing society manage its daily work — flats, residents, monthly maintenance bills, complaints, visitors and facility bookings — from one simple dashboard. In this post, I am sharing a complete and free Society Management System built in Core PHP and MySQL, with full source code. It has two logins (Society Office and Resident), one-click monthly billing with printable receipts, a visitor gate register and much more. You can download it from GitHub, run it on XAMPP in five minutes, and use it for your society, your college project, or your final-year project viva.

What Problem Does It Solve?

Most housing societies still run on paper registers and Excel sheets. The secretary maintains one file for maintenance dues, another for complaints, and the guard keeps a rough notebook for visitors. At month end, nobody is fully sure who has paid and who has not. Arguments start, records go missing, and the annual meeting becomes a blame game.

A society management system fixes this by keeping everything in one database. Every flat, every resident, every bill and every complaint is recorded once and can be seen anytime. Residents also get their own login, so they can check their dues, download receipts and raise complaints without visiting the society office. Less paperwork, fewer fights, happier neighbours. Well, mostly.

Features of This Society Management System

The project is divided into two panels. The Admin panel is for the society office, and the Resident panel is for flat owners and tenants. Here is what each side can do:

Module Admin (Society Office) Resident
Flats Add/edit flats, see occupancy grid block-wise See own flat details
Residents Create logins, assign flats, manage family & vehicles Manage own family members and vehicles
Maintenance Billing Generate monthly bills in one click, record payments, print receipts View bills, payment history and receipts
Complaints Track and update status with remarks Raise complaints and track them
Visitors Gate register with check-in and check-out See visitors of own flat
Notices & Events Post notices and society events Read notices and events
Facilities Approve or reject booking requests Book hall, clubhouse, guest room
Expenses & Reports Record expenses, collection and dues reports —

Some small features make a big difference in daily use. Parking is billed automatically per vehicle, so a flat with two cars pays more than a flat with none. A late fee is added automatically when a bill is paid after the due date. And when a resident tries to book the community hall for a date that is already approved for someone else, the system blocks the double booking politely instead of creating a wedding-versus-birthday war.

How Maintenance Billing Works

Billing is the heart of this project, so I kept it very simple. The office sets the rates once in Settings — maintenance per flat type (1BHK, 2BHK, 3BHK, 4BHK), a water charge per flat, parking per vehicle, the late fee and the due date. After that, generating a full month of bills takes exactly one click:

Bill Total = Maintenance (by flat type)
           + Water Charge
           + Parking (rate × number of vehicles)
           + Other Charges (manual adjustment)
           + Late Fee (only if paid after the due date)
Enter fullscreen mode Exit fullscreen mode

Every bill moves through three clear statuses — Unpaid → Partial → Paid — depending on how much has been collected. Part payments are fully supported, because real life rarely pays in full and on time. Each payment generates a neat printable receipt, and the office can export the full dues list as a CSV file for follow-ups.

SocietyPro society management system on GitHub — project repository with source code files

The complete project on GitHub — source code, database file and setup guide, free to download.

Database Design in Short

The MySQL database has 14 tables. The important ones are flats (block, flat number, type), users (admins and residents, with the resident's flat), bills and payments (one bill has many payments), complaints, visitors, notices, events, facilities, bookings, expenses and settings. Foreign keys keep everything connected — delete a resident and their family members and vehicles are removed cleanly, while the flat's bill history stays safe for records. If you are new to relational databases, the official MySQL documentation is the best free reference to understand how these tables relate.

How to Run This Project on Your Computer

You only need XAMPP (or WAMP) installed. The full setup takes about five minutes:

Step 1 — Download the source code from GitHub using the download button given below, or clone it with Git:

git clone https://github.com/kushkrg/Advanced-Society-Management-System.git
Enter fullscreen mode Exit fullscreen mode

Step 2 — Copy the project folder into your htdocs folder (in XAMPP) and start Apache and MySQL.

Step 3 — Import the database. Open phpMyAdmin, go to Import, and select the database.sql file from the project. It creates the database society_system, all 14 tables and some demo data automatically.

Step 4 — Check the database settings in config/database.php. The default XAMPP settings (user root, empty password) already work for most students:

define('DB_HOST', 'localhost');
define('DB_NAME', 'society_system');
define('DB_USER', 'root');
define('DB_PASS', '');
Enter fullscreen mode Exit fullscreen mode

Step 5 — Open the project in your browser at http://localhost/society-management-system and log in with the demo accounts: Admin — admin@example.com / Admin@123, Resident of Flat A-101 — resident@example.com / Resident@123. The demo data (flats, a resident family, one paid and one unpaid bill, notices and events) is already loaded, so you can explore every module immediately.

Download the Source Code (GitHub)

The complete project is free on GitHub — PHP source code, MySQL database file, demo data and a full README with screenshots and setup help:

👉 GitHub Repository: github.com/kushkrg/Advanced-Society-Management-System

👉 Direct Download (ZIP): Download the full project ZIP

If the project helps you, please give it a star on GitHub. It takes two seconds and motivates me to publish more free projects like our Student Registration and Login System in PHP.

Security and Good Practices Used

Beginner projects often ignore security, so I built this one the right way from the start. All database queries use PDO prepared statements, which means SQL injection simply does not work here — you can read more in the PHP PDO documentation. Passwords are stored with password_hash(), every form carries a CSRF token, output is escaped against XSS, and residents can only ever see their own flat's bills and receipts — the check runs on the server, not just in the menu. Public registration can only create a resident account, never an admin. These are small habits, but they are exactly what examiners and interviewers love to ask about.

Who Should Use This Project?

This project is perfect for BCA, MCA and B.Tech students looking for a strong final-year or mini project with a real-world story, for PHP beginners who want to study one complete application end to end, and for small housing societies that genuinely need a simple system without paying for expensive software. If you are collecting ideas, also see my list of exciting PHP project ideas for beginners — a society system is honestly one of the best, because every teacher and every society secretary instantly understands it.

Frequently Asked Questions

Is this Society Management System really free to download?

Yes. The full source code, database file and demo data are free on GitHub. You can use it for learning, college projects and your own society. A credit link back to Coding Cush is appreciated but not compulsory.

Which technologies are used in this project?

Core PHP (no framework), MySQL with PDO, HTML, CSS and a little JavaScript. It runs on PHP 8 with XAMPP, WAMP or any standard shared hosting that supports PHP and MySQL.

Can residents pay maintenance online in this system?

In this version, the office records payments (Cash, UPI, bank transfer or cheque) and the resident instantly sees the payment and receipt in their login. Adding a payment gateway like Razorpay is a great next upgrade and a nice viva point to discuss.

How are maintenance bills calculated?

Each bill adds the maintenance rate for the flat type, a fixed water charge, parking charges per registered vehicle, any manual other charges, and a one-time late fee if payment happens after the due date. All rates are editable in Settings.

Can I customise this project for my college submission?

Of course. Change the society name and rates in Settings, edit colours in the CSS file, or add modules like a poll system or document vault. Understanding and extending the code is the best way to prepare for your project viva.

Conclusion

A society management system looks simple from outside, but it quietly teaches you almost everything in PHP development — logins and roles, CRUD, billing logic, reports, file-free receipts and real security habits. Download the source code from GitHub, run it once with the demo data, and then break it, change it and make it yours. That is honestly how every good PHP developer I know actually learned. Happy coding!

Top comments (0)