Anda di halaman 1dari 146

Technical Documentation:

Table of Contents
Chapter and Topic

Page
No.

Software Development, Programming,


Testing
02
A. Requirements and Specification
06
B. Design
23
C. Schematics
32
D. Software coding
104
E. Validation Checks

Introduction to the Technical Documentation:


Page 1 of 146

The technical document is one of the essential documents that


are necessary for an expert or a technician to use the information
provided in this document in order to cross reference the data
with the program data to remove, simulate or re-create any errors
found that can or cannot be integrated to the OS platform.
Technical documents carry vital information such as program code
and the development of the program codes that lead to the
solution.

A.

Requirements and Specifications:

Upon identification of the problem that La Celeste Maintenance


department (LCM) faces, I decided to make a computerized
solution to the problem which can be later integrated with the
computer system that LCM owns.
Upon discussion with Mr. Rajesh, I came up with the conclusion
that the proposed computerized solution could help LCM in
eliminating the exhaustiveness and tiresome process completely.
After My interview, on approval from Mr. Jaya Jaya Raman who is
the secretary of the community and the head of LCM, I was able
to obtain access to the computer to which my program package
was said to be operated. It was later understood that the package
was to be run only on Mr. Rajeshs Personal Laptop and he will be
the sole person to be given authority to handle the program.
The requirements and specifications fall under 3 categories:
Functions, Hardware, and Software.

Page 2 of 146

Functional Requirements and Specification


Since the solution is computerized, the data to be input to the
program is definitely digital and can either be numeric or
alphanumeric since a large amount of calculative processes are to
take place. At many places in the program, the coding must be
made in such a way so that only authenticated personnel can
activate the functions.
This software deals with the manipulation and fetching of huge
processed results. In order to have the important data even when
the program, under extreme conditions, crashes. So it is advisable
take backups of the database to an online server, if available, or
any other external storage device frequently.
The user in the program must be displayed with the data fetched
from the database and upon generating a receipt must be created
with the correct information.
In order to achieve perfect usability by the user, a simple and
logical graphical user interface is necessary for the program,
along with huge fonts and casual words that try to make the
program user-friendly.
The only special feature that needs to be present since my client
requires it is an outlook software that is necessary to dispatch the
produced receipt by mail. Along with that, an internet browser is
required in the case of viewing the saved html file.

Types of Functions to be carried by the program:o Calculations-To find the quarters to be paid by the
owner for a year i.e. Quarters 1 and 2=25,000 paid,
remaining Quarter 3 and 4=15,000 to be paid

Page 3 of 146

o Data Manipulation- Produce Bill receipts that can be


saved and dispatched by the admin to the respective email ID later.
o Processing- Process Payment details for quarterly
periods and display to the admin
o Dispatch-Dispatch produced reports to the Owner via email with the help of manual input from the user.

Maintain database(s) to hold data about payment details and


contact details of the Residents/Owners.
o The information must be properly laid out in the form of
a Maintenance Bill receipt.
o The date of bill generation to be specified in the Bill
Invoice
In addition to the above Information provided by my client, I have
also added some features to the program package which eases
the user significantly.
A drop down list in the menu which helps the user to arrive
with the option he/she desired as a part of the design of user
interface
In case my client wishes to view Bill reports that are
generated by the program, they will be stored in a folder in a
*.html format in a primary disk.
In a click of a button, a third party software will be opened
(Microsoft Outlook-Compose Mail) with which the user can
dispatch the .html files

Software and Hardware Requirements:


Page 4 of 146

An Operating System of Windows XP or higher


Microsoft Office 2007 and above(Comprising Access, Outlook and
Word)
QWERTY Keyboard
Mouse
Data Dependencies files: msdbrptr.dll, msdatgrd.ocx, msstdfmt.dll

Processor speed of 1.50 GHz


Memory Capacity of 1.00 GB
Hard Disk of 1 GB
Interface Cards
o Network
o Display

Page 5 of 146

B. Design:

Nature of the solution- Design Specification

Designing a solution:
The implemented solution should be a comprehensive system
consisted at multiple levels and of varied importance. In order to
understand the working and the principles of the proposed
solution, the flow of data must be constantly observed.

Page 6 of 146

Data Flow Diagram: The above diagram is a schematic representation of how


the design is to be finalized between my client and myself.

The data flow diagram depicts the mutual understanding that is to


be present between the client and myself in order to accomplish
the tasks that was requested to be solved.
During the analysis of the proposed system by the client, various
aspects come into the picture. After detailed discussion, Input
from his side will be valuable in order to add/modify/delete tasks
into the main program package and achieve the objectives.
In the above DFD, Three primary tasks are mentioned. The utility
of the tasks are as follows: Task 1-Processing the number of quarters paid and produce
the receipt in the form of a report.
Task 2-Fetch contact details of the Owner
Task 3-Attach the receipt and send it via email to the owner.
After the clients requirements are fulfilled, the program package
will go through the design, development and testing phases after
which it will be integrated to LCMs mainframe thereby benefiting
both parties.

During the process of Program development, Data structures that


are linked to the front end of the program must also be declared
and organized. This process is considered to play a vital role in
the machines storage of data in the databases.

Use of appropriate data structure enables a computer system to


perform its task more efficiently, by influencing the ability of
computer to store and retrieve data from any location in its
memory. Structures are suited to different computer applications
and tasks.
Page 7 of 146

The Data-Structure design for the Contact database is as follows:

Key

Data Field

Data
Type

Size
(Bytes
)

Sample Data

Constraints

Primar
y Key

Apt No

Short
Text
Short

50

P3A2B

Alphanumeric

255

R.V.Venkatesh

Sq_Ft
Email ID

Integer
Long
Text

8
4

1633

Alternative
Contact

Long
Text

30

9789950512

Letters, Full
stops and
spaces
Numeric only
Alphanumeric,
Special
characters
Numeric only

Name_Of_Owner

venkat@netvigator.c
om

Data Structure: The above image is a snapshot of the data structure


that Microsoft Access 2013 uses in its database. This example is taken from
the Contact Database.

Page 8 of 146

List of Objectives

As discussed earlier, Different types of data collection methods


led to the findings of the problem that LCM faced and upon
request from LCM, I was able to come to a conclusion that the
proposed solution will help them.
LCM faced many types of problems in the process of calculating
the maintenance dues and producing the maintenance bill
receipts to owners who have paid their quarters.
The problem faced by LCM as are follows: Make use huge labor services to fetch contact details.
Utilize many hours on a single process of identifying Owners
who had paid their quarters.
Time consuming during the stage of notification of Owners
about their payments.

A solution must resolve the problem that an organization faces in


a computerized manner, to the highest extent possible.
The project that LCM wants was to concentrate on the
production of bill receipts on the basis of amount received
from an owner and the amount left to be paid and
dispatch of the receipts produced to the Payees only.
Before creating the computerized solution, one must
understand that this must be achieved in a way where the
operational efficiencies increases, smoothens workflows
and creates a hassle free work environment in LCM.

Page 9 of 146

The Objectives that were inferred from the methods of data


collection are as follows:a An Easy to use design interface in the Main program package
in order to reduce the need for training for the user.
b A Computerized solution that uses specified location in the
machine for producing *.html files that is known to the user
only (Request based on confidentiality)
c A program that works on the basis on reducing timeconsumptions, Increasing Efficiency, Automating the
calculation of amounts for receipts, and minimizing the
manual input from the user.
d An inbuilt report generating module which fetches data from
the maintenance database for payment details and contact
data for sending the produced report to the paid owners.
e Report must consist data about the payment details such as
Debit,Credit,CAPEX and other off-chart payments
f Addition of location of maintenance database for future
payments.

As discussed earlier, the process that LCM uses to notify


