Software-requirement-specifications

This software requires

* Linux platform
* G++ compiler 
* Library files
             #include<iostream>
	#include<cstdio>
	#include<stdlib.h>
	#include<cstring>
	#include<math.h>
	#include<fstream>
	#include <unistd.h>
	#include <stdio.h>

PROJECT REPORT

Banking software developed by lab batch 74
The software developed is easy to use and is meant for simple bank management purpose.
You have to just press the option that you want to view, and these options are easily accessible.

The software uses
2 logins  One is meant for administration purpose and the other for the customers.

It provides the customers with options of creating their account, depositing, withdrawing money, deleting their account, changing their passwords and performing an interbank transfer.
The customer has an additional facility of opting for a loan, with certain terms and conditions applied.
The bank manager can login to the system via an administrative login and can view the total number of accounts created and can search for any particular record if he has either the account number or name.
The manager also enjoys the privilege of viewing all the records that start with a same letter.
He can also change his password, whenever he wants.
This software makes extensive use of file handling and structure definitions for performing all sort of operatrions.

FUNCTION SPECIFICATIONS:

Admin function
This function is used for manager account where he can login and can display 
1. Customer details
2. Search account number
3. Search a particular name
4. Case search
5. Change password(his own)

When the function is called, it displays the above mentioned options and asks for the option of the manager and then performs the necessary steps to give the desired output.

New user function
This function is meant for creating the account of a new customer. The acct numbers are assigned in sequence starting with 1017400000. The customer is required to enter his personal information like name, age, occupation, annual income, address and email id.
The bank provides him the choice of choosing his own user name and a password. The function also sees that the user name entered by the customer has not been used by anyone else. If the username of any other customer is same as some others, then an error message is generated that User name already exists, please try a different user name. On successful completion the account is created.

Sign in function
Once the account has been successfully created the customer is required to login into the system using his username and password. A check has been performed to see whether the user enters correct username and password and asks his/her discretion as to he/she wants to login again or not.
Note:- The administrative login has to be accessed by the same procedure.

Read function
This is a basic function that displays the information of the currently logged in person. It displays the time at which you logged in and displays the account no. and current balance.

Balance function
This function is meant for displaying the current balance of the user.
Erase function
This function is meant for deleting your account, but the account cant be deleted unless and until all the money from the money from the acct has been withdrawn.

Deposit function
This function performs the basic operation of depositing money in the account. If a user enters positive amount then the account balance is increased by a same amount.

Withdrawal function
This function is used for withdrawing money from the account that is if the user enters a positive amount and also if the amount entered is not greater than the account balance, then the withdrawal is allowed. Otherwise an error message is generated.

Password function
This function is meant for changing the password of the currently logged in user. In order to keep the password secret, the newly typed password is not displayed on the screen as well as a check for the password that is retyping the new password again are not shown on the screen. If the both the strings entered match, then the password is updated to the new password. For dissappearing the text from screen we have used a system command. In case the two strings dont match user is given a choice to try again or to exit.

Money transfer function
This function has been designed in order to transfer money from the currently logged in user to another account given it exists. A check has been made to see whether the account number entered is valid or not. If this check is ok then the amount to be transferred is asked. If the amount to be transferred is greater than the account balance then the transaction is withheld and the user is prompted to perform transaction again or to exit.
The same check applies here again if the user chooses to perform transaction.

Loan function (Home, Personal, Education, Vehicle)
This function provides the user with the facility of applying for a home loan provided some terms and conditions are fulfilled. The bank provides home loan at a fixed interest rate on pa basis compounded annually for a period of fixed no. of years. After entering the loan amount the function generates monthly EMI based on an annuity factor (reference actuarial tables, Institute of actuaries, India). A further check has been performed for the welfare of the customer as the bank wont be deducting more than 60% of his monthly salary as an EMI. This is in regards of any other loan he might have taken earlier from the bank, i.e. a personal loan, educational loan or a vehicle loan. If the condition is not fulfilled then the loan is not sanctioned and the user is asked whether he wants to reconsider the loan amount. Otherwise the EMI is shown to the user and if satisfied the user can opt for the loan. And a loan check is generated which keeps track of the loans taken by the customer so that they shouldnt opt for the same loan again.  

Search id function
This function has been developed for the administrator where he can check the records of a particular account number.

Search name function
This function has been developed for the administrator to see the accounts of persons having a particular name.


Search case function
This function has been developed for the administrator, wherein he can see the information of the account holders having their names starting with a particular letter. 

Main function
This function starts with a prompt showing the user to enter his username and password if he is a customer of the bank. Otherwise if he is a new user, he should sign up. 
After successful login all the previously defined functions are called on the discretion of the 
currently logged in user. The loop continues until the user wants to exit.
