/UBank

My own banking software made with 5 programming languages.

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

UBank Project

My own banking software made with 5 programming languages (screenshots below).
PICTURE logo PICTURE logo PICTURE logo PICTURE logo
More screenshots here.

About

UBank is a small banking system, which can be installed online/offline for personal use. I started the UBank project to learn how to make a bank demo using html, css & javascript for the frontend and PHP & mysql for the backend. After a while I kept adding new features to expand it and at the moment it got a homepage, a user panel and an administrator panel. To host this project, but keep it offline (for security purposes) I used Ampps for the Apache webserver & MySQL application, because it's installed automatically and it's very usefull for managing offline domains on your pc. To access the MySQL databases I used the PHPMyAdmin console in AMPPS.

Features

  • 2 Different user accounts and 3 different admin accounts on two seperate systems:
    Main user login page (http://account.ubank.me):
    • Current account: normal tranfer account 'and where you money can be used in loans'.
    • Savings account: same as current 'but it won't get used in loans'.
    Admin login panel (http://account.ubank.me/staff/):
    • Owner account: only one (because of the highest permissions), has access to all of the administrator functions in the panel.
    • Admin account: unlimited, has access to the maintenance panel, can add/edit/remove staff and users.
    • Staff account: unlimited, can approve/deny card requests, can answers user questions, can add/edit/remove users.
  • Add users to your contact list to transfer funds to them. You will need to know their full name, account number, country and ifsc code.
  • Users can request cards for their account (mastercard, visacard or creditcard) and staff members can approve/deny them.
  • User can ask questions, which will be answered by a staff member.
  • Everyone can go to their settings page to change their account password manually. Other changes require a support ticket for the staff to change the information.

Important Details

  1. The UBank project has two domains: ubank.me (homepage with information and account creation) and account.ubank.me. The account.ubank.me domain is separated in two different login pages: account.ubank.me for the normal users and account.ubank.me/staff/ for the owner, administrators and staff members.
  2. This project contains two databases (called UBankMAIN and UBankDAT) and one database user (called UBank with password UBank). This user needs to have full access to both databases. If you want to change the username/password of this user, please go to all of the _inc/dbconn.php files and change it there after changing in the PHPMyAdmin panel.
  3. Feel free to add/remove any user except the owner account (with userid 1 in the UBankMAIN database, staff table), because you will not be able to add new administrator accounts and it will create big problems with other fuctions.
  4. It's recommended (for security reasons) to change the password hashing salt after the installation on the account.ubank.me domain for both of hte login systems. It's also recommended to make them different for the user panel and staff panel for extra security.
  5. It's recommended to change the owner account password (with userid 1), because this account has all permissions to the user and staff panel.

Installation

If you want to install this project locally, please follow the following steps:

  1. Download the latest version of this project (by using the 'Clone' option or the 'download from cloud' button on this page).
  2. Make sure your system has apache, php and mysql installed (I'm using AMPPS because it has them all in one place).
  3. Extract the two main folders (domains) called ubank.me and account.ubank.me to your localhost folder.
  4. For optimal performance (and easier access) add the two entries below to your .hosts file:
    (This will let you use a custom url instead of localhost/ubank.me and localhost/account.ubank.me)
127.0.0.1 ubank.me
127.0.0.1 account.ubank.me
  1. Go to your PHPMyAdmin configuration (default: http://localhost/phpmyadmin/) and add 2 new databases (called UBankDAT and UBankMAIN) and add a user (called UBank with password UBank).
    For more information about the PHP connections and the password configuration go to the _inc/dbconn.php file.
  2. Import the UBankDAT.sql file to the 'UBankDAT' database.
  3. Import the UBankMAIN.sql file to the 'UBankMAIN' database.
  4. Make sure the UBank database user has permission to view/edit both databases.
    This can be done on the users page (Users > Edit Privileges > Database > Add privileges on the following database(s))
  5. Go to the homepage or login page and sign in using the following credentials:
Normal accounts (current/savings, account.ubank.me)
Username/Email: adam/adam@ubank.me (current), password: adam
Username/Email: henry/henry@ubank.me (savings), password: henry

Staff accounts (staff/admin/owner, account.ubank.me/staff/)
Username: staff/staff@ubank.me (staff account), password: staff
Username: admin/admin@ubank.me (admin account), password: admin
Username: owner/owner@ubank.me (owner account with access to everything), password: owner

Credits

In this project I used the following resources:

  • Bootstrap (For style attributes & javascript elements),
  • FontAwesome (For the awesome icons),
  • Fake logos (As it says, fake logos for the business partners section)