Owners/Tenants who have paid is highly inefficient as it uses a
great deal of labor and time. During the course of data collection
from Residents, I also came to know about the intermittent delays
in the dispatch of receipts.
Moreover, Since LCM had even run out of option after the incident
with a third-party system, they wanted a computerized solution
that is integrated to LCMs Machine so that the program will send
the reports on behalf of LCM.
The Solution I proffer involves the basic layout of easy to use
design interface which is intended to be user-friendly. The
proposed solution will work on minimal input from the user and
Page 10 of 146

produces a report which has the payment details which is fetched


from the respective databases. The dispatch program will also
send the reports to the owners in a click of button.

Input Design

The Inputs needed from the user for the program to complete a
task are of two types:
o Pre-Entered Inputs-This type of input is where the
Administrator stores the payment details in a database and
links it to the main program. The data of the payment detail
will be fetched from the database by the program and is laid
on the report along with the maintenance due details.
o Live Input-In the case of searching contact details when
email service is unavailable. Edition of any contact details of
any of the apartments will also need live input from the user.

The Computer generated mockup of the input form that is


to be applied in the main program is shown below:
Mockup 1: This image shows a draft of the input design so as to integrate
it into the main program.

Page 11 of 146

Signature

_______________________________

Mockup1 shows the basic input design from the user which is
planned to be implemented in the main program package. This
mockup consists of features such as navigation control,
Modification and updating option, and Searching.
These features are included for easy management of controls,
efficient process of data fetching and sending which help the
Page 12 of 146

program user to complete a task in a less time-consuming


manner.
The Mockup can be considered to be an output design since the
form is linked to a database and the information is fetched and
outputted on the screen. Yet, the user can edit the data, search
for a particular record in the database and save data only by
manual input. This is the reason why the mockup is considered to
be an Input form.

Page 13 of 146

Mockup 2:
Title
Header

Command Buttons for named


functions

MAINTENANCE PAYMENT DETAILS


Generate Receipt

Payment
Details for
Flat

Generate overall
reports
Search
details for
flat

Filter Paid
Owners

Combo
Boxes

Display
Sheets for
fetched
data.

Edit

Save

Exit

Dispatch via
Mail

Page 14 of 146
Command
Buttons for
edition and

Open MS Outlook
and keep Compose
Mockup 2: The image shows the layout in
which the design of the form will
mail ready for the

be generated.

Payment Details: The above image shows the form where data is inputted
in thePAY and GO TO of the form in order to fetch data from the database.

Page 15 of 146

As per the design produced in Mockup 2, The form shown above


is produced. The data is inputted in areas such as combo boxes
and entering payment details in the input boxes when a new
payment arrives. This information is then stored in the database
which is later fetched to produce the receipt for that customer.

Output Design

The output provided by the program package are the visual


interfaces of the Apartment Information, Maintenance Due
Information and Maintenance Due Receipt which display
Apartment and contact details, Maintenance amount to be paid
by the flat, and the final layout of the receipt respectively.
Mockup1 is, as discussed above, an input as well as an output
design. According to the Output design point of view, the data is
fetched from the database and is outputted in the form to the
user.
As per instructions given by my client on the layout on the receipt
(generated report), a draft of the design was created. This design
upon analysis by my client was approved and the design was later
implemented for creating the receipt by the program.

The draft of the Receipt Layout that was shown to my


client is shown in the following page:-

Page 16 of 146

Design Draft:-The above diagram depicts the layout in which the original
receipt must be produced by the program on behalf of LCM.

Page 17 of 146

In the layout provided above, the details present will include the
debit amount that is to be paid and the credit amount that is paid
by the owner. The owner will receive a receipt that will contain the
amount that is to be paid/received by either of the parties.
In order to reduce the complexity of the calculations and display
the necessary information that the owner requires, the draft was
designed, keeping in mind, to produce an Easy to Understand
Fetched data laid out
layout.
on report
Named Labels

Header Title

Mockup 3:

La Celeste Owners Contact Details

Apt
No:

Name of
Owner

Sq. Ft

Email

Contact

Mockup 3: The image shows the draft of the layout for the creation of a
report which contains the contact information of all flats.

Page 18 of 146

Header Title

Time and
Date labels.

Named Labels

Fetched data
laid out

Mockup 4:
La Celeste Overall Maintenance Report

Date of
Generati

Apt
No.

10/09/2014

Time of
Generation

Date ofBalance Amount to


Collecti
be paid

10:10 AM

Amount
Paid

Page Number
Page X of Y

Mockup 4: The image shows the draft of the layout of the data of owners
payment details of all flats

Page 19 of 146

The mockup draft was created primarily for the forms which were
of high importance. With the mockups drawn above, I will be
following those designs to produce the original forms in the new
system.

Menu/Module Design

During the process of program development, I enquired my client


about the design of menu and other modules. After detailed
discussion, I was instructed to include options (or modules in this
case) to the menu so that the user can find the function they wish
to perform.
In the program, there are totally 5Modules which are to be linked
to a Menu form. But since in previous discussions, Security was
primarily emphasized by my client, A Password change module
was also put forward to my client and they agreed to the
proposal.
The finalized modules are as follows:-

1
2
3
4
5
6

User Login
Password Alteration
Apartment Information
Payment Details
Report Generation
Email Dispatch

Note: Points 5 and 6 are combined in the Payment details form


(Point 4)

Page 20 of 146

THE TOP DOWN DESIGN FOR THE PROGRAMS MAIN MENU


IS SHOWN IN THE FOLLOWING PAGE:-

The design of the Menu is as follows:-

Page 21 of 146

Page 22 of 146

-------------------------------------------------------------------------------------------------USER LOGIN
MENU DESIGN
VIEW
GENERAL APARTMENT INFORMATION
MAINTENANCE DUE OF APARTMENTS
ACCOUNT SETTINGS
CHANGE PASSWORD
LOGOUT
EMERGENCY SHUTDOWN
ABOUT
VERSION NO.
HELP
USER GUIDE
EXIT SYSTEM

--------------------------------------------------------------------------------------------------

Page 23 of 146

C.

Schematics:

The proposed system that is to be integrated with LCMs


Mainframe is schematically represented as a flowchart
below:

System Flowchart: The above diagram shows the primary concept of the
proposed systems workings.

Page 24 of 146

As soon as the program is initialized, The Program will output a


credential-login form which will help distinguish between the
Administrator and others who do not have access to the program.
The Login form sends data from the user and transmits it to other
security modules for verification.

The Process Diagram for the Login Module is shown


below:

When a user enters the login credentials, the data inputted will
travel to the Login Module which will act as an intermediate
between the User and the Login Verification. The Login Module
will send an instruction to the Password Module and fetches them.
Unlike the Password Module, The Login Module sends the
Username to the Username Module for verification. The only data
Page 25 of 146

sent from the Username Module to the Login Module will be only a
simple instruction of Valid/Invalid. The reason behind this is due to
the existence of only one username.
But in the case of the Password Module, The Administrator has an
option to modify the password inside the program that is inputted
in the login screen. So, the password must be fetched and then
cross-checked with the user input.
After the Verification of the Username and Password from their
respective modules, an output to the user will be displayed
according to their input.
If the User credentials are valid, then an appropriate output
displaying that the credentials were valid will be outputted. After
this process, the user is taken to the Menu screen. But if the User
credentials are invalid, then the user will be alerted and will not
be allowed access.
After the User has inputted valid credentials, the user can proceed
with the generation of bill receipts according to the payment
details. This process consists of a great amount of data transfer in
and around the main program.

The Process diagram for the Generation of a receipt is


shown in the following page:

Page 26 of 146

Data Flow in the program: The diagram depicts the data that is
transmitted in and around the software during the process of production of
receipts and dispatch.

In the above data flow diagram, the depiction of the flow of data
in order to produce a notification when an entity pays the
maintenance due is shown.
The Entities refers to the payees who pay their maintenance
dues. After the entities pay their dues to LCM, They will have to
produce a receipt which notifies the Owner that the payment has
been received, mentioning the quarters details that are paid and
the amount to be paid in the future quarters.
Page 27 of 146

When LCM is in the position to notify the Owner(s) about the


