A secure, role-based MVC architecture web banking system built using PHP, MySQL, AJAX, Chart.js, and JSON. It simulates core banking operations including user registration, admin approval, loan processing, deposits, and real-time financial visualization.
- Setup Instructions (Start Here)
- Features at a Glance
- Control Flow
- User Functionalities
- Admin Functionalities
- Shared Functionalities (Admin & User)
- How MVC Is Implemented
- Future Enhancements
- License
- Acknowledgements
- Contact
- Local server environment: XAMPP, WAMP, or MAMP
- PHP 7.x or higher
- MySQL 5.x or higher
git clone https://github.com/your-username/Banking_System-MVC_Based_Full_Stack_Web_Application.git-
Locate the
banking_system.sqlfile included in the project. -
Import it into MySQL:
-
Via phpMyAdmin:
- Open
http://localhost/phpmyadmin - Create a new DB (e.g.,
banking_system) - Import
banking_system.sql
- Open
-
Or via MySQL CLI:
mysql -u root -p banking_system < banking_system.sql
-
In config/db.php or your DB config file:
$host = "localhost";
$user = "root";
$pass = "";
$dbname = "banking_system";Start Apache and MySQL in your server tool, then visit:
http://localhost/Banking_System-MVC_Based_Full_Stack_Web_Application/
- Full MVC architecture
- User authentication and role-based access
- Admin approval system for registration, loans, and user control
- Real-time data visualization using Chart.js
- Clean and functional dashboard for both user and admin
-
Registration: User signs up and is auto-redirected to the login page.
-
Login & Role Check:
-
If not approved:
"You are not authorized to access this page right now. Please wait for admin approval. You will get an email soon."
-
-
Admin Approval:
-
On approval:
- Entry created in
accountstable - Role (
client) added inrolestable - Role assigned to the user via foreign key in
userstable
- Entry created in
-
- Register & login
- Pay bills
- Apply for loan (on approval, amount is added to user’s balance and shown on dashboard)
- Apply for card (pending future control)
- Deposit money
- View bills, transactions, and deposits using Chart.js with real data via AJAX + JSON
- Update avatar
- Edit profile info
- Change password
-
Add new users
-
Delete users
-
Approve or reject:
- User registrations
- Loan applications
- "Remember Me" login using cookies
- View and edit profile (via sessions)
- Change password
- Update avatar
| Component | Role |
|---|---|
| Model | Handles all database logic and queries |
| View | Displays the frontend (HTML/PHP templates) |
| Controller | Bridges the model and view; handles all request logic |
User submits loan request → Controller validates and forwards → Model inserts into DB → Admin views it → On approval, model updates user balance → View updates UI.
- 💸 Money transfer between users
- 🛠️ Admin dashboard with full banking control
- 💳 Card approval and user-side card management
If you have any feedback or suggestions for this project, please feel free to reach out or submit an issue on the GitHub repository.
This project is licensed under the MIT License - see the LICENSE file for details.
Special thanks to:
- Stack Overflow and GitHub communities for their valuable support and resources.
- And Also
🎓 MD. AL-AMIN
🎓 Assistant Professor, Department of Computer Science, AIUB
I really appreciate your guidance in the development of this project.
For more information, reach out to:
- Email: ahmedsszobaer@gmail.com
- GitHub: S. S. Zobaer Ahmed
- Linkedin: S. S. Zobaer Ahmed
- YouTube Channel: Code Craft Zobaer