payment details, the main program package that is developed is
called. From here, the connection between the user and the
program is broken and the program package works independently
without any interference from the user.
The main program package holds responsibility of fetching
contact details about the owner and the payment details. It also
holds responsibility of generating the report and sending it via
email.
The main program will now fetch details about that particular
owners contact details and his/her payment details. This
information consists of confidential information. This data will be
securely sent inside the program to the Report Generating
module and receives the produced *.html file.
This data will then be sent to the Owner via Email directly. Here,
the file will be attached to an email using an object file
(considered as third-party code) with the help of human input.
The contact detail of the owner, i.e., his/her email ID will be
inputted to the Recipient.

Page 28 of 146

The image below shows the entity relationship diagram


(ERD) for the tables that are the only functional tables to
the system.

MasterDB Table
Apt ID

Corresponds to

Payment details

Of many payments from

PAYMENT Table

Intended Benefits from the New System

Upon detailed analysis from the inputs of my client and


interrogation with other staff workers, the ability to understand
Page 29 of 146

the problem and the advantages that the computerized solution


was able to present was very favorable.

The advantages presented by the new system to the user (My


client), from my perspective, are as follows: Easy to use design layout making it simple and hassle-free
for operation.
Categorized into different modules and linked using menubased interface enabling user to open module that has a
particular function that the user wishes to work on.
Very less time consumption and high performance during
operations as all the data is stored externally. i.e., in
databases.
Make an efficient working environment in place of exhaustive
manual labor.
Immediate alert via email, which includes the receipt, to the
Owner when a payment is received thereby achieving
customer satisfaction.
Highly secure program with immediate shortcuts to login
screen and even shutdown.
Input to the system:
Data input in the new system will be through keyboard instead of
the previously used manual entry system. This will make the new
system much faster and efficient.
Processing:
Page 30 of 146

All processing will now be done through already defined functions


and methods and only input will be required using data forms
which are user friendly and easy to use. This saves the user time
consumed in calculations done using calculators previously.

Output methods:
All outputs e.g. invoice receipt, Payment details etc which were
previously handwritten will now be in the form of criteria based
reports produced by the system in the form of *.html files which
can later be dispatched to the respective email ID. This makes the
output neat, accurate, and fast.
Storage:
All the records which were previously maintained using registers,
will now be replaced by Database filling system stored on hard
disk. A backup copy will be made daily to ensure 100% security of
data. Furthermore records that are not used over a period of time
will now be archived and stored on separate disks to allow excess
free storage space on the hard disk.

Limitations of The Scope of Solution:Even though the program contains a large number of merits, it
also contains some disadvantages that may prove to be a limiting
factor during the users operation.
The limitations of the scope of the solution are as follows: If large amount of data are to be processed (More than
100,000 records), The Computerized solution, along with the

Page 31 of 146

operating system, will not have to ability to process the data


and eventually crash.
If the process of generation of a report is activated and then
saved, the report later cannot be edited. Corrected value
must be input to the program again before the previous
values were set to original.
The program has intervention from human i.e. the user
during dispatch of the produced receipts.
Due to human intervention (discussed above), the time
consumption is moderately high.
The tax amount and other calculative formulae cannot be
added in due course. The program must be reprogrammed
and created again.

File Size Estimation:Total Number of bytes for one record in Table1= 50+255+8+4+30
347
Total Number of bytes for one record in
Table2=50+255+8+4+8+4(255)+ 4(8)=>1377
Total Number of records in 1 table of the database (fixed) => 425
Total Number of bytes in Table1 => 347*425=147,475
Total Number of bytes in Table2 => 585,225
Total Number of bytes in both Table1 and Table2=732,700
10% Space for Memory Allocation= (10/100)*732,700 =>73,270
Total Number of bytes => 73,270+732,700=805,970

Page 32 of 146

Total Number of Kilo Bytes utilized by data in the database=


(324,445/1024) => 787.08 KB

D.

Code Listing:

When the program is initialized, the user will be displayed with a


login screen which checks the username present in the program
code. Later, the password entered will be cross checked from an
external data file (pwd.dat) and the necessary output messages
will be produced.
The Original Code for the user login module is shown below:-

SUBMIT BUTTON:

Private Sub Command1_Click()


Dim A, b As String
Dim variable1 As String

A = Text1.Text
b = Text2.Text
Page 33 of 146

If Text1.Text = "" Or Text2.Text =


"" Then
MsgBox ("Please Enter Username/Password"), vbExclamation
Exit Sub
End If

If A = "laceleste" Then
Open "C:\Users\Rajesh\AppData\Roaming\VBProj\pwd.dat" For
Input As #1
Input #1, variable1
//Opens the pwd.dat file and cross checks password
Close #1
End If
If b = variable1 Then
MsgBox "User Login Successful!",vbInformation, "Access Granted"
MDIForm1.Show
Unload Me
Else
MsgBox "Unsuccessful Login-Please try again!",vbExclamation,
"Access Denied"
Exit Sub

End If
Page 34 of 146

End Sub

CLEAR BUTTON:

Private Sub Command2_Click()


Text1.Text = ""
Text2.Text = ""
End Sub
EXIT BUTTON:

Private Sub Exit_Click()


Unload Me
End Sub

In the Code present in SUBMIT BUTTON, the ideology of Data


Manipulation is used. Yet the pwd.dat file is prone to the eyes of
workers other along with the user. Furthermore, this data can be
manually opened and the contents can be modified as long as
they have physical access to the System in which the program is
running. Therefore, this pwd.dat file is placed in the location:
C:\Users\Rajesh\AppData\Roaming\VBProj\pwd.dat
This location will be shared only with my client. This location is
chosen because of the restrictions that the User Accounts Control
provides to the AppData\Roaming Destination during manual
Page 35 of 146

access from a non-administrator account. So, in a way the


Operating system is an independent security system watching
over the manipulation of the pwd.dat file.

During Password Replacement, The current password is asked to


verify whether the user has the necessary privilege to modify
it.Again, the password is cross checked with the pwd.dat file.
Upon successful verification, The user is given permission to
modify the content of the data file.
The Password Modification Code is shown below:-

SUBMIT BUTTON:
Private Sub Command1_Click()
Dim pdch, rtpdch, pass As String
If Text1.Text = "" Then
MsgBox "No,you need to type your old password before clicking
'Submit'", vbInformation, "Try Again"
End If
pdch = Text2.Text
If Len(pdch) >= 20 Then
MsgBox ("Hey,You've exceeded your limit on the characters of the
password"), vbExclamation
Text2.Text = ""
Exit Sub
End If
Page 36 of 146

rtpdch = Text3.Text
If pdch<>rtpdch Then
MsgBox ("Error Retyping Password.Please Try Again"),
vbExclamation
Exit Sub
End If
Open "C:\Users\Rajesh\AppData\Roaming\VBProj\pwd.dat" For
Input As #1
Input #1, variable1
// If the old password is correct, Then proceed to replace the
password
Close #1
xy = Text1.Text
If xy = variable1 Then
Open "C:\Users\Rajesh\AppData\Roaming\VBProj\pwd.dat" For
Output As #1
pass = Text2.Text
Print #1, pass
Close #1
MsgBox ("Password Successfully Changed"), vbInformation,
"Successful"
Exit Sub
End If
MsgBox "Your Old Password is Wrong", vbInformation, "Access
Denied-Password Change Unsuccessful"
Page 37 of 146

End Sub

CLEAR BUTTON:

Private Sub Command2_Click()


Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub

EXIT BUTTON:
Private Sub Command3_Click()
Unload Me
End Sub

EXIT BUTTON:
Private Sub Command3_Click()
Unload Me
End Sub

BACK TO MENU BUTTON:


Private Sub Command3_Click()
Page 38 of 146

Unload Me
End Sub

In all the forms, there is a navigation menu designed that brings


the user back to the menu from any form. The above code is
present in every navigation button.
If the user wishes to view details about the apartments, The user
is displayed along with a series of buttons that are used to
navigate between records that are linked to the database
externally.
The assembly code present in the form is shown below:

FIRST RECORD BUTTON:


Private Sub Command5_Click()
DataEnvironment1.rsCommand1.MoveFirst
End Sub

LAST RECORD BUTTON:

Private Sub Command6_Click()


DataEnvironment1.rsCommand1.MoveLast
End Sub

NEXT RECORD BUTTON:


Page 39 of 146

Private Sub Command1_Click()


DataEnvironment1.rsCommand1.MoveNext
End Sub

PREVIOUS RECORD BUTTON:


Private Sub Command3_Click()
DataEnvironment1.rsCommand1.MovePrevious
End Sub

UPDATE DB BUTTON:

Private Sub Command2_Click()


DataEnvironment1.rsCommand1.Update
End Sub
SEARCH BUTTON:
Private Sub Command7_Click()
Combo1.Visible = True
DataEnvironment1.rsCommand1.MoveFirst
// Starts from first record till all records are searched
While Not DataEnvironment1.rsCommand1.EOF
Page 40 of 146

Combo1.AddItem DataEnvironment1.rsCommand1("APT_NO")
DataEnvironment1.rsCommand1.MoveNext
Wend
End Sub

COMBO BOX BUTTON CLICK:


Private Sub Combo1_Click()
DataEnvironment1.rsCommand1.MoveFirst
While Not DataEnvironment1.rsCommand1.EOF
If Combo1.Text = DataEnvironment1.rsCommand1("APT_NO")
Then
Exit Sub
End If
DataEnvironment1.rsCommand1.MoveNext
Wend
End Sub

In this form, There are click-to-go links present which upon


clicking,jumps to another form. This is done using labels.The code
present in the labels are shown in the following page:LINK TO MAINTENANCE DUE:
Private Sub Label2_Click()
Form3.Show
End Sub
Page 41 of 146

BACK TO MAIN MENU:


Private Sub Command4_Click()
Unload Me
End Sub

MAIN MENU OPTIONS:

GENERAL APARTMENT INFORMATION:


Private Sub aptinfo_Click()
Form4.Show
End Sub

CHANGE PASSWORD
Private Sub chngpwd_Click()
Form2.Show
End Sub

FORCE SHUTDOWN
Private Sub emshut_Click()
MsgBox ("Are you sure you want to exit?"), vbYesNo
If vbYes Then

// Starts to close all forms in the program

Unload Form1
Page 42 of 146

Unload Form2
Unload Form3
Unload Form4
Unload Form5
Unload Form6
Unload Me
Else
End If
End Sub

ABOUT Option:
Private Sub liagmnt_Click()
MsgBox ("This is an Open-Source Project and is developed using
Microsoft Visual Basic 6.0 by Hayagrish.Any Illegal or Commercial
use of this Project by anyone other than the authorized Client
cannot be accepted")
End Sub

LOGOUT OPTION
Private Sub logout_Click()
Unload Me
Form1.Show
End Sub

Page 43 of 146

NAVIGATION TO PAYMENT DETAILS


Private Sub maininfo_Click()
Form3.Show
End Sub

HELP GUIDE OPTION

Private Sub UG_Click()


Dim wrdApp As New Excel.Application
wrdApp.Workbooks.Open "D:\Softwares\Mail Dispatch\" &
"UG.doc"
wrdApp.WindowState = wdWindowStateMaximize
wrdApp.Visible = True
//Opens the UG.doc file when the user clicks the option
End Sub

VERSION NUMBER OPTION


Private Sub vers_Click()
MsgBox ("Version.6.1.1 build 26500.")
End Sub

PAYMENT DETAILS FORM:


COMBO BOX OPTION CLICK:
Page 44 of 146

Private Sub Combo4_Click()


Dim txt, uqtrp, newcase, qtrp, f, g As String
Dim X As Integer
Dim V As String
Dim disc As Integer
Dim amt, balamt, oth, discamt As Currency
Dim dt As Date
Dim bank, branch, cheque As String
amt = InputBox("Please Enter The Paid Amount")
If amt = "e" Then
// Theinputbox closes and disallows any more input when e
entered
Exit Sub
Else
End If

If Asc(amt) >= 65 Then


MsgBox ("Please Input the Amount Only"), vbCritical
// Checks if any characters are added and produces error
when present
Exit Sub
Else
End If
Page 45 of 146

dt = InputBox("Date of receiving Maintenance Due")


bank = InputBox("Enter The Bank Name")
If Asc(bank) <= 65 Then
MsgBox ("Please Enter alphabets Only"), vbCritical
// Checks for any number input and if present then error
Exit Sub
Else
End If

f = UCase(bank)
branch = InputBox("Enter Branch of the Bank")
If Asc(branch) <= 65 Then
MsgBox ("Please Enter alphabets Only"), vbCritical

Exit Sub
Else
End If
g = UCase(branch)
cheque = InputBox("Enter the Cheque Number")
If Len(cheque) <= 8 And
Len(cheque) >= 6 Then

Page 46 of 146

qtrp = InputBox("For Which Quarter is this Payment for?")


If qtrp = "e" Then
Exit Sub
End If

If Left(qtrp, 1) = "q" Then


uqtrp = Left(qtrp, 1)
newcase = UCase(uqtrp)
Else
End If
'While Not Left(newcase, 1) =
"Q"
While Not Left(qtrp, 1) = "Q"
MsgBox ("The First letter must be 'Q'.Try Again Mate!"),
vbExclamation
qtrp = InputBox("For Which Quarter is this Payment for?")
Wend

oth = InputBox("Enter any other payment details that are to be


added")
\\ The process of adding input data into the database starts now
DataEnvironment1.rsPAYMENT.MoveFirst
While Not DataEnvironment1.rsPAYMENT.EOF
txt = DataEnvironment1.rsPAYMENT("APT_NO")
Page 47 of 146

If Combo4.Text = txt Then


DataEnvironment1.rsPAYMENT("DATE_of_Collection") = dt
DataEnvironment1.rsPAYMENT("BRANCH") = g
DataEnvironment1.rsPAYMENT("CHEQUENO") = cheque
DataEnvironment1.rsPAYMENT("BANK") = f
DataEnvironment1.rsPAYMENT("AMTPAID") = amt
DataEnvironment1.rsPAYMENT("QTR") = qtrp
DataEnvironment1.rsPAYMENT("STATUS") = "C"
DataEnvironment1.rsPAYMENT("OTHERS") = oth

\\ If the amount exceeds a particular range then discount


process starts
If amt>= 45396 Then
MsgBox ("Discount of 3% will be provided to the Total Amount
Now!")
discamt = 0.97 * DataEnvironment1.rsPAYMENT("AMOUNT")
MsgBox ("The amount after discount is ") &discamt
DataEnvironment1.rsPAYMENT("AMOUNT") = discamt
DataEnvironment1.rsPAYMENT("TOTAL") =
(DataEnvironment1.rsPAYMENT("AMOUNT") +
DataEnvironment1.rsPAYMENT("OTHERS"))
Else
\\ Calculation process for maintenance due payments

Page 48 of 146

DataEnvironment1.rsPAYMENT("TOTAL") =
(DataEnvironment1.rsPAYMENT("AMOUNT") +
DataEnvironment1.rsPAYMENT("OTHERS"))
End If
DataEnvironment1.rsPAYMENT("BALANCE") =
(DataEnvironment1.rsPAYMENT("AMOUNT") +
DataEnvironment1.rsPAYMENT("OTHERS")) DataEnvironment1.rsPAYMENT("AMTPAID")
DataEnvironment1.rsPAYMENT.Update
Exit Sub
Else
DataEnvironment1.rsPAYMENT.MoveNext
End If
Wend
Frame3.Visible = False
Set DataGrid1.DataSource = DataEnvironment1
DataGrid1.Enabled = True

Else
MsgBox ("Hey,You've entered an incorrect length of Cheque
Number"), vbExclamation
End If
DataEnvironment1.rsPAYMENT.Close
DataEnvironment1.rsPAYMENT.Open
End Sub
Page 49 of 146

CREATE NEW TABLE BUTTON:


Private Sub Command1_Click()
Dim usern, passw As String
usern = InputBox("Enter Your Admin Username")
passw = InputBox("Enter Your Admin Password")
// Authentication of user in order to reset and start a new
cycle starts
If usern = "rajesh" Then
If passw = "lcm12345" Then
MsgBox "Table Creation was Successful. Please re-open this
form:-)", vbInformation
// for Opening the database if the database is closed so no
errors are produced during execution
If DataEnvironment1.rsCommand1.State = adStateOpen Then
DataEnvironment1.rsCommand1.Close
End If
If DataEnvironment1.rsPAYMENT.State = adStateOpen Then
DataEnvironment1.rsPAYMENT.Close
End If
DataEnvironment1.rsCommand1.Open
DataEnvironment1.rsPAYMENT.Open
Page 50 of 146

DataEnvironment1.rsCommand1.MoveFirst
While Not DataEnvironment1.rsCommand1.EOF
DataEnvironment1.rsPAYMENT.AddNew
DataEnvironment1.rsPAYMENT("APT_NO") =
DataEnvironment1.rsCommand1("APT_NO")
DataEnvironment1.rsPAYMENT("SQR_FEET") =
DataEnvironment1.rsCommand1("sq_ft")
DataEnvironment1.rsPAYMENT("AMOUNT") =
DataEnvironment1.rsCommand1("sq_ft") * 2.60 * 12
'DataEnvironment1.rsPAYMENT("OTHERS") = 7000
DataEnvironment1.rsPAYMENT("AMTPAID") = 0
DataEnvironment1.rsPAYMENT("STATUS") = "P"
DataEnvironment1.rsCommand1.MoveNext
DataEnvironment1.rsPAYMENT.Update
Wend
DataEnvironment1.rsCommand1.Close
DataEnvironment1.rsPAYMENT.Close
Set DataGrid1.DataSource = DataEnvironment1
Else
MsgBox ("Invalid Credentials"), vbCritical
End If
End If
End Sub

Page 51 of 146

BACK TO MENU Button:


Private Sub Command10_Click()
MDIForm1.Show
Unload Me
End Sub

CONTACT DETAILS REPORT generation button:


Private Sub Command11_Click()
DataReport2.Show
End Sub
GENERATE INVOICE RECEIPT Button:
Private Sub Command12_Click()
// the record that the user clicks on the grid is only output as a
generated receipt
If DataEnvironment1.rsCommand4.State = adStateOpen Then
DataEnvironment1.rsCommand4.Close
End If
If DataEnvironment1.rsCommand4.State = adStateOpen Then
DataEnvironment1.rsCommand4.Close
End If
DataEnvironment1.Command4 (Text1.Text)
Page 52 of 146

DataReport3.Show
End Sub
RESET PAYMENTS OF PAID MEMBERS button:
Private Sub Command13_Click()
MsgBox ("This will delete every data in fields")
DataEnvironment1.rsPAYMENT("BRANCH") = ""
DataEnvironment1.rsPAYMENT("CHEQUENO") = ""
DataEnvironment1.rsPAYMENT("BANK") = ""
DataEnvironment1.rsPAYMENT("QTR") = ""
DataEnvironment1.rsPAYMENT("STATUS") = "P"
DataEnvironment1.rsPAYMENT.Update
End Sub

FILTER PAID MEMBERS Button:


Private Sub Command14_Click()
//Filters those who have STATUS as C
DataEnvironment1.rsPAY.Close
DataEnvironment1.rsPAY.Open
Set DataGrid2.DataSource = DataEnvironment1
DataGrid2.Refresh
DataGrid2.Visible = True
End Sub

Page 53 of 146

CREATE EMAIL Button:


Private Sub Command15_Click()
Dim objOutlook As Object
Dim objOutlookMsg As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(0)
With objOutlookMsg
//Starts Compose Mail with the following partially filled
format
.To = ""
.Cc = "ao.laceleste@gmail.com "
.Subject = "Maintenance Receipt for your payment"
.Body = " Your Payment of Maintenance due is received.The
receipt is attached below.Thank You!"
.HTMLBody = "HTML version of message"
'.Attachments.Add ("c:\myFileToSend.txt")
.Send
End With
Set objOutlookMsg = Nothing
Set objOutlook = Nothing
End Sub

Page 54 of 146

SEARCH APT NO. DETAILS


Private Sub Command2_Click()
Combo2.Visible = True
Command4.Visible = True
Command14.Visible = True
Combo2.Clear
DataEnvironment1.rsCommand1.MoveFirst
While Not DataEnvironment1.rsCommand1.EOF
Combo2.AddItem DataEnvironment1.rsCommand1("APT_NO")
DataEnvironment1.rsCommand1.MoveNext
Wend
End Sub

GO TO Button:
Private Sub Command4_Click()
If Combo2.Text = "" Then
MsgBox "Please Enter the Flat Number", vbOKOnly
Exit Sub
Else
// Validating if the first letter as P
If Left(Combo2.Text, 1) <> "P" Then
Page 55 of 146

MsgBox ("Enter First Letter as 'P' Followed by capital letters")


Exit Sub
End If
End If
'X = Combo2.Text
'Ucase(Left(x,3))
DataEnvironment1.rsPAYMENT.MoveFirst
While Not DataEnvironment1.rsPAYMENT.EOF
If Combo2.Text = DataEnvironment1.rsPAYMENT("APT_NO") Then
Exit Sub
End If
DataEnvironment1.rsPAYMENT.MoveNext
Wend
End Sub

PAYMENT DETAILS Button:


Private Sub Command5_Click()
DataGrid1.Enabled = True
End Sub
SAVE Button:
Private Sub Command6_Click()
DataEnvironment1.rsPAYMENT.Update
End Sub
Page 56 of 146

PAYMENT DETAILS BUTTON CLICKED:


Private Sub Command7_Click()
Command9.Visible = True
Command12.Visible = True
Command15.Visible = True
Command14.Visible = True
Frame1.Visible = True
End Sub

OVERALL MAINTENANCE REPORT


Private Sub Command9_Click()
DataReport1.Show
End Sub
RECORD Option:
Private Sub DataGrid2_Click()
Dim A As String
A = DataGrid2.Text
Text1.Text = A
End Sub

STARTUP WITH FORM LOAD:


Page 57 of 146

Private Sub Form_Load()


While Not DataEnvironment1.rsCommand1.EOF
Combo4.AddItem DataEnvironment1.rsCommand1("APT_NO")
DataEnvironment1.rsCommand1.MoveNext
Wend
End Sub
FILTER PAID MEMBERS Button:
Private Sub PAYMENT_Click()
Frame2.Visible = True
PAYMENT.Visible = True
End Sub

DEVELOPMENT OF DATABASE:-

It was necessary for a database to be integrated with the program


package since a large amount of data was present in different
categories like Apt_no, Email ID,etc.

Page 58 of 146

The following images show the screen dumps of the


design view and the data sheet view of the database
implemented in the new system:-

TABLE1: MasterDB
Layout View:

Page 59 of 146

Design View:

Page 60 of 146

TABLE2: OnlinePay
Page 61 of 146

Layout View:

Design View:
Page 62 of 146

TABLE3: Credits
Layout View:

Page 63 of 146

Design View:

Page 64 of 146

TABLE4:PAYMENTS
Layout View:
Page 65 of 146

Design View:

Page 66 of 146

TABLE5: UPTO Q3-Q4 DUES


Layout View:

Design View:

Page 67 of 146

DEVELOPMENT OF INPUT METHODS:

In the program package, there is a need for manual input from the
users end in order for the program to operate according to the
users desired function. Some manual input functions include
security login, modification of data in the database, searching for
record from the database, password replacement and other
miscellaneous functions like navigation and basic input-mouse
clicks.
Since this program package was made using Microsoft Visual
Basic 6.0 and Microsoft Access as its primary developmental tools,
the program made using Visual Basic was then linked to the
Access database using a DataEnvironment Connection which is an
Page 68 of 146

integrated part of Visual Basic that acts as a connecting bridge


between the program and the database.
The following images presented show the Development of
Input Methods:
LOGIN FORM:

Text Boxes:This is the area of space given to the user to input


his Login credentials in order to gain access to the functions of
the program
Submit button:After input from the user, the program is
initiated to verify the credentials. The grant of permission to use
the programs functions will be output only after clicking on the
Submit button.

Page 69 of 146

Clear button:In the case of wrong input into the text boxes,
this buttonclears out the existing input present in the text boxes
Exit button:Upon clicking this button, the program will
terminate.

MENU SCREEN:

The Menu Screen consists of different functions. The


options provided are:
View:
o General Apartment Information-executes the form
which displays general apartment information fetched
from the database.
o Maintenance Due Information-executes the form
which displays the maintenance due to be paid by the
owner and the quarterly details by fetching data from
the database.
Page 70 of 146

Account Settings:
o Change Password-executes the form which allows the
authorized user to change his/her password
o Logout-closes all forms and menu and returns to the
login form
o Force Close: executes force closing of all processes by
closing all forms and menu of the program.It does not
display the login form and the user has to start the
program again
About:
o Version No.-outputs the information of how many
times this program was perfected to suit the clients
requirement
Help:
o User Guide-executes a word file which displays the
basic instructions needed to execute operations in the
program.

Page 71 of 146

General Apartment Information:

Functions of the command buttons upon clicking in the


above image:
FIRST RECORD: Fetches the data of the first record of the
database and displays it on the screen
PREVIOUS RECORD: Fetches the data of the previous
record viewed and displays as output.
NEXT RECORD:Fetches the data of the next record from the
current pointer in the database and displays as output.
LAST RECORD: Fetches the data of the record at EOF of the
database and displays as output
UPDATE DB: Any input to the text boxes (except Sq_ft) by
the user can be changed from the form. Upon clicking the
command button, the newly inputted data is replaced in the
database.

Page 72 of 146

SEARCH Combo Box: Search for the details of a particular


record by selecting the apartment number (ex: P4C3E) and
display the output of search.
Password Replacement:

TEXT BOXES: Area of space where the old password and new
password strings are to be entered.
Submit button: executes the function of cross checking the old
password with the external password file. After verification
succeeds, the newly typed passwords are checked if both are the
same. After passing that, the data is appended to the password
file.
Clear button: clears the text boxes in the case of wrong input.
Exit button: Closes the password replacement form completely.
Page 73 of 146

Go Back to Menu button: A navigating tool which takes the


user to the main menu.

Maintenance Payment Details:

The functions of the above forms command buttons are


presented below:
CREATE NEW TABLE: This table clears all the annual payments
and resets the whole table.
PAYMENT DETAILS: The display of all functions relating to
payments along with the display grids are activated.
Page 74 of 146

CREATE CONTACT REPORT: Creates a read-only document of all


the owners contact details.
CREATE OVERALL REPORT: Creates a read-only document of all
the payment details made by the paid members along with the
unpaid for analysis.
GENERATE INVOICE RECEIPT: Creates the invoice of a
particular apartment which can later be saved as *.html which is
later dispatched via email
CREATE EMAIL: Third party application (MS Outlook) will be
triggered for attaching the saved file and for dispatch.
SELECT APARTMENT INFO COMBO BOX: Moves pointer to the
selected apartment and displays payment information and starts
input of new payments.
SEARCH APARTMENT INFO COMBO BOX: The Flat ID must be
entered or a Flat ID must be selected from the combo box
GO TO Button: Initiates Searching Process of the input present in
the SEARCH COMBO BOX
PAID MEMBERS Button: Filters the paid members of the
community for whom the invoice must be generated from the
unpaid members.
RESET FOR NEW QUARTER PAYMENTS Button: Resets all the
quarterly payment details for new arrival of quarter payment
details.
EDIT Button: Allows the user to make changes to payment
details in the database
SAVE Button: Saves any modified data to the database.
BACK TO MAIN MENU Button: Navigates to main menu.

Page 75 of 146

DEVELOPMENT OF OUTPUT METHODS:

Login Screen (Valid Credentials):

Page 76 of 146

Login Screen (No input of Credentials):

Page 77 of 146

Login Form (Invalid Credentials):

Page 78 of 146

Password Replacement Form (Clicking Submit with no


input):

Page 79 of 146

Invalid credentials for changing passphrase:

Page 80 of 146

General Apartment Information Startup:

Page 81 of 146

General Apartment Information Search:

Maintenance Payment Details form startup:

Page 82 of 146

Maintenance Payment Details-Create new table:

Maintenance Payment Details-Create new table


authentication:

Maintenance Payment form-Payment details clicked:

Page 83 of 146

Maintenance Payment form-Search:

Page 84 of 146

Maintenance Payment form-Create Email:

Maintenance Payment form-Compose Mail Body:

Page 85 of 146

Menu-Force Close

Whole Program shuts


down when YES
selected

Menu Form-About option

Re-developed the program


from the start 6 times
within 18 days (26500
minutes)

Page 86 of 146

Menu Form-Help option clicked

DEVELOPMENT OF DATABASE QUEIRES/FILTERS:


Database Structure:
The database structure comprises of a total of 5 tables out of
which 3 tables are necessary for the generation of an invoice for a
particular flat. In this database structure, The MasterDB Table is
the base table and the other table such as PAYMENT is related to
the base table as many to many. The inclusion of OnlinePay was
necessary since my client wanted to store all the data in one
common place, i.e. the database. The other two tables, that are
not necessary for the program but are necessary for my client to
hold raw data, are Credits and Upto Q3-Q4 Dues Tables.

Page 87 of 146

The structure of the database is defined below:


Note: The tables are all made as designed in the design phase
previously.
MasterDB Table:
Design of the Table:
S.N Field Name
o
1
APT_NO(Prima
ry Key)
2
Name_of_Own
er

Type

Size

Short
Text
Short
Text

50

Sq_ft

Email ID

Numbe
r
Long
Text

Alternative
Contact

Long
Text

30

255

Descripti
on
Flat ID No.

Example

Flat
Owners
Name
Sq.Ft of
flat
Email ID
of the
owner
Contact
Number

Jawahar.S

P1A1A

1985
Jawahars29@ashokleyland
.com
+919894276092
Page 88 of 146

Design View of the Table during Development and its


layout is shown in the following page:Layout View:

Design View:

Foreign Key from


Master DB Table
Page 89 of 146

Layout View:

Page 90 of 146

Design View:

Relationship Between Tables:


The Relationship between the tables is one to many. The base
table i.e. the MasterDB table is related in this way to the
PAYMENT table. This is because each flat has an owner and they
have to pay for that particular flats Maintenance due only and
since there are 4 quarters of payments, The apartment dues of
the flat will correspond to many payment records of the flat.

One to many
relationship between
MasterDB and
PAYMENT
Page 91 of 146

Queries:There were only a total of 2 queries that were necessary in order


to obtain the desired output. The queries were built only in the
PAYMENT Table. These queries were also used in order to produce
a report for the customer. All the parameters were triggered using
a command button in the Maintenance form and finally the report
would be produced. Therefore the user has no interaction with the
query but will use the report production form whenever a report is
called for.
Paid Members Query:
This query was generated so as to filter out the paid members
from the unpaid members and produce invoice for those who
have only paid the maintenance due. This query is inserted in a
command button and the query will be activated when the user
clicks on the command button.

Page 92 of 146

The * filters the paid members who have their Status as C.


Invoice for Report Query:

Page 93 of 146

The query only selects the information of that particular flat


and produces an invoice that the user opts.

Forms Designs and Layouts:Login form:

This is the initial form to be displayed. After Authentication, The


user proceeds to the Main Menu.
Page 94 of 146

Menu form:

2
1

1 Options the user would like to select to carry out specific


operations.
2 The View button, when clicked, shows the forms which show
desired information about a flat-contact and payment wise.

Password form:

Page 95 of 146

1 Old and New passphrases will be entered here.


2 The command buttons perform operations that the user
wishes to use
3 If the user wishes to navigate to main menu immediately

Payment Form:

Page 96 of 146

1 Command Buttons for Payment details and Invoice production


and dispatch
2 Display of Payment details of a desired flat
3 Display of payment details of recently paid flats so as to
produce receipt for their payment
4 Clears data in the payment table and calculates dues for one
year.

Page 97 of 146

Apartment Details Form:

1 Display of Apartment Details in the text boxes


2 Functions for easier data navigation
3 Navigation between 2 forms directly.

Page 98 of 146

Report Designs and Layouts:Contact Information Report:

Page 99 of 146

1 Head Title of the report


2 Data fetched from the database and displayed as output on
the report.

Page 100 of 146

La Celeste Overall Maintenance Report:


The same process of fetching data from the database and display
takes place with the same template as that of Contact report.
La celeste Maintenance Payment Invoice:

Page 101 of 146

1 Head Title with Logo


2 Date and time Of Generation of the Invoice
3 Sub Title of the Payment Invoice
4 Calculated amount by program and final output presented in
the table

Page 102 of 146

Data Dictionary:
Field Name

Data Type

Description

APT_NO

Short Text

Flat ID No.

Name_of_Owne
r

Short Text

Flat Owners Name

Sq_ft

Number

Sq.Ft of flat

Email ID

Long Text

Email ID of the owner

Alternative
Contact

Long Text

Contact Number

APT_NO

Short Text

Flat ID No.

QTR

Short Text

Quarter Number with Q/q infront

DATE_of_Collect
ion

Date/Time

Date on which transaction


completed

SQR_FEET

Number

Square feet of flat

AMOUNT

Currency

Maintenance amount to be paid

STATUS

Short Text

Paid or Not Paid signified by C or


P only

BANK

Short Text

Name of the Bank

CHEQUENO

Short Text

Last 6-8 digits of the cheque


deposited

BRANCH

Short Text

Which Branch is the Bank located

AMTPAID

Currency

Paid amount by the owner

BALANCE

Currency

Remaining Balance to be paid

OTHERS

Currency

Any extra amount or fine to be


paid

TOTAL

Currency

Final amount to be paid by the


owner

Page 103 of 146

Navigational Paths:

Page 104 of 146

E. TESTING

TEST STRATEGY:-

The primary aim of testing the new system is to develop the


computerized solution that my client requires to function with
maximum efficiency and evade any errors that interferes with the
programs efficiency. Testing also helps to make sure that the
functions of the program are working according to the developers
desire.
Testing is an essential part of the program development as this
program serves a maintenance department which, in the future,
will develop receipts that are sent via mail to the respective
owners email IDs. In the case of errors in the receipt, the prestige
of the maintenance department will gradually decrease. In order
to avoid this situation, it is necessary to eliminate any type of
errors in the program.
The most important functions of the program that I intend to test
are security, fetching of data from the database, receipt display
for different owners and modification of data in the database from
the forms. Other functions I will test are Input validations which
reduce the input of errors from the users side.
During this process of testing the program package, I will use two
types of testing mechanisms namely:

Page 105 of 146

a Black Box (functional) Testing:-give input and cross


check with your output. The sub features of this testing
are as follows:
i System Testing
ii Performance Testing
iii Stress Testing
2 Dry-Run: I can check how each variable is modified as it
runs through the program and cross check the final output
with the desired output of the user.
The testing strategies that are mentioned above are to be used to
test the new system since the errors in the program package
must be completely eradicated before delivering the final package
to my client. In order to achieve this goal, the program must be
subject to extreme testing environments.
The tests will be conducted on important parts of the program like
report generation, data collection and dispatch. If there are any
errors to be found in these areas, then the program will be
subjected to Dry-Run and the coding will be corrected to form a
productive program package.

II

TEST PLAN:-

The Program was tested by inputting data which include invalid


and valid data. These data were monitored and cross checked
with the output that was to be provided. If the program failed to
provide required output, the program shall be debugged and
modified, thereby removing the error.
The first type of Testing procedure I will conduct on the program
package is Black-Box testing. In this process, I will input some
data and cross check the output with the pre-calculated output.
Page 106 of 146

The table provided in the next page shows the data that will be
used for testing, its expected results, the actual results and the
actions that were taken if the actual results didnt match the
expected results:

Black Box Testing


Test Data Table:
Tes Field
t#

Test
Type

Test
Data

Expecte
d
Results

Actual
Action
Results

Evidenc
e

Amount
Paid
Amount
Paid

Valid

50,000

50000

50,000

Pg.111

Extrem
e

100,000,0
00

100,000,00
0

1000000
00

Amount
Paid

Invalid

Cheque

Invalid
Input
Message

Please
Input
Numbers
Only as
Output
Message

Successful
Input
Successful
Input and
Size
allocation.
Comma
signs
removed
during
input.
success in
acceptanc
e of data
Successful
. Program
accepts
integers
only.
Terminate
s the
function

Pg.112

Pg.113,11
4

Page 107 of 146

Bank
Name

Valid

Best Bank

BEST BANK

BEST
BANK

Bank
Name

Extrem
e

Best
BaNk.L.l.C,
CHeNnAi,i
NDia

Best
BaNk.L.l.C,
CHeNnAi,iN
Dia

Bank
Name

Invalid

9Best
B@nk.L.l.c

Invalid
Output
Message

Best
BaNk.L.l.
C,
CHeNnAi,i
NDia
Please
Enter
Alphabets
Only
Message
output.

Cheque
Number

Valid

A123456

A123456

A123456

Cheque
Number

Extrem
e

AW1234

AW1234

Cheque
Number

Invalid

AW123

Invalid
Cheque
length
Output
message

when
string
entered.
Successful
. lower
case
converted
to upper
caseautomatically
Successful
Input.

Pg.115,11
6

Pg.117,11
8

Successful
. Program
uses ascii
values to
filter
integers
and
strings.
Terminate
s after
output
message.
Successful
Input.

Pg.119,12
0

AW1234

Successful
input.

Pg.123,12
4

Incorrect
Length of
cheque
number
Output
message

Successful
. Program
verifies if
the length
of cheque
number is
>6 and
<8.

Pg.125,12
6

Pg.121,12
2

Page 108 of 146

Terminate
s if
condition
false.
10

Quarter
Term

Valid

Q1

Q1

Q1

Successful
Input

Pg.127,12
8

11

Quarter
Term

Extrem
e

q1

Q1

Quarter
Term

Invalid

X1

Invalid
Input
Message
output

13

Searchin
g for Flat
Details

Valid

P1A1A

14

Searchin
g for Flat
Details

Extrem
e

p1C3B

Flat record
to be
pointed in
the
datagrid of
the form
Flat record
to be
pointer in
the
datagrid of
the form

Failed. I
Modified
the
program
to accept
q as Q
Successful
Input.
Verifies
the
starting
character
of string
to be Q
or q
Successful
Search.

Pg.129,13
0

12

Please
Input first
letter as
Q
Message
output.
Please
Input first
letter as
Q
Message
output

Success. I
changed
the
program
to convert
p to
upper
case and
continue

Pg.135

Pointer
Points
that
particular
record.
Pointer
did not
point at
the
record

Pg.131,13
2

Pg.133,13
4

Page 109 of 146

search

15

Searchin
g for Flat
Details

Invalid

O2A14

Invalid
input
message as
output.
(Since first
letter
should be
P)

16

Searchin
g for Flat
Details

Valid

P4C3E

Pointer
must be
pointing to
that
particular
record

17

Searchin
g for the
Flat
Details

Extrem
e

P4c3E

Pointer
Must point
to that
particular
record

18

Searchin
g for the
Flat
Details

Invalid

P4F4G

Pointer
Must Not
Point at any
record(Sinc
e the 3rd
must be

Pointer
did not
point at
any of
the
record.
Remains
where it
was
pointed
before.
Pointer
Points to
that
record in
the
datagrid
of the
form.
Pointer
does not
point to
that
record

Pointer
did not
point at
record.

Successful
.

Pg.136,13
7

Successful
.

Pg.138,13
9

Failed.I
changed
the coding
to convert
3rd and 5th
letter to
upper
case and
continue
search.
Successful
. Since it
cross
checks
with the
database

Pg.138,13
9

Pg.140

Page 110 of 146

below D
and 5th
letters
must be
below E)

and no
records
found,It
completes
search
function

Snapshots of Testing:-

Page 111 of 146

Fig1.0: The above image describes the process of Valid input of


amount into the PAYMENT Table.

Fig1.1: The above image shows the input of a valid data in the
PAYMENT Table.

Page 112 of 146

Fig1.3: The above image shows the input of an extreme data into
the Payment Table

Fig1.4: The above image displays the input of the extreme data
stored in the PAYMENT Table

Page 113 of 146

Fig1.5: The above Image shows the input of an invalid data into the
AMTPAID Field in the PAYMENT Table
Page 114 of 146

Fig1.6- The above image shows the invalid output message when a
string is entered into the AMTPAID Field of the PAYMENT Table
Page 115 of 146

Fig 2.1: The above image shows the input of a string into the BANK
Field of the PAYMENT Table

Page 116 of 146

Fig2.2: The above image shows the valid input stored in the
PAYMENT Table

Page 117 of 146

Fig2.3: The above image shows the input of an extreme data in the

BANK Field Of the PAYMENT Table.

Page 118 of 146

Fig2.3: The above Image shows the stored input of an extreme data
in the PAYMENT Table. Note that the Extreme data is converted into
valid input by conversion into upper case letters.

Page 119 of 146

Fig2.5: The above image shows the input of an invalid data into the
BANK Field of the PAYMENT Table.

Page 120 of 146

Fig2.6: The above image shows the denial to store the invalid data

input by user into the PAYMENT Table.

Page 121 of 146

Fig3.1: The above image shows the input of valid cheque number in
the CHEQUENO Field of the PAYMENT Table

Page 122 of 146

Fig3.2: The above image shows the stored valid input in the
PAYMENT Table in the database.

Page 123 of 146

Fig 3.3: The input of an extreme data into the PAYMENT Table is
shown above.

Fig 3.4: The input of extreme data is stored in the PAYMENT Table.

Page 124 of 146

Page 125 of 146

Fig 3.5: An input of invalid data is entered into the PAYMENT Table

Page 126 of 146

Fig3.6: The denial of invalid data due to short length into the

database is shown.

Page 127 of 146

Fig4.1: The input of a valid data into the PAYMENT Table

Page 128 of 146

Fig4.2: The data is added to


the PAYMENT Table.

Page 129 of 146

Fig 4.3:The above image shows the input of an extreme data which
is considered to be invalid data. The input of q1 lead to error.

Before Output for q1 as input:


Page 130 of 146

Fig 4.4: The Above image shows the output when an extreme data
was considered to be invalid in nature. This error was corrected.

Page 131 of 146

After Output as q1 as input:

Fig 4.4: The input of q1, after error


rectification, stores the data in the PAYMENT Table.

Fig 4.5: The above image shows the input of an invalid data in the
form to the database.
Page 132 of 146

Page 133 of 146

Fig4.6: Output when an invalid data is entered to the database is


shown above.

Page 134 of 146

Fig 5.1: The above image shows the movement of the pointer to a
particular record when a valid data is entered.

Page 135 of 146

Fig 5.2: The above data shows no movement of the pointer when an
invalid data is entered. It remains at the previous record.

Page 136 of 146

Fig6.1: Input of a valid data in the GO TO Field for searching is show


above.

Before Correction:
Page 137 of 146

Fig 6.2: The above image shows the failure to show the record when
an extreme data was entered into the combo box of GO TO Field.

After Correction:
Page 138 of 146

Fig 6.2: The input of extreme data into the combo box of the GO TO
Field moves the record to that particular record when SHOW ME is
clicked.

Page 139 of 146

Fig 6.3: When an invalid data is entered in the combo box in GO TO


Field, The pointer does not point anywhere.

The next type of testing I will use is System Testing. System


Testing is a type of testing where the operations in different
Operating Systems are monitored. The Data produced by this
testing will be useful in deducing the amount of stress that is
needed for future tests (i.e Stress Testing)

Page 140 of 146

System Testing:Test Table:


Test #

Configuration Action

Processor-Core
i3,1.53 Ghz
RAM-2GB
OS-Windows 7
Professional
Processor-Core
i5,2.65 Ghz
RAM-3GB
GPU-2GB
OS-Windows
8.1 Pro
ProcessorRAM-1GB
OS-Windows 7
Home Premium

3.

Successful. The Program


displayed no signs of lags or
crashes during run-time.

Successful. The Program ran


smoothly and displayed a small
lag at the start of the program
since it was searching for the
database linked to the program.
Successful. The Program
displayed lags and was even at
the brim of crashing. But the
program restored itself back to
normal and carried out the
functions perfectly

A Snapshot of System testing:


Page 141 of 146

The Second type of testing procedure I wish to use is Performance


testing. In this type of testing, I will assess the performance of
memory it uses and how the program can be more tweaked for
efficiency.
The Table below contains the details about memory used and the
platform on which the program was tested. The program was
under constant monitoring during this testing.

Performance Testing:
Test table:
Page 142 of 146

Test
#

Configurati
on

Memory Usage

Action

ProcessorCore i3,1.53
Ghz
RAM-2GB
OS-Windows
7
Professional

6,796-27,944 KB
Maximum Memory
Used=27.289 MB
Minimum Memory
Used= 6.636 MB

Successful.
The Program
displayed no
signs of lags
or crashes
during runtime.

Processor-Core
i5,2.65 Ghz
RAM-3GB
GPU-2GB
OS-Windows
8.1 Pro

4710.4-16,327
Maximum Memory
Used=15.944 MB
Minimum Memory
Used=4.681 MB

3.

ProcessorCentrino 2
RAM-1GB
OS-Windows 7
Home
Premium

6,520-27,660 KB
Maximum Memory
Used=27.011 MB
Minimum Memory
Used=6.367 MB

Successful. The
Program ran
smoothly and
displayed a
small lag at the
start of the
program since
it was
searching for
the database
linked to the
program.
Successful. The
Program
displayed lags
but the
program
restored itself
back to normal
and carried out
the functions
perfectly

The above data helped me understand the limits of stress that


was necessary for the program to crash/not function properly.

Stress Testing:Page 143 of 146

This is the third type of testing I will use to test my program. This
Testing is used to evaluate how the program behaves under
unfavorable conditions or beyond limits of specifications.
In this type of testing, I will take the highest memory used by the
program (Test 1 from performance table) and run the program
under harsh conditions. The Program will be made to use the
memory greater than the maximum memory used. The behavior
and the functionality of the program in this situation will be
tested. This is to ensure that the program does not crash during
my clients operation. This is to also check if the program
functions in any situation that is unfavorable.
Test Table
Test #

Size of
RAM

Load provided
on program

Progra
ms
Memory
Usage

Action

3GB

1540.61MB

30.06
MB

Under
input of
huge
amount of
data and
high load
on the
program,T
he
program
showed a
sign of
lagging at
first but
then
carried out
its
functions

Evidenc
e

properly.

Page 144 of 146

Screenshots of Images taken during Testing:-

Page 145 of 146

From all the testing strategies used above. I conclude that the
program package is tested to be error-free and is ready to be
installed and run on the new system

Page 146 of 146