Candidate Number: 0000 Centre Number: 51518 [Customer Database]
1 | P a g e
Contents Analysis .................................................................................................... 6
Background to/identification of problem ..................................................... 6
Background of the Company .................................................................. 6
Identification of the Problem .................................................................. 6
Description of current system ................................................................... 6
Problem with Current System ................................................................. 7
Identification of the prospective user(s) ..................................................... 7
Identification of user needs and acceptable limitations ................................. 8
Acceptable Limitations .......................................................................... 8
Data source(s) and destination(s) ............................................................. 9
Data volumes ....................................................................................... 11
Analysis Data Dictionary ........................................................................ 12
Data Flow Diagrams (DFDs) (existing and proposed systems) ..................... 16
Existing System ................................................................................. 16
New System ...................................................................................... 18
Entity-relationship (E-R) model (if appropriate), E-R diagrams, entity
descriptions .......................................................................................... 23
Entity Description ............................................................................... 23
Object analysis diagrams – inheritance, aggregation (if appropriate) ........... 24
Numbered general and specific objective of the project .............................. 24
Realistic appraisal of the feasibility of potential solutions ............................ 27
Off-the-shelf ...................................................................................... 27
Bespoke ............................................................................................ 33
Creating the Software ......................................................................... 34
Justification of chosen solution ................................................................ 34
Evidence of use of appropriate analysis techniques .................................... 35
Design .................................................................................................... 36
Outline of System Design ....................................................................... 36
System Flow Charts ............................................................................ 37
Description of modular structure of system ............................................... 42
Definition of Data Requirements .............................................................. 46
Description of Record Structure ............................................................... 51
E-R Diagram ......................................................................................... 54
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
2 | P a g e
Normalised Database Tables ................................................................... 54
Un-Normalised Form ........................................................................... 54
First Normal Form .............................................................................. 55
Second Normal Form .......................................................................... 55
Third Normal Form ............................................................................. 56
Sample of planned SQL queries (if appropriate) ........................................ 56
Identification of Storage Media ................................................................ 57
Identification of suitable algorithms for data transformation, pseudocode of
these algorithms ................................................................................... 57
Class definitions (diagrams) and details of object behaviours and methods (if
appropriate) ......................................................................................... 60
User interface design (HCI) rationale ....................................................... 61
UI sample of planned data capture and entry designs ................................ 62
Login Form ........................................................................................ 62
Opening Page..................................................................................... 63
Table View ......................................................................................... 63
UI sample of planned valid output designs ................................................ 65
Search Form ...................................................................................... 65
Description of measures planned for security and integrity of data .............. 66
Security ............................................................................................ 66
Integrity ............................................................................................ 66
Description of measures planned for system security ................................. 66
Overall test strategy .............................................................................. 66
Implementation ....................................................................................... 67
Classes ................................................................................................ 67
Courses ............................................................................................. 67
Enquiry ............................................................................................. 69
Parent ............................................................................................... 71
Program ............................................................................................ 75
Student ............................................................................................. 75
Users ................................................................................................ 79
Forms .................................................................................................. 81
AddEnrollment ................................................................................... 81
AddNewCourse ................................................................................... 83
AddNewEnquiry .................................................................................. 85
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
3 | P a g e
AddNewParent ................................................................................... 87
AddNewStudent ................................................................................. 91
AddNewUser ...................................................................................... 93
CourseTable ....................................................................................... 95
EmployeeLoginTable ........................................................................... 96
EmployeeLogin ................................................................................... 97
EnquiryTable ...................................................................................... 98
EnrollmentTable ................................................................................. 99
HomePage ....................................................................................... 101
Login .............................................................................................. 102
NewSearch ...................................................................................... 103
ParentTable ..................................................................................... 109
StudentTable ................................................................................... 110
Testing ................................................................................................. 112
Top-Down Testing ............................................................................... 112
Evidence ......................................................................................... 116
System Testing ................................................................................... 143
Bottom-Up Testing ........................................................................... 162
Black Box Testing ................................................................................ 285
System Maintenance .............................................................................. 288
System Overview ................................................................................ 288
Environment .................................................................................... 288
System Flowchart ............................................................................. 288
A Sample Of Detailed Algorithm Design ............................................... 288
Procedure And Variable Lists/Description For Programs OR List Of Package
Item Developed ................................................................................ 288
SQL Queries ....................................................................................... 309
Screenshots Of Forms In Design View .................................................... 310
AddEnrollment ................................................................................. 310
AddNewCourse ................................................................................. 310
AddNewEnquiry ................................................................................ 311
AddNewParent ................................................................................. 312
AddNewStudent ............................................................................... 313
AddNewUser .................................................................................... 314
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
4 | P a g e
CourseTable ..................................................................................... 314
EmployeeLoginTable ......................................................................... 315
EnquiryTable .................................................................................... 315
EnrollmentTable ............................................................................... 316
HomePage ....................................................................................... 316
Login .............................................................................................. 317
NewSearch ...................................................................................... 318
ParentTable ..................................................................................... 319
StudentTable ................................................................................... 319
Screenshots Of Tables In Design View ................................................... 320
Courses ........................................................................................... 320
Enquiry ........................................................................................... 320
Enrollment ....................................................................................... 320
Non-Enrolled .................................................................................... 321
Parent ............................................................................................. 321
Student ........................................................................................... 322
User ............................................................................................... 322
Screenshots Of Tables’ relationship ....................................................... 323
User Manual .......................................................................................... 324
System Description ............................................................................. 324
Installation Instructions ..................................................................... 324
Login And Logout ............................................................................. 326
Adding A New User Record And Viewing Current Users Records .............. 327
Add A New Parent Record And Deleting And Viewing Current Parent Records
...................................................................................................... 328
Adding A New Student Record And Deleting and Viewing Current Student
Records ........................................................................................... 329
Adding A New Enquiry Record And Deleting And Viewing Current Enquiry
Records ........................................................................................... 330
Add New Courses Record And Deleting And Viewing Course Records ....... 332
Add New Enrolment And Delete And View Enrolled and Non-Enrolled
Students ......................................................................................... 333
Search ............................................................................................ 335
Samples of error messages .................................................................. 337
Login .............................................................................................. 337
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
5 | P a g e
Adding new record ............................................................................ 337
Search ............................................................................................ 340
Appraisal .............................................................................................. 341
Comparison of project against numbered general and specific objective. .... 341
Numbered general and specific objective of the project ............................ 341
User Feedback ....................................................................................... 347
User Possible Extentions ...................................................................... 347
Covert Enquiry to Student ................................................................. 347
Edit Exsisting Student ....................................................................... 347
My Possible Extensions ........................................................................... 347
Creating a mailing list from the search ................................................... 347
Being able to edit records ..................................................................... 347
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
6 | P a g e
Analysis
Background to/identification of problem
Background of the Company
The company that require the program are called LogicOut. My contact there is
Nick who is a tutor there.
Logic out is an afterschool club that teaches students technology. The students
that attend there are between the ages of 8 and 14. Currently in total there are
6 members of staff working within the company. There are three tutors working
there between the hours of 3pm and 6pm. There is the head of the company,
who also teaches, works there between the hours of 10am and 6pm. The head of
the company is also responsible for developing course content and various
administrative tasks. The other two members of staff handle accounts and
payroll tasks.
Identification of the Problem
To design a customer database to store data for LogicOut. The contact at
LogicOut is Nick Bearly of whom the communication will be with regarding this
project. The customer database is required to speed up processing data as well
as ease of use of the database.
Description of current system
Currently, LogicOut store their customer information on a spreadsheet. They
class their clients to two spreadsheets; one spreadsheet for enrolled customers
and one spreadsheet for un-enrolled customers. They class enrolled customers
as those of whom are currently taking a course at LogicOut and un-enrolled
customers as those of whom have taken a course previously at LogicOut but are
not currently taking any courses. They periodically send out e-mails to
customers that are on both of the spreadsheets. All work that is carried out
around this in this system is carried out manually.
When a new client needs to be entered, the customer must fill out a form. This
information is then transferred to the spreadsheets. This is then transferred
manually through straight typing. When a student finishes a course, the students
details are then moved from the enrolled spreadsheet to the non-enrolled
spreadsheet manually. Periodically, both enrolled and unrolled students are sent
details of courses offered at LogicOut by post or email.
Below is print screen of the form that LogicOut currently use to get information
from their clients. Please also find a hard copy of spreadsheet attached in
Analysis appendices.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
7 | P a g e
Problem with Current System
They find that with their current system the information is easily accessible but
has a multitude of problems. With the current system they use, they store
customer data over two separate file and find transferring data between these
two files as well as from form to file tedious. When they come to search for data
and create mailing lists, they find it time consuming. If they have siblings
attending courses, the data is duplicated which takes up additional memory
space. They also find that loading addresses in a word processing program is not
automatic and have to manually copy over required fields such as addresses.
This again is very time consuming and can also lead to some fields being missed
and increased chance of making mistakes.
Currently, everything that LogicOut do with their current system is manual and
seems to be very time consuming and not very efficient. It also looks like a lot of
time is spent working with this current system when if they had the right
system, the time could be used to be doing other things to further LogicOut as a
business. Searching through the database is also done manually and so data
could be missed. LogicOut have said they would like a new system that would
allow them as a company to become more efficient in terms of time and effort.
They would also like to have a tidier and more secure approach to the storing of
customer data.
Overall, their current system is not very efficient, more error prone and time
consuming and so taking time that could be used for something else.
Identification of the prospective user(s)
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
8 | P a g e
The prospective user(s) that are going to be using the system at LogicOut is the
admin team. The admin team consists of multiple users. All employees of the
company will be using the system but some employees will have limited access
to the database.
Identification of user needs and acceptable limitations
As a result of there being a multitude of problems, there are quite a few
requirements for the new system. The client has specified these points:
A relational database for storing their customer’s data.
Easy data entry.
The ability to search the database for customers likely to be
interested in a service based on criteria given.
To be able to display the results of searches and to create e-
mailing lists based on the result.
Print out a list of customers contacted for records using a printer
but have said this is not mandatory.
A graphical user interface allowing use of the system without
specialist IT knowledge.
The customer would like to bring across the customer data from the old system
to the new system.
Acceptable Limitations
The customer has said that as they are a small company, they are short of funds
but have said they have the latest hardware and software and feel that a new
system should be able to run as per their current configuration. This means that
the program will need to be created and designed using free softwares. This also
means that they will not be able to buy any new hardware to support the new
system however they currently have systems of 24 GB RAM which they feel
should be adequate enough to run a database system like the one I am going to
create. For the company, the purchase of any further software is not an option
and so this new system will need to be created with the use of free softwares.
The time in which this program needs to be completed by is also limiting. They
require the program by the 10th December 2015 so they can test it ready for the
new term in January. This limited time affects how much time I have to design
and create this new software and so may not allow for as much to be done or for
not as many extras which could further the programs ability.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
9 | P a g e
The customer has asked for mail merging database records into word document.
However, I am not aware of how to use Microsoft Word within my programming
and so will not be able to do this.
Data source(s) and destination(s)
INPUTS
- New Employee Login data.
o Username
o Password
o Email
o Date Of Account Creation
o Restricted Access (Decided by admin/manager)
- New Parent data
o Parent ID
o Mother’s Title
o Mothers Forename
o Mothers Last Name
o Father’s Title
o Fathers Forename Name
o Fathers Last Name
o Contact Email
o Telephone Number
o Mother’s Mobile Number
o Father’s Mobile Number
o Mother’s Work Number
o Mother’s Work Mobile
o Father’s Work Number
o Father’s Work Mobile
o Address Line 1
o Address Line 2
o Town/City
o County
o Postcode
- New Student data.
o Student ID
o Title
o Student Forename
o Student Last Name
o Student DOB
o Email
o Parent ID
o Learning Disability
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
10 | P a g e
o Allergies
o Health Conditions
o Current Course
o Completed Courses
o Date joined
- New Enquiry
o Enquiry ID
o First Name
o Last Name
o D.O.B
o Parent ID
o Course Recommended
o Enquiry Date
- New Course data
o Course ID
o Name
o Started
o Description
o Recommended For
o Age recommendation
o Pre-requisites
- Inputting data for database search.
o Age
o Postcode
o Town/city
o County
o Course
PROCESSES
- Adding and saving new employee login data.
- Adding and saving new parent data.
- Adding and saving new student data.
- Adding and saving new enquiry data.
- Adding new course data.
- Searching through data as per criteria given.
- Printing selected data from database.
OUTPUT
- Showing/printing result as per criteria given for enrolled
o Student Name, Address1, Address2, town/city, county, dob,
contactEmail
- Showing/printing result as per criteria given for non-enrolled
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
11 | P a g e
o Enquiry Name, Address1, Address2, town/city, county, dob,
contactEmail
Data volumes
The company currently considers themselves as a small company. Currently
there are 7 members of staff working there including the owner/manager of the
company. The employee login table currently uses 203 bytes per employee.
Currently, this would for the 7 employees require 1421 bytes. However, they
hope to expand the amount of students they have by double in 6 months and
quadruple by 2 years. To keep up with demand they may require more
employees so this needs to be considered. How many more employees they will
need to employ depends on a variety of factors such as if they are currently at
capacity. If the amount of staff grows in proportion to the growth of the amount
of students, with their goals this means in 6 months they will need 12 staff
resulting into 2436 bytes and in 2 years they will need 24 staff total. Though
some of the staff may not need more such as the owner/manager and admin for
example, this amount could be used as a rough outline. With the idea of 24
staff, this means the employee table may require around 4872 bytes.
There are currently 50 students and 30 siblings which means there is also 50
parents. The parent table currently requires 341 bytes per parent. Currently this
means to store 50 parents it requires 17050 bytes. If LogicOut meet their goals,
and only new students join in 6 month this could mean the parent
table/database will require 34100 bytes and in 2 years 68200 bytes.
The student table currently requires 772 bytes per student. Currently this means
to store 50 students it requires 38600 bytes. If LogicOut meet their goals, and
only new students join in 6 month this could mean the parent table/database will
require 77200 bytes and in 2 years 154400 bytes.
There are currently 30 siblings of which should be stored under the enquiries
table. Per enquiry it requires 71 bytes. Currently this means to store 30 siblings
it requires 2130 bytes. It’s hard to predict how many new enquiry entry they
could get but if we follow their student goals, in 6 months this could require
4260 bytes and in two years require 8520 bytes.
Overall, this would mean that 57.81 KB storage space will required with current
data. In 6 months, 115KB would be required and in 2 years, 230.46KB storage
space would be required.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
12 | P a g e
Analysis Data Dictionary
Parent Table
This table is for the details of the customer.
Field Name Description Length Data Type Example
Parent ID A code that is
unique to each
customer and cannot be
repeated with the database.
5 Alphanumeric PA005
Mother’s Title
The title of the mother.
4 Alphanumeric Mrs
Mothers
Forename
Mother first
name.
15 Alphanumeric Lucy
Mothers
Last Name
Mother last
name.
25 Alphanumeric Barley
Father’s
Title
The title of
the father.
4 Alphanumeric Mr
Fathers
Forename Name
Father’s first
name.
15 Alphanumeric Terry
Fathers Last Name
Father’s last name.
25 Alphanumeric Barley
Contact Email
The contact email of at
least one of the parents.
50 Alphanumeric [email protected]
Telephone Number
The home number of the customer.
13 Numeric 01675 532675
Mother’s Mobile
Number
The mobile number of
the mother.
13 Numeric 07725 573795
Father’s
Mobile Number
The mobile
number of the father.
13 Numeric 07256 456723
Mother’s Work
Number
The work number of
the mother.
13 Numeric 01240 059099
Mother’s
Work Mobile
The work
mobile number of the mother.
13 Numeric 07799 123456
Father’s Work
Number
The work number of
the father.
13 Numeric 01834 998556
Father’s The work 13 Numeric 07342 987237
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
13 | P a g e
Work
Mobile
mobile of the
father.
Address
Line 1
First line of
customers address.
25 Alphanumeric Bushline House
Address Line 2
Second line of customers address.
25 Alphanumeric Boxley Road
Town/City Town/City the customer
lives in.
25 Alphanumeric London
County The county
the customer lives in.
25 Alphanumeric Kent
Postcode The customers Postcode
7 Alphanumeric SW1 2HG
Student Database
The Student database is a database that used to store data amount the student.
Field Name Description Length Data Type Example
Student ID A code that is unique to
each student and cannot
be repeated with the database.
6 Alphanumeric ST1055
Title The title of the student.
4 Alphanumeric Miss
Student Forename
Student’s first name.
15 Alphanumeric Tarlia
Student Last Name
Student’s last name.
25 Alphanumeric Barley
Student DOB
Students Date Of Birth
in short date.
8 Date 15/05/05
Email The email of
the student if supplied.
50 Alphanumeric [email protected]
Parent ID Parent ID (Foreign key)
5 Alphanumeric PA005
Learning Disability
Does the student have
a learning disability?
200 Alphanumeric Dyslexia
Allergies Does the student have any allergies?
200 Alphanumeric Allergic to bee stings.
Health Does the 200 Alphanumeric Lactose Intolerant.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
14 | P a g e
Conditions student have
any health conditions.
Current Course
If enrolled in a course, what
course/s are they
currently doing. This is a course ID.
50 Alphanumeric CO001
Completed Courses
Is course completed ?
Yes/No
1 Yes/No Yes
Date
joined
What day did
they first join Logicout?
8 Date 10/05/15
Enquiry Table
This table is for enquiries received by LogicOut.
Courses Table
This is for the courses available at LogicOut.
Field Name Description Length Data Type Example
Course ID A code that is
unique to each course and
5 Alphanumeric CO001
Field Name Description Length Data Type Example
Enquiry ID The ID of the enquiry. This
is unique and cannot be repeated.
5 Alphanumeric EN001
First Name The enquiry first name.
20 Alphanumeric Milly
Last Name The enquiry last name.
20 Alphanumeric Barley
D.O.B The enquiry date of birth,
short date.
8 Date 30/09/10
Parent ID The Parent ID
of the parent of the sibling. (Foreign Key).
5 Alphanumeric PA005
Course Recommended
The course ID for
recommended.
5 Alphanumeric CO001
Enquiry Date The date of
the enquiry.
8 Date 10/10/10
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
15 | P a g e
cannot be
repeated with the database.
Name The name of the course.
20 Alphanumeric GCSE
Started When the course is planned to
start.
8 Date 19/11/11
Description Description of
the course.
500 Alphanumeric This course
is for the qualification
of a GCSE. It requires two exams,
one practical
and one theory, each
counting for 50% of the
grade. Areas covered
with the course
include ………. (and so on. )
Recommended For
Who the course suites. E.g.
Touchtyper course for a
person with dyslexia.
200 Alphanumeric For students
interested in gaining a
grade, a better understand
of how to use a
computer.
Age
recommendation
What age is the
course recommended for.
50 Alphanumeric All Ages.
Pre-requisites Is there any other courses
required ? This will be the
course ID.
50 Alphanumeric CO002
Employee Login Table
This table contains login information for the program of the employees.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
16 | P a g e
Field Name Description Length Data Type Example
Username Username of
employee.
20 Alphanumeric LO.Bill.Mill
Password Password
of employee
account. These will need to be
encrypted.
20 Alphanumeric Password[]99
Email Employee
work email.
50 Alphanumeric [email protected]
Date Of Account
Creation
The data
the account was
created.
8 Date 05/05/11
RestrictedAccess How much
of the database can they
access? All users with
have restriction apart from
admin and manager.
1 Yes/No Yes
Data Flow Diagrams (DFDs) (existing and proposed systems)
Existing System
Level 0
Customer SpreadSheet Customer
Database
Customer Admin
Customer
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
17 | P a g e
Level 1
Printed Form Customer Admin
Student
Enrolment Enrolled Students
Admin Course
Finished?
Move to
enrolled.
Enrolled Students
Search Data
Manually
Non-Enrolled Students
Admin
Details
Students
Details
Details
Results
Searchin
g
Yes
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
18 | P a g e
New System
Level 0
Level 1
Customer
Database
Shows Search
Results User
Parent Details User
Delete
Student
User Add
Student Student
Student Details Student Details
Student ID
Notification
System
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
19 | P a g e
Delete
Parent
User Add Parent Parent
Parent Details Parent Details
Parent ID
Notification
System
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
20 | P a g e
Delete
Enquiry
User Add
Enquiry Enquiry
Enquiry Details Enquiry Details
Enquiry ID
Notification
System
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
21 | P a g e
Delete
Course
User Add Course Course
Course Details Course Details
Course ID
Notification
System
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
22 | P a g e
Searches
Student
Details
Criteria
Search Record
Parent
Student
Enquiry
Course
Create Form
Object
Dynamically
User
Value based
on criteria
Record Details such as Parent,
Student, Enquiry, Course details.
Criteria
23 | P a g e
Entity-relationship (E-R) model (if appropriate), E-R
diagrams, entity descriptions
Entity Description
Parent Table: ParentID, Mother’sTitle , MothersForename, MothersLastName,
Father’ Title, FathersForenameName, FathersLastName, ContactEmail,
TelephoneNumber, Mother’sMobile Number, Father’sMobileNumber,
Mother’sWorkNumber, Mother’sWorkMobile, Father’sWorkNumber,
Father’sWorkMobile, AddressLine1, AddressLine2, Town/City, County, Postcode.
Student Table: StudentID, Title, StudentForename, StudentLastName,
StudentDOB, Email, ParentID, LearningDisability, Allergies , HealthConditions ,
CurrentCourse, IsCompletedCourses, Datejoined.
Enquiries Table: Enquires ID, FirstName, LastName, DOB, ParentID,
CourseRecommendedID, EnquiryDate.
Courses Table: CourseID, Name, Started, Description, RecommendedFor, Age
recommendation, Pre-requisites.
Employee Login: Username, Password, Email, DateOfAccountCreation, Access.
Parents Student Course
Enquiries
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
24 | P a g e
Object analysis diagrams – inheritance, aggregation (if
appropriate)
Numbered general and specific objective of the project
1. The system should be able to add new parent details to the database.
a. Parent ID, Mother’s Title , Mothers Forename, Mothers Last Name,
Father’ Title, Fathers Forename Name, Fathers Last Name, Contact
Email, Telephone Number, Mother’s Mobile Number, Father’s Mobile
Number, Mother’s Work Number, Mother’s Work Mobile, Father’s
Work Number, Father’s Work Mobile, AddressLine1, AddressLine2,
Town/City, County, Postcode. These fields should be saved into the
database.
b. Saving into the database should not take any more than 1 second.
2. The system should be able to add new student details to the database.
∞
Parents
Students
∞
Enquiries 1 ∞ ∞ ∞
Courses
1 ∞
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
25 | P a g e
a. Student ID, Title, Student Forename, Student Last Name, Student
DOB, Email, Parent ID, Learning Disability, Allergies, Health
Conditions, Current Course, Is Completed Courses, Date joined.
These fields should be saved into the database.
b. Saving into the database should not take any more than 1 second.
3. The system should be able to add new enquiry details to the database.
a. Enquires ID, First Name, Last Name, DOB, Parent ID, Course
Recommended ID, Enquiry Date. These fields should be saved into
the database.
b. Saving into the database should not take any more than 1 second.
4. The system should be able to add new courses details to the database.
a. Course ID, Name, Started, Description, Recommended For, Age
recommendation, Pre-requisites. These fields should be saved into
the database.
b. Saving into the database should not take any more than 1 second.
5. The system should be able to add new employee login details to the
database.
a. Username, Password, Email, Date Of Account Creation, Access.
These fields should be saved into the database.
b. Saving into the database should not take any more than 1 second.
6. The system should be able to delete a parent record from the database.
a. Parent ID, Mother’s Title , Mothers Forename, Mothers Last Name,
Father’ Title, Fathers Forename Name, Fathers Last Name, Contact
Email, Telephone Number, Mother’s Mobile Number, Father’s Mobile
Number, Mother’s Work Number, Mother’s Work Mobile, Father’s
Work Number, Father’s Work Mobile, AddressLine1, AddressLine2,
Town/City, County, Postcode. These fields should be deleted from
the database.
b. Deleting from the database should not take any more than 1
second.
7. The system should be able to delete a student details from database.
a. Student ID, Title, Student Forename, Student Last Name, Student
DOB, Email, Parent ID, Learning Disability, Allergies, Health
Conditions, Current Course, Is Completed Courses, Date joined.
These fields should be deleted from the database.
b. Deleting from the database should not take any more than 1
second.
8. The system should be able to delete an enquiry record from the database.
a. Enquires ID, First Name, Last Name, DOB, Parent ID, Course
Recommended ID, Enquiry Date. These fields should be deleted
from the database.
b. Saving from the database should not take any more than 1 second.
9. The system should be able delete a course record from the database.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
26 | P a g e
a. Course ID, Name, Started, Description, Recommended For, Age
recommendation, Pre-requisites. These fields should be deleted
from the database.
b. Deleting from the database should not take any more than 1
second.
10.The system should be able to delete a employee login record from the
database.
a. Username, Password, Email, Date Of Account Creation, Access.
These fields should be deleted from the database.
b. Deleting from the database should not take any more than 1
second.
11.The system should be able to view parent records from database.
a. Parent ID, Mother’s Title , Mothers Forename, Mothers Last Name,
Father’ Title, Fathers Forename Name, Fathers Last Name, Contact
Email, Telephone Number, Mother’s Mobile Number, Father’s Mobile
Number, Mother’s Work Number, Mother’s Work Mobile, Father’s
Work Number, Father’s Work Mobile, AddressLine1, AddressLine2,
Town/City, County, Postcode. Should be able to view these fields.
b. Loading the records from the database for viewing should not take
any more than 1 second.
12.The system should be able to view student records from database.
a. Student ID, Title, Student Forename, Student Last Name, Student
DOB, Email, Parent ID, Learning Disability, Allergies, Health
Conditions , Current Course, Is Completed Courses, Date joined.
Should be able to view these fields.
b. Loading the records from the database for viewing should not take
any more than 1 second.
13.The system should be able to view enquiry records from database.
a. Enquires ID, First Name, Last Name, DOB, Parent ID, Course
Recommended ID, Enquiry Date. Should be able to view these
fields.
b. Loading the records from the database for viewing should not take
any more than 1 second.
14.The system should be able to view course records from the database.
a. Course ID, Name, Started, Description, Recommended For, Age
recommendation, Pre-requisites. Should be able to view these
fields.
b. Loading the records from the database for viewing should not take
any more than 1 second.
15.The system should be able to to view employee login details to the
database.
a. Username, Password, Email, Date Of Account Creation, Access.
Should be able to view these fields.
b. Loading the records from the database for viewing should not take
any more than 1 second.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
27 | P a g e
16.The system should be able to search through the database as per the
users search criteria.
a. Search criteria could include:
i. Age
ii. Town/City
iii. County
iv. Postcode
b. The results from the search should take no longer than 5 seconds.
c. The search result should be able to be printed.
i. This should take no longer than 2 seconds to send to the
printer.
d. The search results should be able to be sent for a mailing list.
i. This should take no longer than 2 seconds to create the
mailing list.
Realistic appraisal of the feasibility of potential solutions
There are a variety of solutions to the client’s problem that come with varying
costs, time frames, availabilities etc. The client requires a databases type system
which can meet their needs.
Off-the-shelf
One option could be to go for any off-the-self software which, as the name
suggest, they can just go and buy now. This would be immediately available to
buy and download providing the system has been released. This option is
generally the cheapest way to get a system as it is not unique to one user and is
available to most to buy. An off-the-shelf software is designed for a range of
customers and so may not meet all the needs of the user.
There are a variety of customer databases available, some free and some pay
with their advantages and disadvantages. I researched on the internet for
customer databases and some of these came up.
One company that came up were act!. They sell customer database software.
The website URL is: http://www.act.com/en-uk/
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
28 | P a g e
They provide different products at different price levels. The higher the price the
more features you get. The different prices levels seems to allow the company to
reach a wider range of clients as different clients may have different budgets.
The most expensive is called ‘Act! Pro v17’ which costs from £179 excluding VAT
per user. The cheapest is called ‘Act! Essentials’ which costs from £7 excluding
VAT. The company offer free trails and even access to a database tour through a
web browser however these require the user to input details which user do not
always want to do.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
30 | P a g e
The advantage to this software is that as it is a paid software, it is more likely to
provide a beter product. Of course, you can never be completely sure and so
checking the background of the company is very important. When looking at the
website, you can find their ‘Customer Testimonials’ which show companies that
use their product. Again, these could be false claims so it’s important to get a
full background of the company.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
31 | P a g e
The whole design of the website looks well set out. The company also have
partners, large amount of support services and a community of which can be
used. All of these come as an advantage to the user and so help to support their
product. Someone looking to buy a product would find that there is a lot of
support and supporting products that come with and in addition to the product.
The disadvantages to this product is that it comes with a cost. Some people may
not be prepared to pay for a product however, they do provide a free trial.
Another disadvantage is that when buying products online, it is hard to tell the
authenticity of the product and source and I you haven’t heard of the product
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
32 | P a g e
can be hard to know if the product is safe to use. Also, as this is an off-the-shelf
product, it may not meets all the user’s needs.
Another product I found on the internet while researching was called Insightly.
They provide a range of price level softwares for customer databases, starting at
free. The higher the cost, the more features, storage space, users etc.
The website URL is: https://www.insightly.com/
An advantage to this software is that you start with a free version and can use
it. This free version can allow people to use the software but is limiting in how
much it can be used. However, the free version allows the users can an idea of
the product and if they wish to use further, can then look at buying a pay
version. The pay versions also offer free trials which can allow the user to see
how the pay version works. Again the user will need to check the authenticity of
the site and whether it is secure to use.
A disadvantage to this site is that if you need lots of features, storage, it comes
with a cost. Another disadvantage is that when buying products online, it is hard
to tell the authenticity of the product and source and I you haven’t heard of the
product can be hard to know if the product is safe to use. Also, as this is an off-
the-shelf product, it may not meets all the user’s needs.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
33 | P a g e
Bespoke
The system would take longer to receive and would be more expensive, but
would allow the user to have a system unique to them and meets their needs.
This could lead to better efficiency within the company which could further lead
on to better productivity.
Examples of a Bespoke system for a data base could be Microsoft Access. This is
a database software which was created by Microsoft in May 1993 and is a locally
hosted database. The latest version of the System is Microsoft Access 2013. It
can cost around £80.00 to buy. This system is good to use as a larger amount of
people know how to use it and it runs along with other Microsoft Software’s well.
It is able to store data of clients and have several categories to allow for various
inputs to the software. This system, however, is not specific to one individual
needs and does not allow the client to use a system that fits their needs exactly
which means they might be comprising on efficiency when using the system. It
can also be difficult to incorporate the type of programme into complex code and
can only do the pre-set calculations that have been programmed into it.
SQL Server could be another option as this is a type of database store. This can
be access remotely and could be easier to use alongside another Bespoke
software or custom software. SQL stands for Structure Query Language. The
programming language itself can be described as a standard interactive and
programming language for getting information from and updating a database.
SQL generally is able to store large amounts of data efficiently. It also has an
interface which makes it more user friendly and easier to navigate around. An
advantage to SQL is that you can remotely access the database and so can be
accessed from more locations although security measures will need to be put
into place. A disadvantage to SQL is that it is harder to use and requires more
training to understand how it works. Although Microsoft Access, for example,
would also require training, it has a similar concept to other Microsoft software
and if users are familiar with these, it generally is easier to pick up another type
of Microsoft Software.
Another database software that could be used is Oracle. It is a database
software which is designed for enterprise grid computing. The database has
logical and physical structures which are separate meaning physical structures
can be managed without affecting access to logical storage structures. This
software can be quite expensive; for the Standard Edition 2 costs roughly
$3,850.00 and the Enterprise Edition costs $10,450.00. There both advantages
and disadvantages to this system. Some advantages is the software is able to
support large databases, it can support data types such as integers and
characters as well as provides data to support object-oriented database storage.
Disadvantages to this system is that is quite high in complexity and so requires
technical knowledge on how to use the software which could require training.
This system is also quite expensive to purchase in comparison to other
software’s mentioned.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
34 | P a g e
Creating the Software
To create the Software needed, the programming language needs to be decided.
There are many around, but just to mention a few: C#, Java, C++ etc.
C# is from Microsoft and is a object-oriented programming language. It aims to
be able to combine the computing power of C++ with the programming system
of Visual Basics. It contains similar features as Java but has slight differences
such as a string which the first letter is un-capitalised in C# but capitalised in
Java. C# is a high level programming and so is easier to use than low level
programming languages as they have more English like terms. C# can also run
well alongside other Microsoft software. However, once compiled it does not
work easily on other platforms and may need to be adjusted in order to work on
other platforms.
Java can be seen as a general purpose computer programming language and is
concurrent, class-based, object oriented and specifically designed to have as few
implementation dependencies as it possibly can. The advantage to Java is that it
is simplified to eliminate language features that can cause common (and in some
cases non-common) programming errors. It was designed to be written one and
then be able to run anywhere type basis. This means that the compiled Java is
designed to be able to run on most if not all platforms. Java is a high level
programming, like C#, and so is easier to use than low level programming
languages as they have more English like terms.
C++ was developed by Bjarne Stroustrup and is an object oriented programming
language. It is an extension of another programming language called C. A
disadvantage to C++ is that it is not purely object orientated. C++ is a high
level programming, like the three above, and so is easier to use than low level
programming languages as they have more English like terms.
Alongside the software, there will be a need for a database. There could either
be a database software designed using one of the programming languages
already explained or can use a database software that already exists such as
Microsoft Access or SQL Server (both already explained).
Justification of chosen solution
Looking over the options and the client’s specification, I think a suitable solution
has been found; a bespoke software designed to the user’.
The programming language to be used to program the program that will be able
to access the database through user logins and be able to perform various
functions will be C#. The reason for the use of C# is that has a programming
environment called Visual Studio which is easy to use and the Express edition is
free to reducing the costs. Visual Studios software can also be very versatile and
when using the program it is quite good at feeding back where errors have
occurred. It is also the programming language that I am at the moment the
most comfortable in comparison to the other programming languages.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
35 | P a g e
For the database that is needed to store the customer data, I have decided to
use a software that is already available. The reason for this is that the client
requires this program quite quick. The software that I have decided to use is
SQL Server 2008 R2. The reason for this is that it can be remotely accessed and
can work well alongside the program being designed. It is also able to store
large amounts of data which is good as if the company grows, the database does
not limit the amount of data they can store.
Evidence of use of appropriate analysis techniques
LOGO
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
36 | P a g e
Design
Outline of System Design
The system will be used by the employees of LogicOut. The admin and manager
will decide who will have a log in to access the database. The admin and
manager will have access to the whole database whereas the rest of the staff
such as teachers will only be able to access certain parts of the database. The
database will be used to store information about parents, students and siblings
collected from forms as well as other data such as what courses they are
doing/have done. There will also be a table for enquiries of which will also store
sibling information. There is a table to stores course data and a table to store
login data for the users of the program.
The program is also to be used to search through the database for certain
information such as students who are doing a certain course. The information for
the courses should also be able to be printed and/or create an emailing list.
The system interface should be easy to use allowing it to be used with ease
without specialist knowledge.
The admin and manager will be managing the system as well as updating it
where needed. The teacher can use to access data about the courses and certain
information about the students which is relevant.
37 | P a g e
System Flow Charts
Delete
Student
Add
Student
Student Details Student Details
Student ID
User
Keyboard
Student
SQL Server
User
Monitor
Notification
System
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
38 | P a g e
Delete
Parent
Add Parent
Parent Details Parent Details
Parent ID
User
Keyboard
Parent
SQL Server
User
Monitor
Notification
System
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
39 | P a g e
Delete
Enquiry
Add
Enquiry
Enquiry Details Enquiry Details
Enquiry ID
User
Keyboard
Enquiry
SQL Server
User
Monitor
Notification
System
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
40 | P a g e
Delete
Course
Add Course
Course Details Course Details
Course ID
User
Keyboard
Course
SQL Server
User
Monitor
Notification
System
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
41 | P a g e
Searching
Criteria
User
Monitor
User
Keyboard
and Mouse
Search Record
Create Form
Object
Dynamically
Value based
on criteria
Record Details such as Parent,
Student, Enquiry, Course details.
Criteria
Parent
SQL Server
Student
SQL Server
Enquiries
SQL Server
Courses
SQL Server
42 | P a g e
Description of modular structure of system
Hierarchy Chart
Customer Database
User Student Parent Enquiries CoursesCustomer Reports
User
Add User
LoginDelete User
View User
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
43 | P a g e
Student
Add Student
Delete Student
View Student
Enquiry
Add Enquiry
Delete Enquiry
View Enquiry
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
44 | P a g e
Parent
Add Parent
Delete Parent
View Parent
Course
Add Course
Delete Course
View Course
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
45 | P a g e
For the Hierarchy chart below, what the person can search and/or print will
depend on how much access they have to the database.
Customer Report
Find records/data for certain criteria.
Age Postcode Town/City Postcode
View_Printing Records
From criteria search.
From manually selecting.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
46 | P a g e
Definition of Data Requirements
Parent Table
This table is for the details of the customer.
Cross-Validation
When this table is being filled in at least one of follow must be filled in:
- Contact Email
- Telephone Number
- Mother’s Mobile Number
- Father’s Mobile Number
- Mother’s Work Number
- Mother’s Work Mobile
- Father’s Work Number
- Father’s Work Mobile
When the table is being filled in, one of the following must also be filled in:
- Mother’s Forename
- Mother’s Last Name
- Father’s Forename
- Father’s Last Name.
Field Name Description Length Data Type Validation
Parent ID A code that is unique to each
customer and cannot be repeated with
the database.
5 String Can’t have a length larger than
5 nor have a shorter length than 5. Must
begin with PA. This cannot be
null.
Mother’s Title The title of the
mother.
4 String Must be either
Miss, Mrs, Ms or Mr.
Mothers Forename
Mother first name.
15 String Can’t have a length larger than 15
Mothers Last Name
Mother last name.
25 String Can’t have a length larger than
25
Father’s Title The title of the
father.
4 String Must be either
Miss, Mrs, Ms or Mr.
Fathers Forename
Name
Father’s first name.
15 String Can’t have a length larger than
15
Fathers Last Father’s last 25 String Can’t have a
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
47 | P a g e
Name name. length larger than
25
Contact
The contact
email of at least one of the parents.
50 String Can’t have a
length larger than 50
Telephone Number
The home number of the
customer.
13 String Can’t have a length larger than
13
Mother’s
Mobile Number
The mobile
number of the mother.
13 String Can’t have a
length larger than 13
Father’s Mobile
Number
The mobile number of the
father.
13 String Can’t have a length larger than
13
Mother’s Work
Number
The work number of the
mother.
13 String Can’t have a length larger than
13
Mother’s
Work Mobile
The work
mobile number of the mother.
13 String Can’t have a
length larger than 13
Father’s Work
Number
The work number of the
father.
13 String Can’t have a length larger than
13
Father’s
Work Mobile
The work
mobile of the father.
13 String Can’t have a
length larger than 13
Address Line 1
First line of customers address.
25 String Can’t have a length larger than 25
Address Line 2
Second line of customers
address.
25 String Can’t have a length larger than
25
Town/City Town/City the
customer lives in.
25 String Can’t have a
length larger than 25
County The county the customer lives
in.
25 String Can’t have a length larger than
25
Postcode The customers
Postcode
7 String Can’t have a
length larger than 7
Student Table
The Student database is a database that used to store data amount the student.
Field Name Description Length Data Type Validation
Student ID A code that is unique to each student and
6 String Can’t have a length larger than 6 nor have a
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
48 | P a g e
cannot be
repeated with the database.
shorter length
than 6. Must begin with ST. This field cannot be left
empty.
Title The title of the
student.
4 String Must be either
Miss, Mrs, Ms or Mr.
Student Forename
Student’s first name.
15 String This cannot be left empty.
Student Last Name
Student’s last name.
25 String This cannot be left empty.
Student DOB Students Date Of Birth in
short date.
8 Date This cannot be left empty.
Email The email of the student if
supplied.
50 String This field may be left empty as it is
not necessary to have the students
email.
Parent ID Parent ID
(Foreign key)
5 String Can’t have a
length larger than 5 nor have a shorter length
than 5. Must begin with PA. This
cannot be left empty.
Learning Disability
Does the student have a learning
disability?
200 String
Allergies Does the
student have any allergies?
200 String
Health Conditions
Does the student have
any health conditions.
200 String
Current Course
If enrolled in a course, what course/s are
they currently doing. This is
a course ID.
50 String Can’t have a length larger than 5 nor have a
shorter length than 5. Must begin
with CO.
Completed
Courses
Is course
completed ? Yes/No
1 Boolean This can be empty
but if filled but be true or false.
Date joined What day did they first join Logicout?
8 Date This cannot be empty.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
49 | P a g e
Enquiry Table
This table is for enquiries received by LogicOut.
Courses Table
This is for the courses available at LogicOut.
Field Name Description Length Data Type Validation
Course ID A code that is
unique to each course and cannot be
repeated with
5 String Can’t have
a length larger than 5 nor have
a shorter
Field Name Description Length Data Type Validation
Enquiry ID The ID of the enquiry. This
is unique and cannot be
repeated.
5 String Can’t have a length larger
than 5 nor have a shorter
length than 5. Must begin
with EN. This cannot be left empty.
First Name The enquiry first name.
20 String This cannot be left empty.
Last Name The enquiry last name.
20 String This cannot be left empty.
D.O.B The enquiry date of birth,
short date.
8 Date This cannot be left empty.
Parent ID The Parent ID
of the parent of the sibling. (Foreign Key).
5 String Can’t have a
length larger than 5 nor have a shorter
length than 5. Must begin
with PA. This cannot be left empty.
Course Recommended
The course ID for
recommended.
5 String Can’t have a length larger
than 5 nor have a shorter
length than 5. Must begin with CO.
Enquiry Date The date of the enquiry.
8 Date
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
50 | P a g e
the database. length than
5. Must begin with CO. This
cannot be left empty.
Name The name of the course.
20 String This cannot be left
empty.
Started When the
course is planned to start.
8 Date
Description Description of the course.
500 String This cannot be left
empty.
Recommended
For
Who the course
suites. E.g. Touchtyper
course for a person with dyslexia.
200 String
Age recommendation
What age is the course
recommended for.
50 String
Pre-requisites Is there any other courses
required ? This will be the course ID.
50 String This may contain
more than one Course ID’s. All
Course ID’s must start
with CO.
Employee Login Table
This table contains login information for the program of the employees.
Field Name Description Length Data Type Validation
Username Username of
employee. This is a unique key
and cannot be repeated with
the table.
20 String This cannot be
left empty and is a primary key.
Password Password of
employee account. These will
20 String This must have
a length of at least 10 characters and
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
51 | P a g e
need to be
encrypted.
contain at 1
letter, 1 number and one symbol. This cannot be
left empty.
Email Employee
work email.
50 String This cannot be
left empty.
Date Of Account
Creation
The data the
account was created.
8 Date This cannot be
left empty.
RestrictedAccess How much of the database
can they access? All users with
have restriction
apart from admin and manager.
1 Boolean True or false.
Description of Record Structure
Parent Table:
o Parent ID – This is a primary key and should be unique to each
record. The ID will be alphanumeric and cannot be left empty. The
ID must also start with PA. The ID must be 5 characters long.
o Mother’s Title – This will be a drop down box giving the options of
Mrs, Ms, Miss. This is also alphanumeric.
o Mothers Forename – This must be alphanumeric. There is a
character limit of 15.
o Mothers Last Name – This must be alphanumeric. There is a
character limit of 25.
o Father’s Title – This is always Mr.
o Fathers Forename Name - This must be alphanumeric. There is a
character limit of 15.
o Fathers Last Name - This must be alphanumeric. There is a
character limit of 25.
o Contact Email - This must be alphanumeric. There is a character
limit of 50.
o Telephone Number – This must be alphanumeric. There is a
character limit of 13.
o Mother’s Mobile Number - This must be alphanumeric. There is a
character limit of13.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
52 | P a g e
o Father’s Mobile Number - This must be alphanumeric. There is a
character limit of 13.
o Mother’s Work Number - This must be alphanumeric. There is a
character limit of 13.
o Mother’s Work Mobile - This must be alphanumeric. There is a
character limit of 13.
o Father’s Work Number - This must be alphanumeric. There is a
character limit of 13.
o Father’s Work Mobile – This must be alphanumeric. There is a
character limit of 13.
o Address Line 1 - This must be alphanumeric. There is a character
limit of 25.
o Address Line 2 - This must be alphanumeric. There is a character
limit of 25.
o Town/City - This must be alphanumeric. There is a character limit of
25.
o County - This must be alphanumeric. There is a character limit of
25.
o Postcode - This must be alphanumeric. There is a character limit of
7.
Student Table:
o Student ID - This is a primary key and should be unique to each
record. The ID must be alphanumeric and cannot be left empty. The
ID must start with ST. The ID must be 6 characters long.
o Title – This will be a drop down box of options of Mr, Mrs, Ms and
Miss. This will also be alphanumeric.
o Student Forename – This must be alphanumeric. There is a
character limit of 15. This cannot be left empty.
o Student Last Name - This must be alphanumeric. There is a
character limit of 25. This cannot be left empty.
o Student DOB - This must be alphanumeric. This cannot be left
empty.
o Email - This must be alphanumeric. There is a character limit of 50.
o Parent ID – This must be a foreign key and cannot be left empty.
This also must be alphanumeric. The ID must start with PA. The ID
must be 5 characters long.
o Learning Disability - This must be alphanumeric. There is a
character limit of 200.
o Allergies - This must be alphanumeric. There is a character limit of
200.
o Health Conditions - This must be alphanumeric. There is a character
limit of 200.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
53 | P a g e
o Current Course - This must be alphanumeric. This is a foreign key
and each foreign key must begin with CO. There is a character limit
of 50 as a student can be doing more than one course.
o Completed Courses - This must be a foreign key and cannot be left
empty. This also must be alphanumeric. The ID must start with CO.
o Date joined – This must be a date, in short date form, e.g .
09/09/05.
Enquiry Table:
o Enquiry ID - This is a primary key and should be unique to each
record. The ID must be alphanumeric and cannot be left empty. The
ID must start with EN. The ID must be 5 characters long.
o First Name - This must be alphanumeric. There is a character limit
of 20. This cannot be left empty.
o Last Name - This must be alphanumeric. There is a character limit
of 20. This cannot be left empty.
o D.O.B - This must be alphanumeric. This cannot be left empty.
o Parent ID – This is a foreign key and cannot be left empty. The ID
must start with PA.
o Course Recommended – This is a foreign key and cannot be left
empty. This ID must start with CO. The ID must be 5 characters
long.
o Enquiry Date – This must be a date, in short form, e.g. 05/05/14.
Courses Table:
o Course ID - This is a primary key and should be unique to each
record. The ID must be alphanumeric and cannot be left empty. The
ID must start with CO. The ID must be 5 characters long.
o Name - This must be alphanumeric. This must not be left empty.
There is a character limit of 20.
o Started – This must be a date, in short form, e.g. 19/05/14.
o Description - This must be alphanumeric. This must not be left
empty. There is a character limit of 500.
o Recommended For - This must be alphanumeric. This must not be
left empty. There is a character limit of 200.
o Age recommendation - This must be alphanumeric. There is a
character limit of 50.
o Pre-requisites – This must be an existing Course ID and must begin
with CO. The ID must be 5 characters long. There is a character
limit of 50 and there may be more than 1 pre-requisite.
Employee Login Table:
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
54 | P a g e
o Username – This is a primary key and should be unique to each
record. The ID must be alphanumeric and cannot be left empty.
There is a character limit of 20.
o Password - This must have a length of at least 10 characters and
contain at 1 letter, 1 number and one symbol. This cannot be left
empty. There is a character limit of 20.
o Email – This must be alphanumeric and cannot be left empty. There
is a character limit of 50.
o Date Of Account Creation – This is a date in short date form e.g.
19/09/09.
o Restricted Access (Decided by admin/manager) – This must be with
true or false and cannot be left empty.
E-R Diagram
Normalised Database Tables
Un-Normalised Form
ParentID, Mother’sTitle , MothersForename, MothersLastName, Father’ Title,
FathersForenameName, FathersLastName, ContactEmail, TelephoneNumber,
Mother’sMobile Number, Father’sMobileNumber, Mother’sWorkNumber,
Mother’sWorkMobile, Father’sWorkNumber, Father’sWorkMobile, AddressLine1,
AddressLine2, Town/City, County, Postcode.
StudentID, Title, StudentForename, StudentLastName, StudentDOB, Email,
ParentID, LearningDisability, Allergies , HealthConditions , CurrentCourse,
IsCompletedCourses, Datejoined.
Parents Student Enrollment
Non_Enrolled
Course
Enquiries
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
55 | P a g e
Enquires ID, First Name, Last Name, DOB, ParentID, CourseRecommendedID,
EnquiryDate.
CourseID, Name, Started, Description, Recommended For, Age recommendation,
Pre-requisites.
Username, Password, Email, DateOfAccountCreation, Email, Access.
First Normal Form
Parent table
ParentID, Mother’sTitle , MothersForename, MothersLastName, Father’ Title,
FathersForenameName, FathersLastName, ContactEmail, TelephoneNumber,
Mother’sMobile Number, Father’sMobileNumber, Mother’sWorkNumber,
Mother’sWorkMobile, Father’sWorkNumber, Father’sWorkMobile, AddressLine1,
AddressLine2, Town/City, County, Postcode.
Student table
StudentID, Title, StudentForename, StudentLastName, StudentDOB, Email,
ParentID, LearningDisability, Allergies , HealthConditions , CurrentCourse,
IsCompletedCourses, Datejoined., EnquiresID, FirstName, LastName, DOB,
ParentID, CourseRecommendedID, EnquiryDate, CourseID, Name, Started,
Description, RecommendedFor, Agerecommendation, Pre-requisites
User Table
Username, Password, Email, DateOfAccountCreation, Email, Access.
Second Normal Form
Student table
StudentID, Title, StudentForename, StudentLastName, StudentDOB, Email,
ParentID, LearningDisability, Allergies , HealthConditions, Datejoined
Enrolment table
StudentId, CourseId, IsCompletedCourses
Course table
CourseID, Name, Started, Description, RecommendedFor, Agerecommendation,
Pre-requisites,
Enquiry table:
Enquires ID, FirstName, LastName, DOB, ParentID, CourseRecommendedID,
EnquiryDate
Non-Enrolled table
Enquires ID, CourseId
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
56 | P a g e
Third Normal Form
Not required
Tables after normalisation
User table
Username, Password, Email, DateOfAccountCreation, Email, Access.
Parent table
ParentID, Mother’sTitle , MothersForename, MothersLastName, Father’ Title,
FathersForenameName, FathersLastName, ContactEmail, TelephoneNumber,
Mother’sMobile Number, Father’sMobileNumber, Mother’sWorkNumber,
Mother’sWorkMobile, Father’sWorkNumber, Father’sWorkMobile, AddressLine1,
AddressLine2, Town/City, County, Postcode.
Student table
StudentID, Title, StudentForename, StudentLastName, StudentDOB, Email,
ParentID, LearningDisability, Allergies , HealthConditions, Datejoined.
Enrolment table
StudentId, CourseId, IsCompletedCourses
Course table
CourseID, Name, Started, Description, RecommendedFor, Agerecommendation,
Pre-requisites,
Enquiry table:
Enquires ID, FirstName, LastName, DOB, ParentID, CourseRecommendedID,
EnquiryDate
Non-Enrolled table
Enquires ID, CourseId
Sample of planned SQL queries (if appropriate)
Extract enrolled students’ records
READ StudentForename+ ' '+ StudentLastName,MothersFirstName + '
'+MothersLastName, FatherForename + ' ' + FatherLastname,
Courses.Name,TownCity, Postcode From Student,Courses,Parent, Enrolment
WHEN Student.StudentId = Enrolment.StudentId AND Courses.courseId =
Enrolment.CourseId AND Parent.ParentId = Student.ParentId
Extract enquiry details
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
57 | P a g e
READ FirstName+' ' + LastName , MothersFirstName + ' '+MothersLastName,
FatherForename + ' ' + FatherLastname, Courses.Name,TownCity,Postcode From
Enquiry,Courses,Parent, Non_Enrolled WHEN Enquiry.EnquiryId =
Non_Enrolled.EnquiryId AND Courses.courseId = Non_Enrolled.CourseId AND
Parent.ParentId = Enquiry.ParentId
Identification of Storage Media
The main database (which will be a SQL server), will be stored in a remote
server storage. This will allow the users to access the database from wherever
they have the login software and allow more than one person to access the
database at the same time.
The user interface with be a software stored on the end user’s computers which
may include employees, manager, teachers etc. It is important that LogicOut
only give the software people they want to use the software.
A copy of the software should also be stored on an external hard drive and there
should be a minimum of two copies stored securely in different locations. The
database should be regularly backed up and stored on an external hard drive.
There should be at least two copies stored securely in two different locations.
Identification of suitable algorithms for data transformation,
pseudocode of these algorithms
START
Declare arrCriteriaNameValue(,)
Index 1
IsEnrolled false
isSibling false
Choice”y”
Display “Do you want to search from enrolled records(Y/N): ”
Input Choice
IF Choice=”y” THEN
IsEnrolled true
ENDIF
Display “Do you want to search from siblings records(Y/N): ”
Input Choice
IF Choice=”y” THEN
IsSibling true
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
58 | P a g e
ENDIF
Do
Display “Enter criteria name”
Input arrCriteriaName(Index)
Index index+1
Display “Do you want to continue”
Input Choice
Until choice <> ‘N’ OR Choice<>’n’
Call ShowRecords (arrCriteriaName, 1, isEnrolled, isSibling)
END
Function ShowRecords (arrCriteriaName, Index, isEnrolled, isSibling)
START
IF IsEnrolled=true
sqlString READ StudentForename+ ' '+ StudentLastName,MothersFirstName + ' '+MothersLastName,
FatherForename + ' ' + FatherLastname, Courses.Name,TownCity, Postcode From Student,Courses,Parent, Enrolment WHEN Student.StudentId = Enrolment.StudentId AND Courses.courseId =
Enrolment.CourseId AND Parent.ParentId = Student.ParentId
ELSE
sqlString READ FirstName+' ' + LastName , MothersFirstName + '
'+MothersLastName, FatherForename + ' ' + FatherLastname, Courses.Name,TownCity,Postcode From Enquiry,Courses,Parent,
Non_Enrolled WHEN Enquiry.EnquiryId = Non_Enrolled.EnquiryId AND Courses.courseId = Non_Enrolled.CourseId AND Parent.ParentId = Enquiry.ParentId
ENDIF
For Count1 to Length(arrCriteriaName)
IF arrCriteriaName(Count)=”Age” THEN
Display “Enter (L) to look for less than given age”
Display “Enter (G) to look for greater than given age”
Display “Enter (R) to look for records between given age”
Input ageChoice
Display “Enter age:”
Input minAge
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
59 | P a g e
IF ageChoice=”L”
sqlString sqlString + “AND
DateDiff(yy,StudentDOB,Getdate()) <=” + minAge
ELSEIF ageChoice=”G”
sqlString sqlString + “AND
DateDiff(yy,StudentDOB,Getdate()) >=” + minAge
ENDIF
IF ageChoice=”R” THEN
Display “Enter max age:”
Input maxAge
sqlString sqlString + “AND
DateDiff(yy,StudentDOB,Getdate()) >= minAge AND
DateDiff(yy,StudentDOB,Getdate()) <=” + MaxAge
ENDIF
ENDIF
IF arrCriteriaName(Count)=”City” THEN
Display “Enter city name:”
Input City
sqlString sqlString + “AND County=City”
ENDIF
IF arrCriteriaName(Count)=”County” THEN
Display “Enter county name:”
Input county
sqlString sqlString + “AND County=County”
ENDIF
IF arrCriteriaName(Count)=”Postcode” THEN
Display “Enter postcode name:”
Input postcode
sqlString sqlString + “AND County=Postcode”
ENDIF
END FOR
IF isSibling=true THEN
IF isEnrolled=true THEN
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
60 | P a g e
sqlString sqlString + “AND Parent.ParentID IN(SELECT DISTINCT
S1.ParentId FROM Student S1 INNER JOIN Student S2 ON S1.ParentId =
S2.ParentId AND S1.StudentId <> S2.StudentId)”
ELSE
sqlString sqlString + “AND Parent.ParentID IN(SELECT DISTINCT
E1.ParentId FROM Enquiry E1 INNER JOIN Enquiry E2 ON E1.ParentId =
E2.ParentId AND E1.EnquiryId <> E2.EnquiryId)”
ENDIF
ENDIF
arrSearchResults RUN SQL query using sqlString
FOR count 1 to Length(arrSearchResults)
DISPLAY arrSearchResults(count)
PRINT arrSearchResults(count)
END
Class definitions (diagrams) and details of object behaviours
and methods (if appropriate)
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
61 | P a g e
User interface design (HCI) rationale
Headings: Arial Black, Font Size 18, Black.
Subheadings: Arial, Font Size 12, Black.
Labels: Arial, Font Size 11, Black.
Button background Colour: Orange
Button Boarder: Black, Width 2 ¼ pt.
Button Font: Arial, Font Size 11, Bold, White.
∞ 1 ∞
∞
Parents
Fields Methods Mother’sTitle ,
MothersForename,
MothersLastName,
Father’ Title,
FathersForenameName, FathersLastName,
ContactEmail,
TelephoneNumber,
Mother’sMobile Number,
Father’sMobileNumber,
Mother’sWorkNumber,
Mother’sWorkMobile,
Father’sWorkNumber,
Father’sWorkMobile,
AddressLine1, AddressLine2,
Town/City, County,
Postcode.
AddParent
DeleteParent
Generate
PrimaryKey
Students
Fields Methods Title,
StudentForename,
StudentLastName,
StudentDOB, Email,
ParentID,
LearningDisability, Allergies ,
HealthConditions ,
CurrentCourse,
IsCompletedCourses,
Datejoined
AddStudent
DeleteStudent
Generate
PrimaryKey
∞
Enquiries
Fields Methods First Name,
Last Name,
DOB,
ParentID,
Recommendati
on EnquiryDate
AddEnquiry
DeleteEnquiry
Generate
PrimaryKey
∞
Courses
Fields Methods Name, Started,
Description,
Recommended
For, Age recommendation,
Pre-requisites
AddCourse
DeleteCourse
Generate
PrimaryKey
1 ∞
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
62 | P a g e
Background Colour: White
General Text: Arial, Font Size 11, Black.
I have decided to use a form of Arial throughout the project I think it is easy and
simple to read and using the same font helps to keep a neat and clear appearance of the programme. Using the same font throughout the programme
also shows continuity throughout the project. The font being clear and easy to read can also help for any users of the system who are dyslexic. Have these
simple and easy to read font also help to reduce strain on the eyes as this system could be used for long periods of time and often. The size is also a good size to read and helps with all of the above as well. There are varying font sizes
to allow easy distinction between headings, sub-headings, text, etc. The background is white so that is contrasts well with the text and logo. The button
background is orange with white text which links in with the logo to bring in an element of design and to link the look of the program up to give a better overall
appearance.
UI sample of planned data capture and entry designs
Login Form
Welcome! Please login
Username:
Password:
Clear Login
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
63 | P a g e
Opening Page
Table View
This table view page will be the same for the other tables but where it says
Parent as the title, there will be a title relevant to the table being showed.
LogicOut Customer
Database
Parents
Students
Enquiry
Users
Logout
Search
Parent
Add
Delete
< Back
Mother’s Name
Father’s Name
Contact Email
Telephone Numbe
r
Mother’s Mobile
Father’s Mobile
Mother’s Work
Number
Mother’s Work
Mobile
Mother’s Work
Mobile
Address
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
64 | P a g e
To delete a record, the record needs to be selected and then press delete. I box
will come up asking if you are sure and then you press yes or no. Notification will
come up if record has been deleted.
To add a new record, when add is press a form will come up.
Add New Record Form
The other tables of the database will follow the same format as the one above to
add new records.
Add New Parent
Mothers Name
Mothers Surname Fathers Name
Fathers Surname
Contact Email
Telephone Number
Mother’s Mobile
Father’s Work Mobile
Fathers Mobile
Mother’s Work Number
Father’s Work Number
Mother’s Work Mobile
Address Line 1
Address Line 2
Town/City
County
Postcode
Save Cancel
Mother’s Title
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
65 | P a g e
UI sample of planned valid output designs
Search Form
Object from selecting the search criteria will be created on run time.
Clear
Search
< Back
Search
Town/City Count
y
Postcode Age
Clear
< Back
A table satisfying given criteria will be created on run time.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
66 | P a g e
Description of measures planned for security and integrity of
data
Security
As my database is dealing with personal data it is very important that my
database is secure. There are a variety of measures that need to put in place to
try and keep the data secure.
First of all, the database can only be accessed through the software and to use
the software the user must have login in details. Only admin can create user
accounts and so this helps to make sure that the software can only be accessed
by the correct people. When creating the login, the new login cannot be created
without all the fields in the input being filled in. The database is not stored on
each user’s computer but on a remote server which is accessed through the
software. The software is also only to be given to the people who are allowed
and approved to access the database. As well as this the database itself is
password protected.
Users also have different levels of access. Admin and Manager have access to
the entire database whereas the teachers only have access to certain
information.
Integrity
All the validations mentioned in the Definition of Data Requirements must be
implemented before the data is sent to the database.
Description of measures planned for system security
The computers that the software is installed on are password protected and only
the user of the computer/admin/manager knows the password. The computer
has anti-virus and firewall and other relevant security features installed on all of
the computers that the software is on. The computers are in rooms and buildings
with locked and/or coded doors. The buildings that has the computers in has a
burglar alarms.
Overall test strategy
I have used the following test strategies to test my program:
Test Type Purpose
Top-Down Testing To check the flow of the program.
Bottom-Up Testing To check the validation of the program.
System Testing To check saving, viewing and deleting
of data to the database through the program.
Black Box Testing To check the searching of the data in the database through the program.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
67 | P a g e
Implementation
Classes
Courses using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Windows.Forms; using System.Data; namespace AylaCOMP4ProjectDatabase { class Courses { SqlConnection connection = new SqlConnection("Data source=213.175.208.7;UID=aylabrooks;PWD=aylabrooks007*;initial catalog = progrmmiAylaBrooks"); public bool AddCourse(string CourseName, string Started, string Description, string RecommendedFor, string Prerequisites) { bool sucess = true; string SQLstring = "Insert Into Courses Values (@CourseID, @Name, @Started, @Description, @RecommendedFor, @Prerequisites)"; SqlCommand command = new SqlCommand(SQLstring, connection); // Setting values for the parameters of Command object command.Parameters.AddWithValue("@CourseID", PrimaryKey()); command.Parameters.AddWithValue("@Name", CourseName); command.Parameters.AddWithValue("@Started", Convert.ToDateTime(Started)); command.Parameters.AddWithValue("@Description", Description); command.Parameters.AddWithValue("@RecommendedFor", RecommendedFor); command.Parameters.AddWithValue("@Prerequisites", Prerequisites); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); sucess = false; } connection.Close(); return sucess; } private string PrimaryKey() { string SQLstring = "Select Top 1 (CourseID) From Courses Order by CourseID Desc"; SqlCommand command = new SqlCommand(SQLstring, connection); object CourseID; string strCourseID = "CO001"; int intCourseID = 1;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
68 | P a g e
connection.Open(); CourseID = command.ExecuteScalar(); connection.Close(); if(CourseID != null) { strCourseID = (string)CourseID; strCourseID = strCourseID.Substring(2); intCourseID = Convert.ToInt32(strCourseID); intCourseID++; } if (intCourseID < 10) { strCourseID = "CO00" + Convert.ToString(intCourseID); } else if(intCourseID<100) { strCourseID = "CO0" + Convert.ToString(intCourseID); } else if(intCourseID<1000) { strCourseID = "CO" + Convert.ToString(intCourseID); } return strCourseID; } public void deleteCourse(string CourseID) { string SQLstring = "Delete From Courses Where CourseID = @CourseID"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@CourseID", CourseID); try { connection.Open(); command.ExecuteNonQuery(); } catch(System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); } public DataTable ViewCourseInEnrollment() { DataTable dtCourses = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select CourseID, Name From Courses", connection); adapter.Fill(dtCourses); return dtCourses; } public DataTable ViewCourses() { DataTable dtCourses = new DataTable(); SqlDataAdapter adpater = new SqlDataAdapter("Select CourseID, Name, Started, Description, RecommendedFor, Prerequisites From Courses", connection);
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
69 | P a g e
adpater.Fill(dtCourses); return dtCourses; } public DataTable ViewCoursesForNonEnrolled() { DataTable dtAddNewEnquiryEnquiredCourse = new DataTable(); SqlDataAdapter adpater = new SqlDataAdapter("Select CourseID, Name, Started, Description, RecommendedFor, Prerequisites From Courses", connection); adpater.Fill(dtAddNewEnquiryEnquiredCourse); return dtAddNewEnquiryEnquiredCourse; } } }
Enquiry using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Data; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { class Enquiry { SqlConnection connection = new SqlConnection("Data source=213.175.208.7;UID=aylabrooks;PWD=aylabrooks007*;initial catalog = progrmmiAylaBrooks"); public string AddEnquiry(string FirstName, string LastName, string DOB, string ParentID, string CourseRecommended, string EnquiryDate) { string SQLstring = "Insert Into Enquiry Values (@EnquiryID, @FirstName, @LastName, @DOB, @ParentID, @CourseRecommended, @EnquiryDate)"; SqlCommand command = new SqlCommand(SQLstring, connection); string enquiryID = PrimaryKey(); command.Parameters.AddWithValue("@EnquiryID", enquiryID); command.Parameters.AddWithValue("@FirstName", FirstName); command.Parameters.AddWithValue("@LastName", LastName); command.Parameters.AddWithValue("@DOB", Convert.ToDateTime(DOB)); command.Parameters.AddWithValue("@ParentID", ParentID); command.Parameters.AddWithValue("@CourseRecommended", CourseRecommended); command.Parameters.AddWithValue("@EnquiryDate", Convert.ToDateTime(EnquiryDate)); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message);
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
70 | P a g e
} connection.Close(); return enquiryID; } private string PrimaryKey() { string SQLstring = "Select Top 1 (EnquiryID) From Enquiry Order by EnquiryID Desc"; SqlCommand command = new SqlCommand(SQLstring, connection); object EnquiryID; string strEnquiryID = "ST001"; int intEnquiryID = 1; connection.Open(); EnquiryID = command.ExecuteScalar(); connection.Close(); if (EnquiryID != null) { strEnquiryID = (string)EnquiryID; strEnquiryID = strEnquiryID.Substring(2); intEnquiryID = Convert.ToInt32(strEnquiryID); intEnquiryID++; } if (intEnquiryID < 10) { strEnquiryID = "ST00" + Convert.ToString(intEnquiryID); } else if (intEnquiryID < 100) { strEnquiryID = "ST0" + Convert.ToString(intEnquiryID); } else if (intEnquiryID < 1000) { strEnquiryID = "ST" + Convert.ToString(intEnquiryID); } return strEnquiryID; } public void deleteEnquiry(string EnquiryID) { //delete dependencies Student nonEnrolled = new Student(); nonEnrolled.deteteNonEnrollment(EnquiryID); string SQLstring = "Delete From Enquiry Where EnquiryID = @EnquiryID"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@EnquiryID", EnquiryID); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); }
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
71 | P a g e
connection.Close(); } public DataTable ViewEnquires() { DataTable dtEnquiries = new DataTable(); SqlDataAdapter adpater = new SqlDataAdapter("Select EnquiryID, FirstName, LastName, DOB, ParentID, CourseRecommended, EnquiryDate From Enquiry", connection); adpater.Fill(dtEnquiries); return dtEnquiries; } public void addCourseEnquired(string enquiryId,string courseID) { string SQLstring = "Insert Into Non_Enrolled Values (@EnquiryID, @CourseID)"; SqlCommand command = new SqlCommand(SQLstring, connection); string enquiryID = PrimaryKey(); command.Parameters.AddWithValue("@EnquiryID", enquiryId); command.Parameters.AddWithValue("@CourseID", courseID); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); } } }
Parent using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Windows.Forms; using System.Data; namespace AylaCOMP4ProjectDatabase { class Parent { SqlConnection connection = new SqlConnection("Data source=213.175.208.7;UID=aylabrooks;PWD=aylabrooks007*;initial catalog = progrmmiAylaBrooks");
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
72 | P a g e
public bool AddParent(string MothersTitle, string MothersForename, string MothersLastName, string FathersTitle, string ContactEmail, string TelephoneNumber, string MothersMobileNumber, string FathersMobileNumber, string MothersWorkNumber, string FathersWorkNumber, string MothersWorkMobile, string FathersWorkMobile, string AddressLine1, string AddressLine2, string TownCity, string County, string Postcode, string FathersForename, string FathersLastName) { bool sucess = true; string SQLstring = "Insert Into Parent Values(@ParentID, @MothersTitle, @MothersForename, @MothersLastName, @FathersTitle, @ContactEmail, @TelephoneNumber, @MothersMobileNumber, @FathersMobileNumber, @MothersWorkNumber, @FathersWorkNumber, @MothersWorkMobile, @FathersWorkMobile, @AddressLine1, @AddressLine2, @CityTown, @County, @Postcode, @FathersForename, @FathersLastName)"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@ParentID", PrimaryKey()); command.Parameters.AddWithValue("@MothersTitle", MothersTitle); command.Parameters.AddWithValue("@MothersForename", MothersForename); command.Parameters.AddWithValue("@MothersLastName", MothersLastName); command.Parameters.AddWithValue("@FathersTitle", FathersTitle); command.Parameters.AddWithValue("@ContactEmail", ContactEmail); command.Parameters.AddWithValue("@TelephoneNumber", TelephoneNumber); command.Parameters.AddWithValue("@MothersMobileNumber", MothersMobileNumber); command.Parameters.AddWithValue("@FathersMobileNumber", MothersMobileNumber); command.Parameters.AddWithValue("@MothersWorkNumber", MothersWorkNumber); command.Parameters.AddWithValue("@FathersWorkNumber", FathersWorkNumber); command.Parameters.AddWithValue("@MothersWorkMobile", MothersWorkMobile); command.Parameters.AddWithValue("@FathersWorkMobile", FathersWorkMobile); command.Parameters.AddWithValue("@AddressLine1", AddressLine1); command.Parameters.AddWithValue("@AddressLine2", AddressLine2); command.Parameters.AddWithValue("@CityTown", TownCity); command.Parameters.AddWithValue("@County", County); command.Parameters.AddWithValue("@Postcode", Postcode); command.Parameters.AddWithValue("@FathersForename", FathersForename); command.Parameters.AddWithValue("@FathersLastName", FathersLastName); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); sucess = false; } connection.Close(); return sucess; } private string PrimaryKey() { string SQLstring = "Select Top 1 (ParentId) From Parent Order by ParentId Desc"; SqlCommand command = new SqlCommand(SQLstring, connection); object ParentId; string strParentId="PR001"; int intParentId = 1; connection.Open();
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
73 | P a g e
ParentId=command.ExecuteScalar(); connection.Close(); if (ParentId!=null) { strParentId = (string)ParentId; strParentId = strParentId.Substring(2); intParentId = Convert.ToInt32(strParentId); intParentId++; } if (intParentId<10) { strParentId = "PR00" + Convert.ToString(intParentId); } else if(intParentId<100) { strParentId = "PR0" + Convert.ToString(intParentId); } else if(intParentId<1000) { strParentId = "PR" + Convert.ToString(intParentId); } return strParentId; } public DataTable ViewParents() { DataTable dtParents = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select ParentID, MothersTitle, MothersFirstName, MothersLastName, FathersTitle, ContactEmail, TelephoneNumber, MothersMobileNumber, FathersMobileNumber, MothersWorkNumber, FathersWorkNumber, MothersWorkMobile, FathersWorkMobile, AdressLine1, AddressLine2, TownCity, County, Postcode, FatherForename, FatherLastName From Parent", connection); adapter.Fill(dtParents); return dtParents; } public DataTable ViewParentsInAddNewStudent() { DataTable dtParents = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select ParentID, MothersTitle, MothersFirstName, MothersLastName, FathersTitle, FatherForename, FatherLastName From Parent", connection); adapter.Fill(dtParents); return dtParents; } public DataTable ViewParentsInAddNewEnquiry() { DataTable dtParents = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select ParentID, MothersTitle, MothersFirstName, MothersLastName, FathersTitle, FatherForename, FatherLastName From Parent", connection); adapter.Fill(dtParents);
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
74 | P a g e
return dtParents; } public void deleteParent(string ParentID) { DeleteDependencies(ParentID); string SQLstring = "Delete From Parent Where ParentID = @ParentID"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@ParentID", ParentID); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); } private void DeleteDependencies(string parentID) { //fetch studentID from student table; DataTable dtStudent = new DataTable(); string SQLstring = "Select StudentId From Student Where ParentId=@parentId"; SqlDataAdapter adapter= new SqlDataAdapter(SQLstring, connection); adapter.SelectCommand.Parameters.AddWithValue("@parentId", parentID); Student delStudent = new Student(); adapter.Fill(dtStudent); foreach (DataRow dr in dtStudent.Rows) { delStudent.deteteStudent(dr["StudentId"].ToString()); } //fetch studentID from student table; SQLstring = "Select EnquiryId From Enquiry Where ParentId=@parentId"; adapter = new SqlDataAdapter(SQLstring, connection); adapter.SelectCommand.Parameters.AddWithValue("@parentId", parentID); dtStudent = new DataTable(); Enquiry delEnquiry = new Enquiry(); adapter.Fill(dtStudent); foreach (DataRow dr in dtStudent.Rows) { delEnquiry.deleteEnquiry(dr["EnquiryId"].ToString()); } } } }
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
75 | P a g e
Program
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Login()); } } }
Student
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Windows.Forms; using System.Data; namespace AylaCOMP4ProjectDatabase { class Student { SqlConnection connection = new SqlConnection("Data source=213.175.208.7;UID=aylabrooks;PWD=aylabrooks007*;initial catalog = progrmmiAylaBrooks"); public bool AddStudent(string studentsTitle, string studentsForename, string studentsLastName, string studentDOB,string parentID, string studentEmail, string learningDisabilities, string allergies, string healthConditions, string dateJoined) { bool sucess = true;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
76 | P a g e
string SQLstring = "Insert Into Student Values(@StudentID,@Title, @StudentForename, @StudentLastName, @StudentDOB, @Email,@ParentID, @LearningDisabilities, @Allergies, @HealthConditions, @DateJoined)"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@StudentID", PrimaryKey()); command.Parameters.AddWithValue("@Title", studentsTitle); command.Parameters.AddWithValue("@StudentForename", studentsForename); command.Parameters.AddWithValue("@StudentLastName", studentsLastName); command.Parameters.AddWithValue("@StudentDOB", Convert.ToDateTime(studentDOB)); command.Parameters.AddWithValue("@ParentId", parentID); command.Parameters.AddWithValue("@Email", studentEmail); command.Parameters.AddWithValue("@LearningDisabilities", learningDisabilities); command.Parameters.AddWithValue("@Allergies", allergies); command.Parameters.AddWithValue("@HealthConditions", healthConditions); command.Parameters.AddWithValue("@DateJoined", Convert.ToDateTime(dateJoined)); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); sucess = false; } connection.Close(); return sucess; } public void deteteStudent(string StudentID) { //delete dependencies deteteEnrollment(StudentID); string SQLstring = "Delete From Student Where StudentID = @StudentID"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@StudentID", StudentID); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); } private string PrimaryKey() { string SQLstring = "Select Top 1 (StudentId) From Student Order by StudentId Desc"; SqlCommand command = new SqlCommand(SQLstring, connection);
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
77 | P a g e
object StudentId; string strStudentId = "ST0001"; int intStudentId = 1; connection.Open(); StudentId = command.ExecuteScalar(); connection.Close(); if (StudentId != null) { strStudentId = (string)StudentId; strStudentId = strStudentId.Substring(2); intStudentId = Convert.ToInt32(strStudentId); intStudentId++; } // Student ID can go up to 1999. if (intStudentId < 10) { strStudentId = "ST000" + Convert.ToString(intStudentId); } else if (intStudentId < 100) { strStudentId = "ST00" + Convert.ToString(intStudentId); } else if (intStudentId < 1000) { strStudentId = "ST0" + Convert.ToString(intStudentId); } else if (intStudentId <1000) { strStudentId = "ST" + Convert.ToString(intStudentId); } return strStudentId; } public DataTable ViewStudents() { DataTable dtStudents = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select StudentID, Title, StudentForename, StudentLastName, StudentDOB, ParentID, Email, LearningDisabilities, Allergies, HealthConditions, DateJoined From Student", connection); adapter.Fill(dtStudents); return dtStudents; } public DataTable ViewStudentsInEnrollment() { DataTable dtStudents = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select StudentID, StudentForename + ' ' + StudentLastName as StudentName From Student", connection); adapter.Fill(dtStudents); return dtStudents; } public bool SaveEnrolment(string studentId, string CourseId,string comments) { bool success = true;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
78 | P a g e
string SQLstring = "Insert Into Enrolment (StudentId,CourseId,Comments) Values(@StudentID,@CourseId,@Comments) "; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@StudentID", studentId); command.Parameters.AddWithValue("@CourseId", CourseId); command.Parameters.AddWithValue("@Comments", comments); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); success = false; } connection.Close(); return success; } public DataTable ViewEnrolled() { DataTable dtEnrolled = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select StudentID, CourseID, Comments From Enrolment", connection); adapter.Fill(dtEnrolled); return dtEnrolled; } public DataTable ViewNonEnrolled() { DataTable dtNonEnrolled = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select EnquiryID, CourseID From Non_Enrolled", connection); adapter.Fill(dtNonEnrolled); return dtNonEnrolled; } public void deteteEnrollment(string StudentID) { string SQLstring = "Delete From Enrolment Where StudentID = @StudentID"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@StudentID", StudentID); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); } public void deteteNonEnrollment(string EnquiryID) {
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
79 | P a g e
string SQLstring = "Delete From Non_Enrolled Where EnquiryID = @EnquiryID"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@EnquiryID", EnquiryID); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); } } }
Users
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Windows.Forms; using System.Data; namespace AylaCOMP4ProjectDatabase { class Users { SqlConnection connection = new SqlConnection("Data source=213.175.208.7;UID=aylabrooks;PWD=aylabrooks007*;initial catalog = progrmmiAylaBrooks"); public int Login(string Username, string Password) { string SQLstring = "Select count(*) From Users Where username=@username and password=@password"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@username", Username); command.Parameters.AddWithValue("@password", Password); int counter=0; try { connection.Open(); counter = Convert.ToInt32(command.ExecuteScalar()); } catch (System.Exception ex)
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
80 | P a g e
{ MessageBox.Show(ex.Message); } connection.Close(); return counter; } public bool AdminOrNot(string Username) { string SQLstring = "Select RestrictedAccess From Users Where username=@username"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@username", Username); bool Admin = false; try { connection.Open(); Admin = Convert.ToBoolean(command.ExecuteScalar()); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); return Admin; } public void AddUser(string username, string password, string email,DateTime accountCreationDate,bool access) { string SQLstring = "Insert Into Users Values(@Username,@password,@email,@creationDate,@access)"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@username", username); command.Parameters.AddWithValue("@password", password); command.Parameters.AddWithValue("@email", email); command.Parameters.AddWithValue("@creationDate", accountCreationDate); command.Parameters.AddWithValue("@access", access); try { connection.Open(); command.ExecuteNonQuery(); } catch(System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); } public void deleteUser(string username) {
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
81 | P a g e
string SQLstring = "Delete From Users Where Username=@username"; SqlCommand command = new SqlCommand(SQLstring, connection); command.Parameters.AddWithValue("@username", username); try { connection.Open(); command.ExecuteNonQuery(); } catch (System.Exception ex) { MessageBox.Show(ex.Message); } connection.Close(); } public DataTable ViewUsers() { DataTable dtUsers = new DataTable(); SqlDataAdapter adapter = new SqlDataAdapter("Select Username, Email, AccountCreationDate, RestrictedAccess From Users", connection); adapter.Fill(dtUsers); return dtUsers; } } }
Forms
AddEnrollment using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class Enrollment : Form { public Enrollment() { InitializeComponent(); }
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
82 | P a g e
private void btnCancelNewEnrollment_Click(object sender, EventArgs e) { Close(); } private void btnCancelNewEnrollment_Click_1(object sender, EventArgs e) { Close(); } private void Enrollment_Load(object sender, EventArgs e) { DataTable dtStudent = new DataTable(); Student student = new Student(); dtStudent = student.ViewStudentsInEnrollment(); lstStudentName.DataSource = dtStudent; lstStudentName.ValueMember= "StudentId"; //setting primary key lstStudentName.DisplayMember = "StudentName"; DataTable dtCourses = new DataTable(); Courses course = new Courses(); dtCourses = course.ViewCourseInEnrollment(); lstCourseToBeEnrolledTo.DataSource = dtCourses; lstCourseToBeEnrolledTo.ValueMember = "CourseID"; lstCourseToBeEnrolledTo.DisplayMember = "CourseName"; } private void btnAddNewEnrollment_Click(object sender, EventArgs e) { Student enrolment = new Student(); if (lstStudentName.Text != "" && lstCourseToBeEnrolledTo.Text != "") { DialogResult result; result = MessageBox.Show("Are you sure you want to save this enrollment?","", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes) { if (enrolment.SaveEnrolment(Convert.ToString(lstStudentName.SelectedValue), Convert.ToString(lstCourseToBeEnrolledTo.SelectedValue), txtComments.Text)== true) { MessageBox.Show("New Enrollment Saved."); Close(); } } else if (result == DialogResult.No) { Close(); } } else if (lstStudentName.Text == "" && lstCourseToBeEnrolledTo.Text != "" )
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
83 | P a g e
{ MessageBox.Show("Please choose the Student to be enrolled to continue"); } else if (lstCourseToBeEnrolledTo.Text == "" && lstStudentName.Text != "") { MessageBox.Show("Please choose a course that the student is to be enrolled on to continue."); } else if (lstStudentName.Text == "" && lstCourseToBeEnrolledTo.Text == "") { MessageBox.Show("You must choose a Student and a Course to continue."); } } } }
AddNewCourse
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class AddNewCourse : Form { public AddNewCourse() { InitializeComponent(); } private void btnAddNewCourse_Click(object sender, EventArgs e) { if (txtCourseName.Text != "" && mskCourseDateStarted.MaskFull != false && txtDescription.Text != "" && txtRecommendedFor.Text != "" && txtCoursePrerequisites.Text != "" ) { if (txtCourseName.Text.Length <= 20) { DialogResult result; result = MessageBox.Show("Are you sure you want to add this new Course?", "", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes) { Courses courses = new Courses(); if (courses.AddCourse(txtCourseName.Text, mskCourseDateStarted.Text, txtDescription.Text, txtRecommendedFor.Text, txtCoursePrerequisites.Text) == true) { MessageBox.Show("New Course Saved");
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
84 | P a g e
Close(); } } else if (result == DialogResult.Cancel) { Close(); } } else { MessageBox.Show("The course name you have entered to too long. Please enter a course name that is 20 charcters long or less."); } } else if (txtCourseName.Text == "" && mskCourseDateStarted.MaskFull == true && txtDescription.Text != "" && txtRecommendedFor.Text != "" && txtCoursePrerequisites.Text != "") { MessageBox.Show("Course name must not be empty to continue."); } else if (mskCourseDateStarted.MaskFull == false && txtCourseName.Text != "" && txtDescription.Text != "" && txtRecommendedFor.Text != "" && txtCoursePrerequisites.Text != "") { MessageBox.Show("The date that the course started but be entered to continue."); } else if (txtDescription.Text == "" && txtCourseName.Text != "" && mskCourseDateStarted.MaskFull == true && txtRecommendedFor.Text != "" && txtCoursePrerequisites.Text != "") { MessageBox.Show("A description of the course must be entered to continue."); } else if (txtRecommendedFor.Text == "" && txtCourseName.Text != "" && mskCourseDateStarted.MaskFull == true && txtDescription.Text != "" && txtCoursePrerequisites.Text != "") { MessageBox.Show("Who the course is recommended for must be entered to continue. If the course is recommended for all, then you should fill in the box with all."); } else if (txtCoursePrerequisites.Text == "" && txtCourseName.Text != "" && mskCourseDateStarted.MaskFull == true && txtDescription.Text != "" && txtRecommendedFor.Text != "") { MessageBox.Show("Prerequisites for this course must be entered to continue. If there are no prerequisites then you should fill in the box with none."); } else { MessageBox.Show("Two or more of the fields in the form have not been filled in. This form requires all the fields to be filled in to continue."); } } private void btnNewCourseCancel_Click(object sender, EventArgs e) { Close(); }
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
85 | P a g e
} }
AddNewEnquiry
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class AddNewEnquiry : Form { DataTable dtCourses = new DataTable(); DataTable dtParents = new DataTable(); DataTable dtEnquiredCourse = new DataTable(); Parent parents = new Parent(); Courses courses = new Courses(); Enquiry enquires = new Enquiry(); string enquiryID = ""; public AddNewEnquiry() { InitializeComponent(); } private void btnCancelNewParentForm_Click(object sender, EventArgs e) { this.Close(); } private void AddNewEnquiry_Load(object sender, EventArgs e) { dtParents = parents.ViewParentsInAddNewEnquiry(); AddNewEnquiryParentID .DataSource = dtParents; dtCourses = courses.ViewCourses(); AddNewEnquiryCourses.DataSource = dtCourses; grpCourseEnquired.Enabled = false; } private void btnAddNewEnquiry_Click(object sender, EventArgs e) { int selectedrowindex = AddNewEnquiryCourses.SelectedCells[0].RowIndex;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
86 | P a g e
string CourseID = ((string)AddNewEnquiryCourses.Rows[selectedrowindex].Cells[0].Value); int selectedrowindex2 = AddNewEnquiryParentID.SelectedCells[0].RowIndex; string ParentID = ((string)AddNewEnquiryParentID.Rows[selectedrowindex2].Cells[0].Value); if (txtFirstName.Text != "" && txtLastName.Text != "" && mskNewEnquiryDate.MaskFull == true && mskNewEnquiryDOB.MaskFull == true) { if (txtFirstName.Text.Length <= 20) { if (txtLastName.Text.Length <= 20) { DialogResult result; result = MessageBox.Show("Are you sure you want to add this new Enquiry?", "", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes) { Enquiry enquiries = new Enquiry(); enquiryID = enquiries.AddEnquiry(txtFirstName.Text, txtLastName.Text, mskNewEnquiryDOB.Text, ParentID, CourseID, mskNewEnquiryDate.Text); MessageBox.Show("New Enquiry Saved"); grpCourseEnquired.Enabled = true; if (grpCourseEnquired.Enabled == true) { //dtEnquiredCourse = courses.ViewCoursesForNonEnrolled(); EnquiredCoursesDataGrid.DataSource = dtCourses; } } else if (result == DialogResult.No) { Close(); } } else { MessageBox.Show("The enquiry last name must be no longer 20 character."); } } else { MessageBox.Show("The enquiry First Name must be no longer than 20 characters."); } } else if (txtFirstName.Text == "" && txtLastName.Text != "" && mskNewEnquiryDate.MaskFull == true && mskNewEnquiryDOB.MaskFull == true) { MessageBox.Show("You must enter the First Name to continue."); } else if (txtLastName.Text == "" && txtFirstName.Text != "" && mskNewEnquiryDate.MaskFull == true && mskNewEnquiryDOB.MaskFull == true) { MessageBox.Show("You must enter the Last Name to continue."); } else if (mskNewEnquiryDOB.MaskFull == false && txtFirstName.Text != "" && txtLastName.Text != "" && mskNewEnquiryDate.MaskFull == true) { MessageBox.Show("You must enter the date of birth to continue.");
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
87 | P a g e
} else if (mskNewEnquiryDate.MaskFull == false && txtFirstName.Text != "" && txtLastName.Text != "" && mskNewEnquiryDOB.MaskFull == true) { MessageBox.Show("You must enter the date of the enquiry to continue."); } else { MessageBox.Show("Two or more of First Name, Last Name, Date of Birth or Date of Enquiry are empty. These fields must be filled in before you can continue."); } } private void btnDone_Click(object sender, EventArgs e) { Close(); } private void btnAddEnquiredCourse_Click(object sender, EventArgs e) { int selectedrowindex = EnquiredCoursesDataGrid.SelectedCells[0].RowIndex; string CourseID = ((string) EnquiredCoursesDataGrid.Rows[selectedrowindex].Cells[0].Value); enquires.addCourseEnquired(enquiryID, CourseID); MessageBox.Show("Course enquired saved for this enquiry"); } } }
AddNewParent using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class AddNewParent : Form { public AddNewParent() { InitializeComponent(); } private void btnCancelNewParentForm_Click(object sender, EventArgs e) { this.Close(); } private void btnAddNewParent_Click(object sender, EventArgs e) {
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
88 | P a g e
if (cobMothersTitle.Text == "Miss" || cobMothersTitle.Text == "Ms" || cobMothersTitle.Text == "Mrs") { if (txtContactEmail.Text != "" || txtTelephoneNumber.Text != "" || txtMothersMobileNumber.Text != "" || txtMothersWorkNumber.Text != "" || txtMothersWorkMobile.Text != "" || txtFathersMobileNumber.Text != "" || txtFathersWorkNumber.Text != "" || txtFathersWorkMobile.Text != "") { if (txtMothersForename.Text != "" || txtMothersLastName.Text != "" || txtFathersForename.Text != "" || txtFathersLastName.Text != "") { if (txtMothersForename.Text.Length <= 15) { if (txtMothersLastName.Text.Length <= 25) { if (txtFathersForename.Text.Length <= 15) { if (txtFathersLastName.Text.Length <= 25) { if (txtContactEmail.Text.Length <= 50) { if (txtTelephoneNumber.Text.Length <= 13) { if (txtMothersMobileNumber.Text.Length <= 13) { if (txtFathersMobileNumber.Text.Length <= 13) { if (txtMothersWorkNumber.Text.Length <= 13) { if (txtFathersWorkNumber.Text.Length <= 13) { if (txtMothersWorkMobile.Text.Length <= 13) { if (txtFathersWorkMobile.Text.Length <= 13) { if (txtAddressLine1.Text.Length <= 25) { if (txtAddressLine2.Text.Length <= 25) { if (txtTownCity.Text.Length <= 25) { if (txtCounty.Text.Length <= 25) { if (txtPostcode.Text.Length <= 7) { DialogResult result = MessageBox.Show("Are you sure you want to save this new Parent?", "", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes)
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
89 | P a g e
{ Parent parents = new Parent(); if(parents.AddParent(cobMothersTitle.Text, txtMothersForename.Text, txtMothersLastName.Text, txtFathersTitle.Text, txtContactEmail.Text, txtTelephoneNumber.Text, txtMothersMobileNumber.Text, txtFathersMobileNumber.Text, txtMothersWorkNumber.Text, txtFathersWorkNumber.Text, txtMothersWorkMobile.Text, txtFathersWorkMobile.Text, txtAddressLine1.Text, txtAddressLine2.Text, txtTownCity.Text, txtCounty.Text, txtPostcode.Text, txtFathersForename.Text, txtFathersLastName.Text)== true); { MessageBox.Show("New Parent Saved."); Close(); } } else if (result == DialogResult.No) { Close(); } else if (result == DialogResult.Cancel) { } } else { MessageBox.Show("Postcode must have no more than 7 characters to continue"); } } else { MessageBox.Show("County must have no more than 25 characters to continue"); } } else { MessageBox.Show("City or Town must have no more than 25 characters to continue"); } } else
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
90 | P a g e
{ MessageBox.Show("Address Line 2 must have no more than 25 characters to continue"); } } else { MessageBox.Show("Address Line 1 must have no more than 25 characters to continue"); } } else { MessageBox.Show("Fathers Work Mobile must be no longer than 13 charcters to continue."); } } else { MessageBox.Show("Mothers Work Mobile must be no longer than 13 charcters to continue."); } } else { MessageBox.Show("Fathers Work Number must be no longer than 13 charcters to continue."); } } else { MessageBox.Show("Mothers Work Number must be no longer than 13 charcters to continue."); } } else { MessageBox.Show("Fathers Mobile Number must be no longer than 13 charcters to continue."); } } else { MessageBox.Show("Mothers Mobile Number must be no longer than 13 charcters to continue."); } } else { MessageBox.Show("Contact Telephone Number must be no longer than 13 charcters to continue."); } } else { MessageBox.Show("Contact email must be no longer than 50 charcters to continue."); } }
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
91 | P a g e
else { MessageBox.Show("Fathers Last Name must be no longer than 25 charcters to continue."); } } else { MessageBox.Show("Fathers Forename must be no longer than 15 charcters to continue. "); } } else { MessageBox.Show("Mothers Last Name must be no longer than 25 charcters to continue."); } } else { MessageBox.Show("Mothers Forename must be no longer than 15 charcters to continue. "); } } else { DialogResult result = MessageBox.Show("The form must contain at least one name to continue."); } } else { MessageBox.Show("The form must contain at least one contact number to continue."); } } else { MessageBox.Show("Please selected a title from the list provided."); } } } }
AddNewStudent using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class AddNewStudent : Form {
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
92 | P a g e
DataTable dtStudents = new DataTable(); Parent parents = new Parent(); public AddNewStudent() { InitializeComponent(); } private void btnAddNewStudent_Click(object sender, EventArgs e) { int selectedrowindex = AddNewStudentParentID.SelectedCells[0].RowIndex; string ParentID = ((string)AddNewStudentParentID.Rows[selectedrowindex].Cells[0].Value); if (cobStudentTitle.Text == "Mr" || cobStudentTitle.Text == "Ms" || cobStudentTitle.Text == "Miss" || cobStudentTitle.Text == "Mr") { if (txtStudentForename.Text != "" && txtStudentsLastName.Text != "" && mskStudentDOB.Text != "" && mskDateJoined.Text != "") { if (txtStudentForename.Text.Length <= 15) { if (txtStudentsLastName.Text.Length <= 20) { if (txtStudentEmail.Text.Length <= 50) { DialogResult result; result = MessageBox.Show("Are you sure you want to add this new Student?", "", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes) { Student students = new Student(); if(students.AddStudent(cobStudentTitle.Text, txtStudentForename.Text, txtStudentsLastName.Text, mskStudentDOB.Text, ParentID, txtStudentEmail.Text, txtLearningDisabilities.Text, txtAllergies.Text, txtHealthConditions.Text, mskDateJoined.Text) == true); { MessageBox.Show("New Student Saved."); Close(); } } else if (result == DialogResult.No) { Close(); } } else { MessageBox.Show("Students email must be no longer than 50 characters to continue"); } } else { MessageBox.Show("Students Last Name must be no longer than 20 characters to continue"); } } else {
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
93 | P a g e
MessageBox.Show("Students Forename must be no longer than 15 characters to continue"); } } else if (txtStudentForename.Text == "" && txtStudentsLastName.Text != "" && mskStudentDOB.MaskFull == true && mskDateJoined.MaskFull == true) { MessageBox.Show("You must enter the Student's First Name to continue."); } else if (txtStudentsLastName.Text == "" && txtStudentForename.Text != "" && mskStudentDOB.MaskFull == true && mskDateJoined.MaskFull == true) { MessageBox.Show("You must enter the Student's Last Name to continue."); } else if (mskStudentDOB.MaskFull == false && txtStudentForename.Text != "" && txtStudentsLastName.Text != "" && mskDateJoined.MaskFull == true) { MessageBox.Show("You must enter the Student's date of birth to continue."); } else if (mskDateJoined.MaskFull == false && txtStudentForename.Text != "" && txtStudentsLastName.Text != "" && mskStudentDOB.MaskFull == true) { MessageBox.Show("You must enter the Date the student has/is going to join, to continue."); } else { MessageBox.Show("Two or more of Student First Name, Student Last Name, Student DOB or Date joined are empty. These fields must be filled in before you can continue."); } } else { MessageBox.Show("Please select a title from the list provided"); } } private void AddNewStudent_Load(object sender, EventArgs e) { dtStudents = parents.ViewParentsInAddNewStudent(); AddNewStudentParentID.DataSource = dtStudents; cobStudentTitle.SelectedIndex = 0; } private void btnCancelNewParentForm_Click(object sender, EventArgs e) { Close(); } } }
AddNewUser using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
94 | P a g e
using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class AddNewUser : Form { public AddNewUser() { InitializeComponent(); } private void btnAddNewUser_Click(object sender, EventArgs e) { Users user = new Users(); //password validation pending if (txtNewUserUsername.Text != "" && txtNewUserPassoword.Text != "" && txtNewUserEmail.Text != "" && txtReeneterNewUserPassword.Text != "") { if (txtNewUserPassoword.Text.Length <= 20 && txtReeneterNewUserPassword.Text.Length <= 20) { if (txtNewUserPassoword.Text == txtReeneterNewUserPassword.Text) { if (txtNewUserUsername.Text.Length <= 20) { if (txtNewUserEmail.Text.Length <= 50) { DialogResult result; result = MessageBox.Show("Are you sure you want to add this new User?", "", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes) { user.AddUser(txtNewUserUsername.Text, txtNewUserPassoword.Text, txtNewUserEmail.Text, DateTime.Today, ckbRestrictedAccess.Checked); MessageBox.Show("New User Saved"); Close(); } else if (result == DialogResult.No) { Close(); } } else { MessageBox.Show("New User Email must be no longer than 50 characters to continue."); } } else { MessageBox.Show("Username must be no longer than 20 characters to continue."); } } else
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
95 | P a g e
{ MessageBox.Show("The two passwords you entered are not the same."); } } else { MessageBox.Show("The password must be no longer than 20 characters to continue"); } } else { if (txtNewUserUsername.Text == "" && txtNewUserPassoword.Text != "" && txtReeneterNewUserPassword.Text != "" && txtNewUserEmail.Text != "") { MessageBox.Show("You must enter a username to continue."); } else if (txtNewUserPassoword.Text == "" && txtNewUserUsername.Text != "" && txtReeneterNewUserPassword.Text != "" && txtNewUserEmail.Text != "") { MessageBox.Show("You must enter a password to continue."); } else if (txtReeneterNewUserPassword.Text == "" && txtNewUserPassoword.Text != "" && txtNewUserUsername.Text != "" && txtNewUserEmail.Text != "") { MessageBox.Show("You must reenter your choosen password in the reenter password dialog box to continue"); } else if (txtNewUserEmail.Text == "" && txtNewUserPassoword.Text != "" && txtReeneterNewUserPassword.Text != "" && txtNewUserUsername.Text != "") { MessageBox.Show("You must enter an email to continue."); } else { MessageBox.Show("More than one of the fields are empty, to continue you must fill in these fields"); } } } private void btnCancelNewUserForm_Click(object sender, EventArgs e) { this.Close(); } } }
CourseTable using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
96 | P a g e
namespace AylaCOMP4ProjectDatabase { public partial class CourseTable : Form { DataTable dtCourses = new DataTable(); Courses courses = new Courses(); public CourseTable() { InitializeComponent(); } private void btnCourseBack_Click(object sender, EventArgs e) { this.Close(); } private void btnAddCourse_Click(object sender, EventArgs e) { AddNewCourse addNewCourseForm = new AddNewCourse(); addNewCourseForm.ShowDialog(); dtCourses = courses.ViewCourses(); CourseGrid.DataSource = dtCourses; } private void CourseTable_Load(object sender, EventArgs e) { dtCourses = courses.ViewCourses(); CourseGrid.DataSource = dtCourses; } private void btnDeleteCourse_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to delete the selected Course record?","", MessageBoxButtons.YesNo); if(result == DialogResult.Yes) { int selectedrowindex = CourseGrid.SelectedCells[0].RowIndex; courses.deleteCourse((string)CourseGrid.Rows[selectedrowindex].Cells[0].Value); dtCourses = courses.ViewCourses(); CourseGrid.DataSource = dtCourses; } } } }
EmployeeLoginTable using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
97 | P a g e
namespace AylaCOMP4ProjectDatabase { public partial class EmployeeLoginTable : Form { DataTable dtUsers = new DataTable(); Users users = new Users(); public EmployeeLoginTable() { InitializeComponent(); } private void EmployeeLoginTable_Load(object sender, EventArgs e) { dtUsers = users.ViewUsers(); UsersGrid.DataSource = dtUsers; } private void btnAddUser_Click(object sender, EventArgs e) { AddNewUser addNewUserForm = new AddNewUser(); addNewUserForm.ShowDialog(); dtUsers = users.ViewUsers(); UsersGrid.DataSource = dtUsers; } private void btnEmployeeLoginBack_Click(object sender, EventArgs e) { this.Close(); } private void btnDeleteUser_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to delete the selected User record?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { int selectedrowindex = UsersGrid.SelectedCells[0].RowIndex; users.deleteUser((string)UsersGrid.Rows[selectedrowindex].Cells[0].Value); dtUsers = users.ViewUsers(); UsersGrid.DataSource = dtUsers; } } } }
EmployeeLogin using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
98 | P a g e
using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class EmployeeLoginTable : Form { DataTable dtUsers = new DataTable(); Users users = new Users(); public EmployeeLoginTable() { InitializeComponent(); } private void EmployeeLoginTable_Load(object sender, EventArgs e) { dtUsers = users.ViewUsers(); UsersGrid.DataSource = dtUsers; } private void btnAddUser_Click(object sender, EventArgs e) { AddNewUser addNewUserForm = new AddNewUser(); addNewUserForm.ShowDialog(); dtUsers = users.ViewUsers(); UsersGrid.DataSource = dtUsers; } private void btnEmployeeLoginBack_Click(object sender, EventArgs e) { this.Close(); } private void btnDeleteUser_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to delete the selected User record?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { int selectedrowindex = UsersGrid.SelectedCells[0].RowIndex; users.deleteUser((string)UsersGrid.Rows[selectedrowindex].Cells[0].Value); dtUsers = users.ViewUsers(); UsersGrid.DataSource = dtUsers; } } } }
EnquiryTable using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
99 | P a g e
using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class EnquiryTable : Form { DataTable dtEnquiries = new DataTable(); Enquiry enquires = new Enquiry(); public EnquiryTable() { InitializeComponent(); } private void btnEnquiryBack_Click(object sender, EventArgs e) { this.Close(); } private void btnAddEnquiry_Click(object sender, EventArgs e) { AddNewEnquiry addNewEnquiryForm = new AddNewEnquiry(); addNewEnquiryForm.ShowDialog(); dtEnquiries = enquires.ViewEnquires(); EnquiriesGrid.DataSource = dtEnquiries; } private void btnDeleteEnquiry_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to delete the selected Enquiry record?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { int selectedrowindex = EnquiriesGrid.SelectedCells[0].RowIndex; enquires.deleteEnquiry((string)EnquiriesGrid.Rows[selectedrowindex].Cells[0].Value); dtEnquiries = enquires.ViewEnquires(); EnquiriesGrid.DataSource = dtEnquiries; } } private void EnquiryTable_Load(object sender, EventArgs e) { dtEnquiries = enquires.ViewEnquires(); EnquiriesGrid.DataSource = dtEnquiries; } } }
EnrollmentTable using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
100 | P a g e
using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class EnrollmentTable : Form { DataTable dtEnrollment = new DataTable(); DataTable dtNonEnrolled = new DataTable(); Student students = new Student(); public EnrollmentTable() { InitializeComponent(); } private void btnEnrolmentsBack_Click(object sender, EventArgs e) { Close(); } private void EnrollmentTable_Load(object sender, EventArgs e) { dtEnrollment = students.ViewEnrolled(); EnrolledGrid.DataSource = dtEnrollment; dtNonEnrolled = students.ViewNonEnrolled(); NonEnrolledGrid.DataSource = dtNonEnrolled; } private void btnAddNewEnrollment_Click(object sender, EventArgs e) { Enrollment enrollStudent = new Enrollment(); enrollStudent.ShowDialog(); dtEnrollment = students.ViewEnrolled(); EnrolledGrid.DataSource = dtEnrollment; } private void btnDeleteEnrollment_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to delete the selected Enrollment record?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { int selectedrowindex = EnrolledGrid.SelectedCells[0].RowIndex; students.deteteEnrollment((string)EnrolledGrid.Rows[selectedrowindex].Cells[0].Value); dtEnrollment = students.ViewEnrolled(); EnrolledGrid.DataSource = dtEnrollment; } } private void btnDeleteNonEnrolledRecord_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to delete the selected Non-Enrollment record?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { int selectedrowindex = NonEnrolledGrid.SelectedCells[0].RowIndex;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
101 | P a g e
students.deteteNonEnrollment((string)NonEnrolledGrid.Rows[selectedrowindex].Cells[0].Value); dtNonEnrolled = students.ViewNonEnrolled(); NonEnrolledGrid.DataSource = dtNonEnrolled; } } } }
HomePage using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class HomePage : Form { bool admin; public HomePage(bool _admin) { InitializeComponent(); admin = _admin; } private void btnUsers_Click(object sender, EventArgs e) { EmployeeLoginTable employeeLoginTableView = new EmployeeLoginTable(); employeeLoginTableView.ShowDialog(); } private void btnParent_Click(object sender, EventArgs e) { ParentTable parentTableView = new ParentTable(); parentTableView.ShowDialog(); } private void btnStudent_Click(object sender, EventArgs e) { StudentTable studentTableView = new StudentTable(); studentTableView.ShowDialog(); } private void btnEnquiry_Click(object sender, EventArgs e) { EnquiryTable enquiryTableView = new EnquiryTable(); enquiryTableView.ShowDialog(); } private void btnCourses_Click(object sender, EventArgs e) { CourseTable courseTableView = new CourseTable(); courseTableView.ShowDialog(); }
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
102 | P a g e
private void btnLogout_Click(object sender, EventArgs e) { Close(); } private void btnEnrollment_Click(object sender, EventArgs e) { EnrollmentTable ViewEnrollmentTables = new EnrollmentTable(); ViewEnrollmentTables.ShowDialog(); } private void btnSearch_Click(object sender, EventArgs e) { NewSearch NewSearch = new NewSearch(); NewSearch.ShowDialog(); } private void HomePage_Load(object sender, EventArgs e) { if (admin == false) { btnCourses.Enabled = false; btnEnquiry.Enabled = false; btnParent.Enabled = false; btnStudent.Enabled = false; btnUsers.Enabled = false; btnEnrollment.Enabled = false; } } } }
Login
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class Login : Form { public Login() { InitializeComponent(); } private void btnLogin_Click(object sender, EventArgs e)
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
103 | P a g e
{ Users user = new Users(); if (user.Login(txtUsername.Text, txtPassword.Text) == 0) { txtUsername.Clear(); txtPassword.Clear(); MessageBox.Show("Invalid login"); } else { bool adminStatus = user.AdminOrNot(txtUsername.Text); txtUsername.Clear(); txtPassword.Clear(); HomePage frmHome = new HomePage(adminStatus); frmHome.ShowDialog(); } } private void btnClear_Click(object sender, EventArgs e) { txtUsername.Clear(); txtPassword.Clear(); } private void Login_Load(object sender, EventArgs e) { } } }
NewSearch
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Data.SqlClient; using Microsoft.Office.Interop; namespace AylaCOMP4ProjectDatabase { public partial class NewSearch : Form { public NewSearch() { InitializeComponent();
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
104 | P a g e
} // Windows Forms objects to be created on run time. ComboBox cmbAge = new ComboBox(); TextBox txtMin = new TextBox(); TextBox txtMax = new TextBox(); TextBox txtTownCity = new TextBox(); TextBox txtCounty = new TextBox(); TextBox txtPostcode = new TextBox(); DataTable dtRecords = new DataTable(); private void btnNewFormBack_Click(object sender, EventArgs e) { Close(); } private void ckbAge_CheckedChanged(object sender, EventArgs e) { if (ckbAge.Checked == true) // Age selection opions for drop down box when age criteria is selected. { cmbAge.Items.Add("Between"); cmbAge.Items.Add("Greater than"); cmbAge.Items.Add("Less than"); cmbAge.Location = new Point(10, 10); grbOptions.Controls.Add(cmbAge); cmbAge.SelectedIndex = 0; cmbAge.Show(); cmbAge.SelectedIndexChanged += new System.EventHandler(cmgAge_SelectedIndex); } } private void cmgAge_SelectedIndex(object sender, EventArgs e) { if (cmbAge.SelectedIndex == 0) //Between selected { //grbOptions.Controls.Clear(); txtMin.Text = ""; grbOptions.Controls.Add(txtMin); txtMin.Location = new Point(cmbAge.Size.Width + 30, 10); txtMin.Text = "Min. age"; txtMin.Show(); txtMax.Text = ""; grbOptions.Controls.Add(txtMax); txtMax.Location = new Point(txtMin.Size.Width + 180, 10); txtMax.Text = "Max. age"; txtMax.Show(); } else { txtMax.Text = ""; grbOptions.Controls.Add(txtMax); txtMax.Location = new Point(cmbAge.Size.Width + 30, 10); txtMax.Show(); } } private void ckbTownCity_CheckedChanged(object sender, EventArgs e) { if (ckbTownCity.Checked == true)
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
105 | P a g e
{ txtTownCity.Text = "Town/City"; grbOptions.Controls.Add(txtTownCity); txtTownCity.Location = new Point(10, 55); txtTownCity.Show(); } } private void ckbCounty_CheckedChanged(object sender, EventArgs e) { if (ckbCounty.Checked == true) { txtCounty.Text = "County"; grbOptions.Controls.Add(txtCounty); txtCounty.Location = new Point(10, 100); txtCounty.Show(); } } private void ckbPostcode_CheckedChanged(object sender, EventArgs e) { txtPostcode.Text = "Postcode"; grbOptions.Controls.Add(txtPostcode); txtPostcode.Location = new Point(10, 145); txtPostcode.Show(); } private void btnSearch_Click(object sender, EventArgs e) // Building SQL query to extract data from database based on criteria given by user. { if (rdbEnrolled.Checked == true || rdbUnenrolled.Checked == true) // Checking that one of the tables (enrolled or non-enrolled) have been selected for the search. { string strSearch = ""; SqlConnection connection = new SqlConnection("Data source=213.175.208.7;UID=aylabrooks;PWD=aylabrooks007*;initial catalog = progrmmiAylaBrooks"); if (rdbEnrolled.Checked == true) { strSearch = "Select StudentForename+ ' '+ StudentLastName As StudentName,MothersFirstName + ' '+MothersLastName As MotherName, FatherForename + ' ' + FatherLastname As FatherName, " + " Courses.Name As CourseName,TownCity,Postcode From Student,Courses,Parent, Enrolment Where Student.StudentId = Enrolment.StudentId AND Courses.courseId = Enrolment.CourseId " + "AND Parent.ParentId = Student.ParentId"; // SQL command for database if the data is to be for enrolled students. } else if (rdbUnenrolled.Checked == true) { strSearch = "Select FirstName+' ' + LastName As ChildName,MothersFirstName + ' '+MothersLastName As MotherName,FatherForename + ' ' + FatherLastname As FatherName, " + "Courses.Name As CourseName,TownCity,Postcode From Enquiry,Courses,Parent, Non_Enrolled Where Enquiry.EnquiryId = Non_Enrolled.EnquiryId AND Courses.courseId = Non_Enrolled.CourseId " + "AND Parent.ParentId = Enquiry.ParentId"; // SQL command for database if the data is to be for non-enrolled students. }
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
106 | P a g e
SqlDataAdapter adapter = new SqlDataAdapter(strSearch, connection); if (ckbAge.Checked == true) { if (cmbAge.SelectedIndex == 0)//between a specific range. { strSearch += " AND DateDiff(yy,StudentDOB,Getdate())<=@max AND DateDiff(yy,StudentDOB,Getdate()) >= @min"; adapter.SelectCommand.CommandText = strSearch; adapter.SelectCommand.Parameters.AddWithValue("@max", txtMax.Text); adapter.SelectCommand.Parameters.AddWithValue("@min", txtMin.Text); } else if (cmbAge.SelectedIndex == 1) //greater than entered age. { strSearch += " AND DateDiff(yy,StudentDOB,Getdate()) >= @min"; adapter.SelectCommand.CommandText = strSearch; adapter.SelectCommand.Parameters.AddWithValue("@min", txtMax.Text); } else if (cmbAge.SelectedIndex == 2) //LESS than entered age. { strSearch += " AND DateDiff(yy,StudentDOB,Getdate()) <= @max"; adapter.SelectCommand.CommandText = strSearch; int age = Convert.ToInt32(txtMax.Text); adapter.SelectCommand.Parameters.AddWithValue("@max", age);// Convert.ToInt32(txtMax.Text)); } } if (ckbTownCity.Checked == true) { strSearch += " AND TownCity=@townCity"; adapter.SelectCommand.CommandText = strSearch; adapter.SelectCommand.Parameters.AddWithValue("@townCity", txtTownCity.Text); } if (ckbCounty.Checked == true) { strSearch += " And County =@county"; adapter.SelectCommand.CommandText = strSearch; adapter.SelectCommand.Parameters.AddWithValue("@county", txtCounty.Text); } if (ckbPostcode.Checked == true) { strSearch += " And Postcode Like @postcode"; adapter.SelectCommand.CommandText = strSearch; adapter.SelectCommand.Parameters.AddWithValue("@postcode", txtPostcode.Text); } if (ckbSiblings.Checked == true) { if (rdbEnrolled.Checked == true) { //self join to retreive students(sibling) with same parent. strSearch += " AND Parent.ParentID IN(SELECT DISTINCT S1.ParentId FROM Student S1 INNER JOIN Student S2 ON S1.ParentId = S2.ParentId AND S1.StudentId <> S2.StudentId)";
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
107 | P a g e
} else {//self join to retreive enquiries(sibling) with same parent. strSearch += " AND Parent.ParentID IN(SELECT DISTINCT E1.ParentId FROM Enquiry E1 INNER JOIN Enquiry E2 ON E1.ParentId = E2.ParentId AND E1.EnquiryId<> E2.EnquiryId)"; } adapter.SelectCommand.CommandText = strSearch; } adapter.Fill(dtRecords); dgvViewResult.DataSource = dtRecords; } else { MessageBox.Show("You must select which table you would like the search data to come from."); // Error message if no table (enrolled or no enrolled) is selected for the search. } } private void btnClear_Click(object sender, EventArgs e) { ckbAge.Checked = false; ckbCounty.Checked = false; ckbPostcode.Checked = false; ckbTownCity.Checked = false; ckbSiblings.Checked = false; rdbEnrolled.Checked = false; rdbUnenrolled.Checked = false; dgvViewResult.DataSource = ""; CleargrbOptions(); } private void CleargrbOptions() { foreach (Control ctl in grbOptions.Controls) { grbOptions.Controls.Remove(ctl); } } private void btnPrint_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to print this search ?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { SaveTableInWord(); } else if (result == DialogResult.No) { MessageBox.Show("The search was printed."); } } private void SaveTableInWord() { Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
108 | P a g e
app.Visible = false; object missing = System.Reflection.Missing.Value; //create a new word document Microsoft.Office.Interop.Word.Document document = app.Documents.Add(ref missing, ref missing, ref missing, ref missing); //Add paragraph with Heading 1 style Microsoft.Office.Interop.Word.Paragraph para1 = document.Content.Paragraphs.Add(ref missing); object styleHeading1 = "Heading 1"; para1.Range.set_Style(ref styleHeading1); if (rdbEnrolled.Checked == true) { para1.Range.Text = "LogicOut - List of enrolled criteria"; } else { para1.Range.Text = "LogicOut - List of enquired criteria"; } para1.Range.InsertParagraphAfter(); //Create a table and insert record Microsoft.Office.Interop.Word.Table firstTable = document.Tables.Add(para1.Range, dtRecords.Rows.Count+1, dtRecords.Columns.Count, ref missing, ref missing); firstTable.Borders.Enable = 1; int rowCounter= -1; int colCounter = 0; int fieldCounter = 0; foreach (Microsoft.Office.Interop.Word.Row row in firstTable.Rows) { foreach (Microsoft.Office.Interop.Word.Cell cell in row.Cells) { //Header row if (cell.RowIndex == 1) { cell.Range.Text = dtRecords.Columns[fieldCounter].ToString(); fieldCounter++; //format properties cell.Range.Font.Bold = 1; cell.Range.Font.Name = "Calibri"; cell.Range.Font.Size = 11; cell.Shading.BackgroundPatternColor = Microsoft.Office.Interop.Word.WdColor.wdColorGray25; } //Data row else { cell.Range.Text = dtRecords.Rows[rowCounter][colCounter].ToString(); //format properties cell.Range.Font.Name = "Calibri"; cell.Range.Font.Size = 10; colCounter++; } } colCounter = 0;
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
109 | P a g e
rowCounter++; } //Save the document object filename =AppDomain.CurrentDomain.BaseDirectory + "temp1.docx"; document.SaveAs2(ref filename); //start-print the document object copies = "1"; object pages = ""; object range = Microsoft.Office.Interop.Word.WdPrintOutRange.wdPrintAllDocument; object items = Microsoft.Office.Interop.Word.WdPrintOutItem.wdPrintDocumentContent; object pageType = Microsoft.Office.Interop.Word.WdPrintOutPages.wdPrintAllPages; object oTrue = true; object oFalse = false; document.PrintOut(ref oTrue, ref oFalse, ref range, ref missing, ref missing, ref missing, ref items, ref copies, ref pages, ref pageType, ref oFalse, ref oTrue, ref missing, ref oFalse, ref missing, ref missing, ref missing, ref missing); //end-print the document document.Close(ref missing, ref missing, ref missing); document = null; app.Quit(ref missing, ref missing, ref missing); app= null; MessageBox.Show("Document created successfully !"); } } }
ParentTable
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase { public partial class ParentTable : Form { DataTable dtParents = new DataTable(); Parent parents = new Parent(); public ParentTable() {
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
110 | P a g e
InitializeComponent(); } private void btnAddParent_Click(object sender, EventArgs e) { AddNewParent addNewParentForm = new AddNewParent(); addNewParentForm.ShowDialog(); dtParents = parents.ViewParents(); ParentGrid.DataSource = dtParents; } private void btnParentBack_Click(object sender, EventArgs e) { this.Close(); } private void btnDeleteParent_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to delete the selected Parent record?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { int selectedrowindex = ParentGrid.SelectedCells[0].RowIndex; parents.deleteParent((string)ParentGrid.Rows[selectedrowindex].Cells[0].Value); dtParents = parents.ViewParents(); ParentGrid.DataSource = dtParents; } } private void ParentTable_Load(object sender, EventArgs e) { dtParents = parents.ViewParents(); ParentGrid.DataSource = dtParents; } } }
StudentTable
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace AylaCOMP4ProjectDatabase
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
111 | P a g e
{ public partial class StudentTable : Form { DataTable dtStudents = new DataTable(); Student students = new Student(); public StudentTable() { InitializeComponent(); } private void btnStudentBack_Click(object sender, EventArgs e) { this.Close(); } private void btnAddStudent_Click(object sender, EventArgs e) { AddNewStudent addNewStudentForm = new AddNewStudent(); addNewStudentForm.ShowDialog(); dtStudents = students.ViewStudents(); StudentGrid.DataSource = dtStudents; } private void StudentTable_Load(object sender, EventArgs e) { dtStudents = students.ViewStudents(); StudentGrid.DataSource = dtStudents; } private void btnDeleteStudent_Click(object sender, EventArgs e) { DialogResult result; result = MessageBox.Show("Are you sure you want to delete the selected Student record?", "", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { int selectedrowindex = StudentGrid.SelectedCells[0].RowIndex; students.deteteStudent((string)StudentGrid.Rows[selectedrowindex].Cells[0].Value); dtStudents = students.ViewStudents(); StudentGrid.DataSource = dtStudents; } } } }
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
112 | P a g e
Testing
Top-Down Testing
Test Series
Description Expected Result and Actual Test Data
Actual Result Evidence
1.1 Check that program homepage
loads when user enters valid Username and Password.
When valid username and
password is entered, that the program homepage
loads.
This is expected to happen
when the username and password is entered and
match the values that are
already on the SQL server.
The homepage loads when the
valid Username and Password was entered.
Figure 1.1
and Figure 1.2.
1.2 Check that when Enrolment
button is pressed that it takes you to View Enrolments page.
When Enrolment button is
pressed, the Enrolment page should appear.
When Enrolment button is
pressed, the Enrolment page appeared.
Figure 1.3
and Figure 1.4.
1.2.1 Check that when the add button is pressed, that the Add New
Enrolment page appears.
When the add button is pressed, the Add New
Enrolment page should appear.
When the Add button is pressed, the Add New
Enrolment page appears.
Figure 1.5 and Figure
1.6.
1.2.1.1 Check that when cancel is pressed that it takes you back to
the View Enrolment Page.
When the cancel button is pressed, the Add new
enrolment should disappear
and you should be back to the View Enrolment Page.
When the cancel button is pressed, the Add New
Enrolment page disappears
and the View enrolment page appears.
Figures 1.7 and 1.8.
1.2.2 Check that when back is pressed When the back button is When the back button was Figure 1.9
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
113 | P a g e
on the view enrolment page, it takes you back to the homepage.
pressed on the view enrolment page it should
take you back to the homepage.
pressed on the enrolment page, it takes you back to the
homepage.
and Figure 1.10
1.3 Check that when the Parent
button on the home screen is pressed, it takes you to the View
Parents page.
When you press the Parent
button, it should take to the View Parent page.
When the parent button was
pressed, it took you to the View Parent page.
Figure 1.11
and Figure 1.12.
1.3.1 Check that when the add button is pressed on the View parent
page, the Add new Parent form shows.
When you press the add button on the view Parent
page, the Add New Parent form should show.
When the add button was pressed on the View Parent
page, the Add New Parent form showed.
Figure 1.13 and Figure
1.14.
1.3.1.1 Check that when the cancel button is pressed on the Add New Parent form, it takes you back to
the View Parent page.
When you press the cancel button on the Add New
Parent Page, it should take
you back to the View Parent Page.
When the cancel button on the Add New Parent paged was
pressed, it takes you back to
the view Parent Page.
Figure 1.15 and Figure
1.16.
1.3.2 Check that when the back button is pressed on the View Parent form, it takes you back to the
homepage.
When you press the back button on the View Parent Page, it should take you
back to the homepage.
When the back button on the View Parent page was pressed,
it takes you back to the
homepage.
Figure 1.17 and Figure
1.18.
1.4 Check that when the Student
button on the homepage is pressed, it takes you to the View
Student page.
When you press the Student
button on the homepage , it should take you to the View
Student page.
When the Student button was
pressed on the homepage, it takes you to the View Student
Page.
Figure 1.19
and Figure 1.20.
1.4.1 Check that when the Add button is pressed on the View Student
Page, it takes you to the add new student form.
When you press the Add button on the Student Page,
it should take you to the add new student form.
When the Add button on the view Student page was
pressed, it takes you to the Add new student Page.
Figure 1.21 and Figure
1.22.
1.4.1.1 Check when the Cancel button is pressed on the Add New Student form, takes you back to the view
student page.
When the Cancel button is pressed on the Add New
Student Page, it should take
you back to the view
When the Cancel button on the Add New Student Page was
pressed, it takes you back to
the view Student Page.
Figure 1.23 and Figure
1.24.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
114 | P a g e
student page. 1.4.2 Check when the back button is
pressed on the View Student page, it takes you back to the
Homepage.
When the back button is
pressed on the view student page, it takes you back to
the Homepage.
When the back button was
pressed on the view students page, it takes you back to the
Homepage.
Figure 1.25
and Figure 1.26.
1.5 Check that when the Enquiry button on the homepage is
pressed, it takes you to the View Enquires page.
When you press the Enquiry button on the homepage , it
should take you to the View Enquires page.
When the Enquiry button was pressed on the homepage, it
takes you to the View Enquiries Page.
Figure 1.27 and Figure
1.28.
1.5.1 Check that when the Add button
is pressed on the View Enquires Page, it takes you to the add new
enquiry form.
When you press the Add
button on the View Enquires Page, it should take you to
the add new enquiry form.
When the Add button on the
view Enquires page was pressed, it takes you to the
Add new enquiry Page.
Figure 1.29
and Figure 1.30.
1.5.1.1 Check when the Cancel button is pressed on the Add New enquiry
form, takes you back to the view enquiries page.
When the Cancel button is pressed on the Add New
Enquiry Page, it should take you back to the view
enquires page.
When the Cancel button on the Add New Enquiry Page was
pressed, it takes you back to the view enquires page.
Figure 1.31 and Figure
1.32.
1.5.2 Check when the back button is pressed on the View enquiries
page, it takes you back to the Homepage.
When the back button is pressed on the view
enquires page, it takes you back to the Homepage.
When the back button was pressed on the view enquires
page , it takes you back to the Homepage.
Figure 1.33 and Figure
1.34.
1.6 Check that when the Courses button on the homepage is
pressed, it takes you to the View
Courses page.
When you press the Courses button on the homepage, it should take you to the View
Courses page.
When the Courses button was pressed on the homepage, it
takes you to the View Courses
Page.
Figure 1.35 and Figure
1.36.
1.6.1 Check that when the Add button
is pressed on the View Courses Page, it takes you to the add new
courses form.
When you press the Add
button on the View Courses Page, it should take you to
the add new courses form.
When the Add button on the
view Courses page was pressed, it takes you to the
Add new Courses form.
Figure 1.37
and Figure 1.38.
1.6.1.1 Check when the Cancel button is pressed on the Add New courses
form, takes you back to the view
When the Cancel button is pressed on the Add New
Courses Page, it should take
When the Cancel button on the Add New Courses Page was
pressed, it takes you back to
Figure 1.39 and Figure
1.40.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
115 | P a g e
courses page. you back to the view courses page.
the view courses page.
1.6.2 Check when the back button is pressed on the View courses page, it takes you back to the
Homepage.
When the back button is pressed on the view courses page, it takes you back to
the Homepage.
When the back button was pressed on the view courses
page , it takes you back to the
Homepage.
Figure 1.41 and Figure
1.42.
1.7 Check that when the User button
on the homepage is pressed, it takes you to the View User page.
When you press the User
button on the homepage, it should take you to the View
User page.
When the User button was
pressed on the homepage, it takes you to the View User
Page.
Figure 1.43
and Figure 1.44.
1.7.1 Check that when the Add button is pressed on the User Page, it
takes you to the add new courses form.
When you press the Add button on the View User
Page, it should take you to the add new User form.
When the Add button on the view User page was pressed, it
takes you to the Add new User form.
Figure 1.45 and Figure
1.46.
1.7.1.1 Check when the Cancel button is
pressed on the Add New User form, takes you back to the view
User page.
When the Cancel button is
pressed on the Add New User Page, it should take
you back to the view User page.
When the Cancel button on the
Add New User Page was pressed, it takes you back to
the view User page.
Figure 1.47
and Figure 1.48.
1.7.2 Check when the back button is
pressed on the View User page, it takes you back to the Homepage.
When the back button is
pressed on the view User page, it takes you back to
the Homepage.
When the back button was
pressed on the view User page , it takes you back to the
Homepage.
Figure 1.49
and Figure 1.50.
1.8.1 Check that when the Search button on the homepage is
pressed, it takes you to the Search page.
When you press the Search button on the homepage, it
should take you to the Search page.
When the Search button was pressed on the homepage, it
takes you to the Page.
Figure 1.51 and Figure
1.52.
1.8.2 Check when the back button is pressed on the Search page, it
takes you back to the Homepage.
When the back button is pressed on the Search page,
it takes you back to the Homepage.
When the back button was pressed on the search page , it
takes you back to the Homepage.
Figure 1.53 and Figure
1.54.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
116 | P a g e
Evidence
Figure 1.1 Figure 1.2
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
120 | P a g e
Figure 1.9 Figure 1.10
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
121 | P a g e
Figure 1.11 Figure 1.12
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
122 | P a g e
Figure 1.13 Figure 1.14
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
123 | P a g e
Figure 1.15 Figure 1.16
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
124 | P a g e
Figure 1.17 Figure 1.18
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
125 | P a g e
Figure 1.19 Figure 1.20
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
126 | P a g e
Figure 1.21 Figure 1.22
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
127 | P a g e
Figure 1.23 Figure 1.24
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
128 | P a g e
Figure 1.25 Figure 1.26
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
129 | P a g e
Figure 1.27 Figure 1.28
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
130 | P a g e
Figure 1.29 Figure 1.30
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
131 | P a g e
Figure 1.31 Figure 1.32
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
132 | P a g e
Figure 1.33 Figure 1.34
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
133 | P a g e
Figure 1.35 Figure 1.36
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
134 | P a g e
Figure 1.37 Figure 1.38
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
135 | P a g e
Figure 1.39 Figure 1.40
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
136 | P a g e
Figure 1.41 Figure 1.42
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
137 | P a g e
Figure 1.43 Figure 1.44
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
138 | P a g e
Figure 1.45 Figure 1.46
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
139 | P a g e
Figure 1.47 Figure 1.48
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
140 | P a g e
Figure 1.49 Figure 1.50
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
141 | P a g e
Figure 1.51 Figure 1.52
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
142 | P a g e
Figure 1.53 Figure 1.54
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
143 | P a g e
System Testing
Test
Seri
es
Description Expected Result And Actual
Test Data
Actual Result Eviden
ce
2.1.
1
Check that
when the
add user
button on
the new user
form is
pressed, that
the data in
the form is
saved into
the SQL
server
database
with a new
ID in the
User table.
Data:
Username = Admin
Password = Admin123
Email = [email protected]
Date Created = 21/11/2015
(todays date)
Restricted Access = False
The above data should be saved
into the User table in the SQL
server database.
Saved data:
Username = Admin
Password = Admin123
Email = [email protected]
Date Created = 21/11/2015
(todays date)
Restricted Access = False
The above data was added to
the User table in the SQL server.
SQL
Before:
Figure
2.1
Form:
2.2
SQL
After:
Figure
2.3
2.1.
2
Check that
when the
delete user
button on
the View
user form is
pressed, that
the selected
data is
deleted from
the SQL
server
database
from the
User table.
Data:
Username = Admin
Password = Admin123
Email = [email protected]
Date Created = 21/11/2015
(todays date)
Restricted Access = False
The selected above data should
be deleted from the User table in
the SQL server database.
Deleted data:
Username = Admin
Password = Admin123
Email = [email protected]
Date Created = 21/11/2015
(todays date)
Restricted Access = False
The selected data above was
deleted from the User table in
the SQL server database.
SQL
Before:
Figure
2.4
Form:
2.5
SQL
After:
Figure
2.6
2.2.
1
Check that
when the
add Parent
button on
the new
parent form
is pressed,
that the data
in the form
is saved into
the SQL
server
database
with a new
ID in the
Parent table.
Data:
Mothers Title = Mrs
Mothers Name = Wonda
Mothers Surname = Joio
Fathers Title = Mr
Fathers Name = Rob
Fathers Surname = Joio
Contact Email = [email protected]
Telephone Number = 01645
456789
Mothers Mobile = 07776 678987
Fathers Mobile = 07897 123321
Mothers Work Number = 01891
901091
Fathers Work Number = 01981
789976
Mothers Work Mobile = 07653
345678
Fathers Work Mobile = 07890
987654
Saved data:
Mothers Title = Mrs
Mothers Name = Wonda
Mothers Surname = Joio
Fathers Title = Mr
Fathers Name = Rob
Fathers Surname = Joio
Contact Email = [email protected]
Telephone Number = 01645
456789
Mothers Mobile = 07776 678987
Fathers Mobile = 07897 123321
Mothers Work Number = 01891
901091
Fathers Work Number = 01981
789976
Mothers Work Mobile = 07653
345678
Fathers Work Mobile = 07890
987654
SQL
Before:
Figure
2.7
Form:
2.8
SQL
After:
Figure
2.9
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
144 | P a g e
Address Line 1 = House Number
9
Address Line 2 = Terter Road
Town/City = Tenterden
County = Kent
Postcode = KT6 8ET
The above data should be saved
into the Parent table in the SQL
server database.
Address Line 1 = House Number
9
Address Line 2 = Terter Road
Town/City = Tenterden
County = Kent
Postcode = KT6 8ET
The above data was added to
the Parent table in the SQL
server.
2.2.
2
Check that
when the
delete user
button on
the View
parent form
is pressed,
that the
selected
data is
deleted from
the SQL
server
database
from the
parent table.
Data:
Mothers Title = Mrs
Mothers Name = Wonda
Mothers Surname = Joio
Fathers Title = Mr
Fathers Name = Rob
Fathers Surname = Joio
Contact Email = [email protected]
Telephone Number = 01645
456789
Mothers Mobile = 07776 678987
Fathers Mobile = 07897 123321
Mothers Work Number = 01891
901091
Fathers Work Number = 01981
789976
Mothers Work Mobile = 07653
345678
Fathers Work Mobile = 07890
987654
Address Line 1 = House Number
9
Address Line 2 = Terter Road
Town/City = Tenterden
County = Kent
Postcode = KT6 8ET
The selected data above should
be deleted from the Parent table
in the SQL server database.
Deleted data:
Mothers Title = Mrs
Mothers Name = Wonda
Mothers Surname = Joio
Fathers Title = Mr
Fathers Name = Rob
Fathers Surname = Joio
Contact Email = [email protected]
Telephone Number = 01645
456789
Mothers Mobile = 07776 678987
Fathers Mobile = 07897 123321
Mothers Work Number = 01891
901091
Fathers Work Number = 01981
789976
Mothers Work Mobile = 07653
345678
Fathers Work Mobile = 07890
987654
Address Line 1 = House Number
9
Address Line 2 = Terter Road
Town/City = Tenterden
County = Kent
Postcode = KT6 8ET
The selected data above was
deleted from the Parent table in
the SQL server database.
SQL
Before:
Figure
2.10
Form:
2.11
SQL
After:
Figure
2.12
2.3.
1
Check that
when the
add student
button on
the new
student form
is pressed,
that the data
in the form
is saved into
the SQL
server
database
with a new
ID in the
Student
Data:
Student Title = Miss
Student Forename = Ronda
Student Last Name = Tarry
Student DOB = 30/11/2003
Student Email =
Parent ID = PR003
Learning Disabilities =
Allergies = Lactose Intolerant
Health Conditions =
Date Joined = 21/11/2009
The data above should be saved
into the Student table in the SQL
server database.
Saved data:
Student Title = Miss
Student Forename = Ronda
Student Last Name = Tarry
Student DOB = 30/11/2003
Student Email =
Parent ID = PR003
Learning Disabilities =
Allergies = Lactose Intolerant
Health Conditions =
Date Joined = 21/11/2009
The data above was added to
the Parent table in the SQL
server.
SQL
Before:
Figure
2.13
Form:
2.14
SQL
After:
Figure
2.15
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
145 | P a g e
table.
2.3.
2
Check that
when the
delete
student
button on
the View
student form
is pressed,
that the
selected
data is
deleted from
the SQL
server
database
from the
Student
table.
Data:
Student Title = Miss
Student Forename = Ronda
Student Last Name = Tarry
Student DOB = 30/11/2003
Student Email =
Parent ID = PR003
Learning Disabilities =
Allergies = Lactose Intolerant
Health Conditions =
Date Joined = 21/11/2009
The selected data above should
be deleted from the Student
table in the SQL server
database.
Deleted data:
Student Title = Miss
Student Forename = Ronda
Student Last Name = Tarry
Student DOB = 30/11/2003
Student Email =
Parent ID = PR003
Learning Disabilities =
Allergies = Lactose Intolerant
Health Conditions =
Date Joined = 21/11/2009
The selected data above was
deleted from the Student table
in the SQL server database.
SQL
Before:
Figure
2.16
Form:
2.17
SQL
After:
Figure
2.18
2.4.
1
Check that
when the
add course
button on
the new
course form
is pressed,
that the data
in the form
is saved into
the SQL
server
database
with a new
ID in the
Courses
table.
Data:
Course Name = Advanced
Computing
Started = 10/09/2014
Description = For students who
would like to further their skills
after the A-Level course. Good
preparation before university.
Recommended For = For
Students that already have a
good understanding of
computing.
Prerequisites = A-Level
Computing
The above data should be saved
into the Courses table in the SQL
server database.
Saved data:
Course Name = Advanced
Computing
Started = 10/09/2014
Description = For students who
would like to further their skills
after the A-Level course. Good
preparation before university.
Recommended For = For
Students that already have a
good understanding of
computing.
Prerequisites = A-Level
Computing
The data above was added to
the Courses table in the SQL
server.
SQL
Before:
Figure
2.19
Form:
2.20
SQL
After:
Figure
2.21
2.4.
2
Check that
when the
delete
course
button on
the View
course form
is pressed,
that the
selected
data is
deleted from
the SQL
server
database
from the
Courses
table.
Data:
Course Name = Advanced
Computing
Started = 10/09/2014
Description = For students who
would like to further their skills
after the A-Level course. Good
preparation before university.
Recommended For = For
Students that already have a
good understanding of
computing.
Prerequisites = A-Level
Computing
The selected data above should
be deleted from the Courses
table in the SQL server
database.
Deleted data:
Course Name = Advanced
Computing
Started = 10/09/2014
Description = For students who
would like to further their skills
after the A-Level course. Good
preparation before university.
Recommended For = For
Students that already have a
good understanding of
computing.
Prerequisites = A-Level
Computing
The selected data above was
deleted from the Courses table
in the SQL server database.
SQL
Before:
Figure
2.22
Form:
2.23
SQL
After:
Figure
2.24
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
146 | P a g e
2.5.
1
Check that
when the
add enquiry
button on
the new
enquiry form
is pressed,
that the data
in the form
is saved into
the SQL
server
database
with a new
ID in the
Enquiry
table.
Data:
First Name = Toni
Last Name = Tarry
DOB = 19/06/2006
Parent ID = PR003
Course Recommended = CO001
Enquiry Date = 21/11/15
The above data should be saved
into the Enquiry table in the SQL
server database.
Saved data:
First Name = Toni
Last Name = Tarry
DOB = 19/06/2006
Parent ID = PR003
Course Recommended = CO001
Enquiry Date = 21/11/15
The above data was added to
the Enquiry table in the SQL
server.
SQL
Before:
Figure
2.25
Form:
2.26
SQL
After:
Figure
2.27
2.5.
2
Check after
new enquiry
is given and
the option of
adding
course
enquired for
becomes
enabled, that
the select
options are
saved to the
Non_Enrolle
d table in
the SQL
server
database.
Data:
Course Enquired For = CO001
The select data above should
added to the Non_Enrolled table
in the SQL server database.
Saved Data:
Course Enquired For = CO001
The select data above was saved
to the Non_Enrolled table in the
SQL server database.
SQL
Before:
Figure
2.28
Form:
2.29
SQL
After:
Figure
2.30
2.5.
3
Check that
when the
delete
enquiry
button on
the View
enquiry form
is pressed,
that the
selected
data is
deleted from
the SQL
server
database
from the
Enquiry
table.
Data:
First Name = Toni
Last Name = Tarry
DOB = 19/06/2006
Parent ID = PR003
Course Recommended = CO001
Enquiry Date = 21/11/15
The selected data above should
be deleted from the Enquiry
table in the SQL server
database.
Deleted data:
First Name = Toni
Last Name = Tarry
DOB = 19/06/2006
Parent ID = PR003
Course Recommended = CO001
Enquiry Date = 21/11/15
The selected data above was
deleted from the Enquiry table
in the SQL server database.
SQL
Before:
Figure
2.31
Form:
2.32
SQL
After:
Figure
2.33
2.6.
1
Check that
when the
add
Enrolment
button on
Data:
Student Name = Rick Garba
Course To Be Enrolled =
CO002, CO003
Comments =
Saved data:
Student Name = Rick Garba
Course To Be Enrolled =
CO002, CO003
Comments =
SQL
Before:
Figure
2.34
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
147 | P a g e
the new
enrolment
form is
pressed, that
the data in
the form is
saved into
the SQL
server
database
with a new
ID in the
Enrolment
table.
The data above should be saved
into the Enrolment table in the
SQL server database.
The data above was added to
the Enrolment table in the SQL
server.
Form:
2.35
SQL
After:
Figure
2.36
2.6.
2
Check that
when the
delete
enrolment
button on
the View
enrolment
form is
pressed, that
the selected
data is
deleted from
the SQL
server
database
from the
Enrolment
table.
Data:
Student ID = ST003
Course To Be Enrolled =
CO002, CO003
Comments =
The selected data above should
be deleted from the Enrolment
table in the SQL server
database.
Deleted data:
Student ID = ST003
Course To Be Enrolled =
CO002, CO003
Comments =
The selected data above was
deleted from the Enrolment
table in the SQL server
database.
SQL
Before:
Figure
2.37
Form:
2.38
SQL
After:
Figure
2.39
2.6.
3
Check that
when the
delete Non-
Enrolled
button on
the View
enrolment
form is
pressed, that
the selected
data is
deleted from
the SQL
server
database
from the
Non_Enrolle
d table.
Data:
Enquiry ID = ST002
Course ID = CO003
The selected data above should
be deleted from the
Non_Enrolled table in the SQL
server database.
Deleted Data:
Enquiry ID = ST002
Course ID = CO003
The selected data above was
deleted from the Non-Enrolled
table in the SQL server
database.
SQL
Before:
Figure
2.40
Form:
2.41
SQL
After:
Figure
2.342
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
148 | P a g e
Figure 2.1
Figure 2.2
Figure 2.3
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
149 | P a g e
Figure 2.4
Figure 2.5
Figure 2.6
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
150 | P a g e
Figure 2.7
Figure 2.8
Figure 2.9
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
151 | P a g e
Figure 2.10
Figure 2.11
Figure 2.12
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
152 | P a g e
Figure 2.13
Figure 2.14
Figure 2.15
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
153 | P a g e
Figure 2.16
Figure 2.17
Figure 2.18
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
154 | P a g e
Figure 2.19
Figure 2.20
Figure 2.21
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
155 | P a g e
Figure 2.22
Figure 2.23
Figure 2.24
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
156 | P a g e
Figure 2.25
Figure 2.26
Figure 2.27
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
157 | P a g e
Figure 2.28
Figure 2.29
Figure 2.30
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
158 | P a g e
Figure 2.31
Figure 2.32
Figure 2.33
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
159 | P a g e
Figure 2.34
Figure 2.35
Figure 2.36
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
160 | P a g e
Figure 2.37
Figure 2.38
Figure 2.39
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
161 | P a g e
Figure 2.40
Figure 2.41
Figure 2.42
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
162 | P a g e
Bottom-Up Testing
Test
Seri
es
Descript
ion
Expected Result and Actual Test Data Actual Result Eviden
ce Normal Boundary Erroneous Normal Boundary Erroneous
3.1.
1
(Par
ent
For
m)
Check a
valid title
has been
entered
for
Mother.
Title = Mrs
Should
accept Mrs
as valid
data.
Should move
to next
validation,
giving an
error
message
saying at
least one
contact
detail must
Title = Miss
Should
accept Miss
as valid
data.
Should move
to next
validation,
giving an
error
message
saying at
least one
contact
detail must
Title empty.
Should not
accept
empty field
and display
an error
message.
Title = Mrs
Accepts Mrs
but displays
error message
from next
validation
about needing
at least one
contact detail.
Title = Miss
Accepts Miss
but displays
error message
from next
validation
about needing
at least one
contact detail.
Title Empty
Displays an
error message
asking to input
title from list.
Normal
Testing
= Figure
3.1.
Boundar
y
Testing
= Figure
3.2.
Erroneo
us
Testing
= Figure
3.3.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
163 | P a g e
be entered. be entered.
3.1.
2
(Par
ent
For
m)
Check
that at
least one
contact
detail is
entered.
Email =
m
Should move
on to next
validation,
giving an
error
message
saying at
least one
name must
be entered.
Contact
Email =
m
Telephone
Number =
01655
456785
Mothers
Mobile =
07676
676987
Fathers
Mobile =
07123
123321
Mothers
Work
Number =
01791
901791
Fathers Work
Number =
01991
All contact
details
empty.
(Telephone
Number,
Mothers
Mobile,
Fathers
Mobile,
Mothers
Work
Number,
Fathers Work
Number,
Mothers
Work Mobile,
Fathers Work
Mobile)
Should not
accept all
contact
details to be
empty and
display an
error
Email =
Accepts email
entered but
displays error
message from
next
validation
about needing
at least one
contact name.
Contact Email
=
Telephone
Number =
01655 456785
Mothers Mobile
= 07676
676987
Fathers Mobile
= 07123
123321
Mothers Work
Number =
01791 901791
Fathers Work
Number =
01991 789956
Mothers Work
Mobile = 07603
345698
Fathers Work
All contact
details empty.
(Telephone
Number,
Mothers Mobile,
Fathers Mobile,
Mothers Work
Number,
Fathers Work
Number,
Mothers Work
Mobile, Fathers
Work Mobile)
Displays an
error message
asking the user
to input at least
on contact
detail.
Normal
Testing
= Figure
3.4.
Boundar
y
Testing
= Figure
3.5.
Erroneo
us
Testing
= Figure
3.6.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
164 | P a g e
789956
Mothers
Work Mobile
= 07603
345698
Fathers Work
Mobile =
07890
987789
Should
accept all
contact
details being
entered and
should move
onto the
validation,
giving an
error
message
saying at
least one
name must
be entered.
message. Mobile = 07890
987789
Accepts all
contact details
being entered
and moves
onto the
validation,
giving an error
message saying
at least one
name must be
entered.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
165 | P a g e
3.1.
3
(Par
ent
For
m)
Check
that at
least one
name
has been
entered.
Mothers
Name =
Ronda
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Mothers
Name =
Ronda
Mothers
Surname =
Von
Fathers
Name = Rob
Father
Surname =
Von
Should
accept, and
save the new
parent
record to the
SQL Server.
Should
accept,
All name
fields empty.
(Mothers
Name,
Mothers
Surname,
Fathers
Name,
Surname)
Should
display an
error
message say
that at least
one name
needs to be
entered.
Mothers Name
= Ronda
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Mothers Name
= Ronda
Mothers
Surname = Von
Fathers Name
= Rob
Father
Surname = Von
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
All name fields
empty.
(Mothers
Name, Mothers
Surname,
Fathers Name,
Surname)
Displays an
error message
saying that at
least one name
needs to be
entered.
Normal
Testing
= Figure
3.7 and
Figure
3.8.
Boundar
y
Testing
= Figure
3.9 and
Figure
3.10.
Erroneo
us
Testing
= Figure
3.11.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
166 | P a g e
display a
message
asking if you
want to save
the new
parent
record and
then and
save new
parent
record to the
SQL Server
when yes is
selected.
3.1.
4
(Par
ent
For
m)
Check
that the
Mothers
Forenam
e entered
is no
longer
than 15
character
s long.
Mothers
Name =
Ronda
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
Mothers
Name =
qwertyuiopas
dfg
Should
accept,
display a
message
asking if you
want to save
the new
parent
Mothers
Name =
qwertyuiopas
dfgh
Should not
accept and
display an
error
message
saying that
the mothers
Mothers Name
= Ronda
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
Mothers Name
=
qwertyuiopasdf
g
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
Mothers Name
=
qwertyuiopasdf
gh
Does not
accept and
displays an
error message
saying that
mothers name
Normal
Testing
= Figure
3.12
and
Figure
3.13.
Boundar
y
Testing
= Figure
3.14
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
167 | P a g e
then save
new parent
record to the
SQL Server
when yes is
selected.
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
name is too
long.
to the SQL
Server when
yes is
selected.
parent record
to the SQL
Server when
yes is selected.
is too long. and
Figure
3.15.
Erroneo
us
Testing
= Figure
3.16.
3.1.
5
(Par
ent
For
m)
Check
that the
Fathers
Forenam
e entered
is no
longer
than 15
character
s long.
Fathers
Name = Rob
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
Fathers
Name =
qwertyuiopas
dfg
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
Fathers
Name =
qwertyuiopas
dfgh
Should not
accept and
display an
error
message
saying that
the fathers
name is too
long.
Fathers Name
= Rob
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
Fathers Name
=
qwertyuiopasdf
g
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
Fathers Name
=
qwertyuiopasdf
gh
Does not
accept and
displays an
error message
saying that
fathers name is
too long.
Normal
Testing
= Figure
3.17
and
Figure
3.18.
Boundar
y
Testing
= Figure
3.19
and
Figure
3.20.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
168 | P a g e
when yes is
selected.
record to the
SQL Server
when yes is
selected.
selected.
yes is selected.
Erroneo
us
Testing
= Figure
3.21.
3.1.
6
(Par
ent
For
m)
Check
that the
Mothers
Last
Name
entered
is no
longer
than 25
character
s long.
Mothers Last
Name = Von
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Mothers Last
Name =
qwertyuiopas
dfghjklzxcvb
n
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
Mothers Last
Name =
qwertyuiopas
dfghjklzxcvb
nm
Should not
accept and
display an
error
message
saying that
the mothers
last name
name is too
long.
Mothers Last
Name = Von
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Mothers Last
Name =
qwertyuiopasdf
ghjklzxcvbn
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Mothers Last
Name =
qwertyuiopasdf
ghjklzxcvbnm
Does not
accept and
displays an
error message
saying that
mothers last
name is too
long.
Normal
Testing
= Figure
3.22
and
Figure
3.23.
Boundar
y
Testing
= Figure
3.24
and
Figure
3.25.
Erroneo
us
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
169 | P a g e
selected. Testing
= Figure
3.26.
3.1.
7
(Par
ent
For
m)
Check
that the
Fathers
Last
Name
entered
is no
longer
than 25
character
s long.
Fathers Last
Name = Von
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Fathers Last
Name =
qwertyuiopas
dfghjklzxcvb
n
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Fathers Last
Name =
qwertyuiopas
dfghjklzxcvb
nm
Should not
accept and
display an
error
message
saying that
the fathers
last name
name is too
long.
Fathers Last
Name = Von
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Fathers Last
Name =
qwertyuiopasdf
ghjklzxcvbn
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Fathers Last
Name =
qwertyuiopasdf
ghjklzxcvbnm
Does not
accept and
displays an
error message
saying that
fathers last
name is too
long.
Normal
Testing
= Figure
3.27
and
Figure
3.28.
Boundar
y
Testing
= Figure
3.29
and
Figure
3.30.
Erroneo
us
Testing
= Figure
3.31.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
170 | P a g e
3.1.
8
(Par
ent
For
m)
Check
that the
Contact
entered
is no
longer
than 50
character
s long.
Email =
m
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Email =
qwertyuiopas
dfghjklzxcvb
nm@qwertyu
ioplkjhgfdsa.
com
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Email =
qwertyuiopas
dfghjklzxcvb
nm@qwertyu
ioplkjhgfdsae
.com
Should not
accept and
display an
error
message
saying that
the contact
email is too
long.
Email =
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Email =
qwertyuiopasdf
ghjklzxcvbnm@
qwertyuioplkjh
gfdsa.com
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Email =
qwertyuiopasdf
ghjklzxcvbnm@
qwertyuioplkjh
gfdsae.com
Does not
accept and
displays an
error message
saying that the
contact email is
too long.
Normal
Testing
= Figure
3.32
and
Figure
3.33.
Boundar
y
Testing
= Figure
3.34
and
Figure
3.35.
Erroneo
us
Testing
= Figure
3.36.
3.1.
9
(Par
Check
that the
Telephon
Telephone
Number =
01639
Telephone
Number =
01639
Telephone
Number =
01639
Telephone
Number =
01639 987789
Telephone
Number =
01639 9877899
Telephone
Number =
01639
Normal
Testing
= Figure
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
171 | P a g e
ent
For
m)
e
number
entered
is no
longer
than 13
character
s long.
987789
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
9877899
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
98778969
Should not
accept and
display an
error
message
saying that
the
telephone
number is
too long.
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
98778969
Does not
accept and
displays an
error message
saying that the
telephone
number is too
long.
3.37
and
Figure
3.38.
Boundar
y
Testing
= Figure
3.39
and
Figure
3.40.
Erroneo
us
Testing
= Figure
3.41.
3.1.
10
(Par
ent
For
Check
that the
Mothers
Mobile
Number
entered
Mothers
Mobile
Number =
07639
987789
Mothers
Mobile
Number =
07639
9877899
Mothers
Mobile
Number =
07639
98778969
Mothers
Mobile
Number =
07639 987789
Mothers Mobile
Number =
07639 9877899
Accepts,
Mothers Mobile
Number =
07639
98778969
Normal
Testing
= Figure
3.42
and
Figure
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
172 | P a g e
m) is no
longer
than 13
character
s long.
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Should not
accept and
display an
error
message
saying that
the Mothers
Mobile
Number is
too long.
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Does not
accept and
displays an
error message
saying that the
Mothers Mobile
Number is too
long.
3.43.
Boundar
y
Testing
= Figure
3.44
and
Figure
3.45.
Erroneo
us
Testing
= Figure
3.46.
3.1.
11
(Par
ent
For
m)
Check
that the
Fathers
Mobile
Number
entered
is no
longer
than 13
Fathers
Mobile
Number =
07639
987789
Should
accept,
Fathers
Mobile
Number =
07639
9877899
Should
accept,
Fathers
Mobile
Number =
07639
98778969
Should not
accept and
Fathers
Telephone
Number =
07639 987789
Accepts,
displays a
message
Fathers Mobile
Number =
07639 9877899
Accepts,
displays a
message asking
if you want to
Fathers Mobile
Number =
07639
98778969
Does not
accept and
displays an
Normal
Testing
= Figure
3.47
and
Figure
3.48.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
173 | P a g e
character
s long.
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
display an
error
message
saying that
the Fathers
Mobile
Number is
too long.
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
error message
saying that the
Fathers Mobile
Number is too
long.
Boundar
y
Testing
= Figure
3.49
and
Figure
3.50.
Erroneo
us
Testing
= Figure
3.51.
3.1.
12
(Par
ent
For
m)
Check
that the
Mothers
Work
Number
entered
is no
longer
than 13
character
s long.
Mothers
Work
Number =
01839
987789
Should
accept,
display a
message
asking if you
Mothers
Work
Telephone
Number =
01839
9877899
Should
accept,
display a
message
Mothers
Work
Telephone
Number =
01839
98778969
Should not
accept and
display an
error
Mothers Work
Telephone
Number =
01839 987789
Accepts,
displays a
message
asking if you
want to save
the new
Mothers Work
Telephone
Number =
01839 9877899
Accepts,
displays a
message asking
if you want to
save the new
parent record
Mothers Work
Telephone
Number =
01839
98778969
Does not
accept and
displays an
error message
saying that the
Normal
Testing
= Figure
3.52
and
Figure
3.53.
Boundar
y
Testing
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
174 | P a g e
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
message
saying that
the Mothers
Work
Number is
too long.
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Mothers Work
Number is too
long.
= Figure
3.54
and
Figure
3.55.
Erroneo
us
Testing
= Figure
3.56.
3.1.
13
(Par
ent
For
m)
Check
that the
Fathers
Work
Number
entered
is no
longer
than 13
character
s long.
Fathers Work
Number =
01939
987789
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
Fathers Work
Telephone
Number =
01939
9877899
Should
accept,
display a
message
asking if you
want to save
the new
parent
Fathers Work
Telephone
Number =
01939
98778969
Should not
accept and
display an
error
message
saying that
the Fathers
Work
Fathers Work
Telephone
Number =
01939 987789
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
Fathers Work
Telephone
Number =
01939 9877899
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
Fathers Work
Telephone
Number =
01939
98778969
Does not
accept and
displays an
error message
saying that the
Fathers Work
Number is too
long.
Normal
Testing
= Figure
3.57
and
Figure
3.58.
Boundar
y
Testing
= Figure
3.59
and
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
175 | P a g e
then save
new parent
record to the
SQL Server
when yes is
selected.
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Number is
too long.
parent record
to the SQL
Server when
yes is
selected.
to the SQL
Server when
yes is selected.
Figure
3.60.
Erroneo
us
Testing
= Figure
3.61.
3.1.
14
(Par
ent
For
m)
Check
that the
Mothers
Work
Mobile
Number
entered
is no
longer
than 13
character
s long.
Mothers
Work Mobile
Number =
07639
987799
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
Mothers
Work Mobile
Number =
07639
9877999
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
Mothers
Work Mobile
Number =
07639
98779969
Should not
accept and
display an
error
message
saying that
the Mothers
Work Mobile
Number is
too long.
Mothers Work
Mobile
Number =
07639 987799
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
Mothers Work
Mobile Number
= 07639
9877999
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Mothers Work
Mobile Number
= 07639
98779969
Does not
accept and
displays an
error message
saying that the
Mothers Work
Mobile Number
is too long.
Normal
Testing
= Figure
3.62
and
Figure
3.63.
Boundar
y
Testing
= Figure
3.64
and
Figure
3.65.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
176 | P a g e
record to the
SQL Server
when yes is
selected.
record to the
SQL Server
when yes is
selected.
yes is
selected.
Erroneo
us
Testing
= Figure
3.66.
3.1.
15(P
aren
t
For
m)
Check
that the
Fathers
Work
Mobile
Number
entered
is no
longer
than 13
character
s long.
Fathers Work
Mobile
Number =
07639
986799
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
Fathers Work
Mobile
Number =
07639
9867999
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
Fathers Work
Mobile
Number =
07639
98679969
Should not
accept and
display an
error
message
saying that
the Fathers
Work Mobile
Number is
too long.
Fathers Work
Mobile
Number =
07639 986799
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Fathers Work
Mobile Number
= 07639
9867999
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Fathers Work
Mobile Number
= 07639
98679969
Does not
accept and
displays an
error message
saying that the
Fathers Work
Mobile Number
is too long.
Normal
Testing
= Figure
3.67
and
Figure
3.68.
Boundar
y
Testing
= Figure
3.69
and
Figure
3.70.
Erroneo
us
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
177 | P a g e
selected. selected. Testing
= Figure
3.71.
3.1.
16
(Par
ent
For
m)
Check
that the
Address
Line 1
entered
is no
longer
than 25
character
s long.
Address Line
1 = House
Number 6.
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Address Line
1 = House
Number
1234567891
23
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Address Line
1 = House
Number
1234567890
123
Should not
accept and
display an
error
message
saying that
the Address
Line 1 is too
long.
Address Line 1
= House
Number 6.
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Address Line 1
= House
Number
123456789123
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Address Line 1
= House
Number
123456789012
3
Does not
accept and
displays an
error message
saying that the
Address Line 1
is too long.
Normal
Testing
= Figure
3.72
and
Figure
3.73.
Boundar
y
Testing
= Figure
3.74
and
Figure
3.75.
Erroneo
us
Testing
= Figure
3.76.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
178 | P a g e
3.1.
17
(Par
ent
For
m)
Check
that the
Address
Line 2
entered
is no
longer
than 25
character
s long.
Address Line
2 =
Coursework
Road
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Address Line
2 =
Coursework
RoadRoadRo
addd
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Address Line
2 =
Coursework
RoadRoadRo
addd2
Should not
accept and
display an
error
message
saying that
the Address
Line 2 is too
long.
Address Line 2
= Coursework
Road
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Address Line 2
=
Coursework
RoadRoadRoad
dd
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Address Line 2
=
RoadRoadRoad
dd2
Does not
accept and
displays an
error message
saying that the
Address Line 2
is too long.
Normal
Testing
= Figure
3.77
and
Figure
3.78.
Boundar
y
Testing
= Figure
3.79
and
Figure
3.80.
Erroneo
us
Testing
= Figure
3.81.
3.1.
18
(Par
Check
that the
Town/Cit
Town/City =
Thanet
Town/City =
Town or City
or
Town/City =
Town or City
or
Town/City =
Thanet
Town/City =
Town or County
Town/City =
Town or City or
both0123
Normal
Testing
= Figure
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
179 | P a g e
ent
For
m)
y entered
is no
longer
than 25
character
s long.
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
both12312
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
both012312
Should not
accept and
display an
error
message
saying that
the
Town/City is
too long.
Accepts,
displays a
message
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
or both123
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
Does not
accept and
displays an
error message
saying that the
Town/City is
too long.
3.82
and
Figure
3.83.
Boundar
y
Testing
= Figure
3.84
and
Figure
3.85.
Erroneo
us
Testing
= Figure
3.86.
3.1.
19
(Par
ent
For
Check
that the
County
entered
is no
longer
County =
Kent
Should
accept,
County =
CountyCount
yCounty1231
231
County =
CountyCount
yCounty0123
1231
County = Kent
Accepts,
displays a
message
County =
CountyCountyC
ounty1231231
County =
CountyCountyC
ounty01231231
Does not
Normal
Testing
= Figure
3.87
and
Figure
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
180 | P a g e
m) than 25
character
s long.
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Should
accept,
display a
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
Should not
accept and
display an
error
message
saying that
the County is
too long.
asking if you
want to save
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
Accepts,
displays a
message asking
if you want to
save the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
accept and
displays an
error message
saying that the
County is too
long.
3.88.
Boundar
y
Testing
= Figure
3.89
and
Figure
3.90.
Erroneo
us
Testing
= Figure
3.91.
3.1.
20
(Par
ent
For
m)
Check
that the
Postcode
entered
is no
longer
than 7
character
s long.
Postcode =
KE6 2TH
Should
accept,
display a
message
asking if you
Postcode =
PostcodePost
codePostcod
e1
Should
accept,
display a
Postcode =
PostcodePost
codePostcod
e12
Should not
accept and
Postcode =
KE6 2TP
Accepts,
displays a
message
asking if you
want to save
Postcode =
PostcodePostco
dePostcode1
Accepts,
displays a
message asking
if you want to
save the new
Postcode =
PostcodePostco
dePostcode12
Does not
accept and
displays an
error message
Normal
Testing
= Figure
3.92
and
Figure
3.93.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
181 | P a g e
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
message
asking if you
want to save
the new
parent
record and
then save
new parent
record to the
SQL Server
when yes is
selected.
display an
error
message
saying that
the Postcode
is too long.
the new
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is
selected.
parent record
and then and
saves the new
parent record
to the SQL
Server when
yes is selected.
saying that the
Postcode is too
long.
Boundar
y
Testing
= Figure
3.94
and
Figure
3.95.
Erroneo
us
Testing
= Figure
3.96.
3.2.
1
(Stu
dent
For
m)
Check a
valid title
has been
entered
for the
Student.
Title = Miss
Should
accept Mrs
as valid
data.
Should move
to next
validation,
Title = Mr
Should
accept Miss
as valid
data.
Should move
to next
validation,
Title empty.
Should not
accept
empty field
and display
an error
message.
Title = Miss
Accepts Mrs
but displays
error message
from next
validation
about needing
a student
name needs
to be entered.
Title = Mr
Accepts Miss
but displays
error message
from next
validation
about needing
a student name
needs to be
entered.
Title Empty
Displays an
error message
asking to input
title from list.
Normal
Testing
= Figure
3.97.
Boundar
y
Testing
= Figure
3.98.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
182 | P a g e
giving an
error
message
saying a
student
name needs
to be
entered.
giving an
error
message
saying a
student
name needs
to be
entered.
Erroneo
us
Testing
= Figure
3.99.
3.2.
2
(Stu
dent
For
m)
Check
that
Student
First
Name,
Student
Last
Name,
Student
DOB and
Student
Join date
is not
empty.
Student First
Name =
Martha
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should
accept all the
data and
save the new
student into
Student First
Name =
Martha
Last Name =
Garba
Student DOB
=
09/10/2001
Should not
accept
empty field
and display
an error
message.
All fields
empty.
Should not
accept
empty field
and display
an error
message.
Student First
Name =
Martha
Last Name =
Garba
Student DOB
= 09/10/2001
Date Joined =
29/09/2011
Accept all the
data and
saves the new
student into
the student
table in the
Student First
Name = Martha
Last Name =
Garba
Student DOB =
09/10/2001
Does not empty
field and
displays an
error message.
All fields
empty.
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.100
and
3.101.
Boundar
y
Testing
= Figure
3.102.
Erroneo
us
Testing
= Figure
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
183 | P a g e
the student
table in the
SQL server.
SQL server. 3.103.
3.2.
3
(Stu
dent
For
m)
Check
that
Students
name is
no longer
than 15
character
s long.
Student First
Name =
Martha
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should
accept all the
data and
save the new
student into
the student
table in the
SQL server.
Student First
Name =
MarthaMarth
aMar
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should
accept all the
data and
save the new
student into
the student
table in the
Student First
Name =
MarthaMarth
aMart
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should not
accept
empty field
and display
an error
Student First
Name =
Martha
Last Name =
Garba
Student DOB
= 09/10/2001
Date Joined =
29/09/2011
Accept all the
data and
saves the new
student into
the student
table in the
SQL server.
Student First
Name =
MarthaMarthaM
ar
Last Name =
Garba
Student DOB =
09/10/2001
Date Joined =
29/09/2011
Accept all the
data and saves
the new
student into the
student table in
the SQL server.
Student First
Name =
MarthaMarthaM
art
Last Name =
Garba
Student DOB =
09/10/2001
Date Joined =
29/09/2011
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.104
and
3.105.
Boundar
y
Testing
= Figure
3.106
and
3.107.
Erroneo
us
Testing
= Figure
3.108.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
184 | P a g e
SQL server. message
saying that
the student
name is too
long.
3.2.
4
(Stu
dent
For
m)
Check
that
Students
last
name is
no longer
than 20
character
s long.
Student First
Name =
Martha
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should
accept all the
data and
save the new
student into
the student
table in the
Student First
Name =
Martha
Last Name =
GarbaGarba
GarbaGarba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should
accept all the
data and
save the new
student into
Student First
Name =
Martha
Last Name =
GarbaGarba
GarbaGarba
G
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should not
accept
Student First
Name =
Martha
Last Name =
Garba
Student DOB
= 09/10/2001
Date Joined =
29/09/2011
Accept all the
data and
saves the new
student into
the student
table in the
SQL server.
Student First
Name = Martha
Last Name =
GarbaGarbaGar
baGarbaGarba
Student DOB =
09/10/2001
Date Joined =
29/09/2011
Accept all the
data and saves
the new
student into the
student table in
the SQL server.
Student First
Name = Martha
Last Name =
GarbaGarbaGar
baGarbaGarba
G
Student DOB =
09/10/2001
Date Joined =
29/09/2011
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.109
and
3.110.
Boundar
y
Testing
= Figure
3.111
and
3.112.
Erroneo
us
Testing
= Figure
3.113.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
185 | P a g e
SQL server. the student
table in the
SQL server.
empty field
and display
an error
message
saying that
the student
last name is
too long.
3.2.
5
(Stu
dent
For
m)
Check
that
Students
email is
no longer
than 50
character
s long.
Student First
Name =
Martha
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Email =
Martha.Garb
m
Student First
Name =
Martha
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Email =
Martha.Mart
ha.Garba.Ga
rbaGarbaGar
ba@emailem
ail.com
Student First
Name =
Martha
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Email =
Martha.Mart
ha.Garba.Ga
rbaGarbaGar
ba@@emaile
mail.com
Student First
Name =
Martha
Last Name =
Garba
Student DOB
= 09/10/2001
Date Joined =
29/09/2011
Email =
Martha.Garba
@email.com
Accept all the
data and
saves the new
Student First
Name = Martha
Last Name =
Garba
Student DOB =
09/10/2001
Date Joined =
29/09/2011
Email =
Martha.Martha.
Garba.GarbaGa
rbaGarba@ema
ilemail.com
Accept all the
data and saves
Student First
Name = Martha
Last Name =
Garba
Student DOB =
09/10/2001
Date Joined =
29/09/2011
Email =
Martha.Martha.
Garba.GarbaGa
rbaGarba@@e
mailemail.com
Does not
accept all
Normal
Testing
= Figure
3.114
and
3.115.
Boundar
y
Testing
= Figure
3.116
and
3.117.
Erroneo
us
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
186 | P a g e
Should
accept all the
data and
save the new
student into
the student
table in the
SQL server.
Should
accept all the
data and
save the new
student into
the student
table in the
SQL server.
Should not
accept
empty field
and display
an error
message
saying that
the student
email is too
long.
student into
the student
table in the
SQL server.
the new
student into the
student table in
the SQL server.
empty fields
and displays an
error message.
Testing
= Figure
3.118.
3.3.
1
(Enq
uiry
For
m)
Check
that First
Name,
Last
Name,
New
Enquiry
DOB and
New
Enquiry
Date is
not
empty.
First Name =
Martha
Last Name =
Garba
New Enquiry
DOB =
09/10/2001
New Enquiry
Date =
29/09/2011
Should
accept all the
First Name =
Martha
Last Name =
Garba
New Enquiry
Date =
29/09/2011
Should not
accept
empty field
and display
an error
All fields
empty.
Should not
accept
empty field
and display
an error
message.
First Name =
Martha
Last Name =
Garba
New Enquiry
DOB =
09/10/2001
New Enquiry
Date =
29/09/2011
Accept all the
data and
First Name =
Martha
Last Name =
Garba
New Enquiry
Date =
29/09/2011
Does not
accept empty
field and
displays an
error message.
All fields
empty.
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.119
and
3.120.
Boundar
y
Testing
= Figure
3.121.
Erroneo
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
187 | P a g e
data and
save the new
enquiry into
the enquiry
table in the
SQL server.
message. saves the new
enquiry into
the enquiry
table in the
SQL server.
us
Testing
= Figure
3.122.
3.3.
2
(Enq
uiry
For
m)
Check
that First
Name is
no longer
than 20
character
s long.
Student First
Name =
Martha
Last Name =
Garba
New Enquiry
DOB =
09/10/2001
New Enquiry
Date =
29/09/2011
Should
accept all the
data and
save the new
enquiry into
the enquiry
table in the
Student First
Name =
MarthaMarth
aMarthaMa
Last Name =
Garba
New Enquiry
DOB =
09/10/2001
New Enquiry
Date =
29/09/2011
Should
accept all the
data and
save the new
enquiry into
the enquiry
Student First
Name =
MarthaMarth
aMarthaMar
Last Name =
Garba
New Enquiry
DOB =
09/10/2001
New Enquiry
Date =
29/09/2011
Should not
accept
empty field
and display
an error
message
Student First
Name =
MarthaMartha
MarthaMa
Last Name =
Garba
New Enquiry
DOB =
09/10/2001
New Enquiry
Date =
29/09/2011
Accept all the
data and
saves the new
enquiry into
the enquiry
table in the
Student First
Name =
MarthaMarthaM
arthaMa
Last Name =
Garba
New Enquiry
DOB =
09/10/2001
New Enquiry
Date =
29/09/2011
Accept all the
data and saves
the new
enquiry into the
enquiry table in
Student First
Name =
MarthaMarthaM
arthaMar
Last Name =
Garba
New Enquiry
DOB =
09/10/2001
New Enquiry
Date =
29/09/2011
Does not
accept all
empty fields
and displays an
Normal
Testing
= Figure
3.123
and
3.124.
Boundar
y
Testing
= Figure
3.125
and
3.126.
Erroneo
us
Testing
= Figure
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
188 | P a g e
SQL server. table in the
SQL server.
saying that
the first
name is too
long.
SQL server. the SQL server.
error message. 3.127.
3.3.
3
(Enq
uiry
For
m)
Check
that Last
Name is
no longer
than 20
character
s long.
Student First
Name =
Martha
Last Name =
Garba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should
accept all the
data and
save the new
enquiry into
the enquiry
table in the
SQL server.
Student First
Name =
Martha
Last Name =
GarbaGarba
GarbaGarba
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should
accept all the
data and
save the new
enquiry into
the enquiry
Student First
Name =
Martha
Last Name =
GarbaGarba
GarbaGarba
G
Student DOB
=
09/10/2001
Date Joined
=
29/09/2011
Should not
accept
empty field
and display
an error
message
Student First
Name =
Martha
Last Name =
Garba
Student DOB
= 09/10/2001
Date Joined =
29/09/2011
Accept all the
data and
saves the new
enquiry into
the enquiry
table in the
SQL server.
Student First
Name = Martha
Last Name =
GarbaGarbaGar
baGarbaGarba
Student DOB =
09/10/2001
Date Joined =
29/09/2011
Accept all the
data and saves
the new
enquiry into the
enquiry table in
the SQL server.
Student First
Name = Martha
Last Name =
GarbaGarbaGar
baGarbaGarba
G
Student DOB =
09/10/2001
Date Joined =
29/09/2011
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.128
and
3.129.
Boundar
y
Testing
= Figure
3.130
and
3.131.
Erroneo
us
Testing
= Figure
3.132.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
189 | P a g e
table in the
SQL server.
saying that
the last
name is too
long.
3.4.
1
(Cou
rse
For
m)
Check
that
Course
Name,
Course
Date
Started,
Descripti
on,
Recomm
ended
For,
Course
Prerequis
ites is
not
empty.
Course Name
= Advanced
Computing
Course Date
Started =
10/11/2011
Description
= Teaches
Students
advanced
information
and skills on
computing.
Recommend
ed For =
Students
who know
about
computing.
Course
Prerequisites
Course Name
= Advanced
Computing
Course Date
Started =
10/11/2011
Recommend
ed For =
Students
who know
about
computing.
Course
Prerequisites
= A-Level
Should not
accept
empty field
and display
an error
All fields
empty.
Should not
accept
empty field
and display
an error
message.
Course Name
= Advanced
Computing
Course Date
Started =
10/11/2011
Description =
Teaches
Students
advanced
information
and skills on
computing.
Recommende
d For =
Students who
know about
computing.
Course
Prerequisites
= A-Level
Course Name =
Advanced
Computing
Course Date
Started =
10/11/2011
Recommended
For = Students
who know
about
computing.
Course
Prerequisites =
A-Level
Does not
accept empty
field and
displays an
error message.
All fields
empty.
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.133
and
3.134.
Boundar
y
Testing
= Figure
3.135.
Erroneo
us
Testing
= Figure
3.136.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
190 | P a g e
= A-Level
Should
accept all the
data and
save the new
course into
the course
table in the
SQL server.
message.
Accept all the
data and
saves the new
course into
the course
table in the
SQL server.
3.4.
2
(Cou
rses
For
m)
Check
that
Course
Name is
no longer
than 20
character
s long.
Course Name
= Advanced
Computing
Course Date
Started =
10/11/2011
Description
= Teaches
Students
advanced
information
and skills on
computing.
Recommend
ed For =
Course Name
= Advanced
Computing 1
Course Date
Started =
10/11/2011
Description
= Teaches
Students
advanced
information
and skills on
computing.
Recommend
ed For =
Course Name
= Advanced
Computing
11
Course Date
Started =
10/11/2011
Description
= Teaches
Students
advanced
information
and skills on
computing.
Recommend
Course Name
= Advanced
Computing
Course Date
Started =
10/11/2011
Description =
Teaches
Students
advanced
information
and skills on
computing.
Recommende
d For =
Course Name =
Advanced
Computing 1
Course Date
Started =
10/11/2011
Description =
Teaches
Students
advanced
information and
skills on
computing.
Recommended
For = Students
Course Name =
Advanced
Computing 11
Course Date
Started =
10/11/2011
Description =
Teaches
Students
advanced
information and
skills on
computing.
Recommended
For = Students
Normal
Testing
= Figure
3.137
and
3.138.
Boundar
y
Testing
= Figure
3.139
and
3.140.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
191 | P a g e
Students
who know
about
computing.
Course
Prerequisites
= A-Level
Should
accept all the
data and
save the new
course into
the course
table in the
SQL server.
Students
who know
about
computing.
Course
Prerequisites
= A-Level
Should
accept all the
data and
save the new
course into
the course
table in the
SQL server.
ed For =
Students
who know
about
computing.
Course
Prerequisites
= A-Level
Should not
accept
empty field
and display
an error
message
saying that
the course
name is too
long.
Students who
know about
computing.
Course
Prerequisites
= A-Level
Accept all the
data and
saves the new
course into
the course
table in the
SQL server.
who know
about
computing.
Course
Prerequisites =
A-Level
Accept all the
data and saves
the new course
into the course
table in the
SQL server.
who know
about
computing.
Course
Prerequisites =
A-Level
Does not
accept all
empty fields
and displays an
error message.
Erroneo
us
Testing
= Figure
3.141.
3.5.
1
(Use
r
For
m)
Check
that
Usernam
e,
Password
, Email,
Repeated
Username =
User
Password =
Password
Email =
Username =
User
Password =
Password
Repeated
Password =
All fields
empty.
Should not
accept
empty field
Username =
User
Password =
Password
Email =
Username =
User
Password =
Password
Repeated
Password =
All fields
empty.
Does not
accept all
empty fields
Normal
Testing
= Figure
3.142
and
3.143.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
192 | P a g e
Password
is not
empty.
om
Repeated
Password =
Password
Should
accept all the
data and
save the new
user into the
user table in
the SQL
server.
Password
Should not
accept
empty field
and display
an error
message.
and display
an error
message.
m
Repeated
Password =
Password
Accept all the
data and
saves the new
user into the
user table in
the SQL
server.
Password
Does not
accept empty
field and
displays an
error message.
and displays an
error message.
Boundar
y
Testing
= Figure
3.144.
Erroneo
us
Testing
= Figure
3.145.
3.5.
2
(Use
r
For
m)
Check
that user
password
and user
repeated
password
is no
longer
than 20
character
s long.
Username =
User
Password =
Password
Email =
om
Repeated
Password =
Password
Username =
User
Password =
PasswordPas
swordPass
Email =
om
Repeated
Password =
Username =
User
Password =
PasswordPas
swordPassw
Email =
om
Repeated
Password =
Username =
User
Password =
Password
Email =
om
Repeated
Password =
Password
Username =
User
Password =
PasswordPassw
ordPass
Email =
m
Repeated
Password =
Username =
User
Password =
PasswordPassw
ordPassw
Email =
m
Repeated
Password =
Normal
Testing
= Figure
3.146
and
3.147.
Boundar
y
Testing
= Figure
3.148
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
193 | P a g e
Should
accept all the
data and
save the new
user into the
user table in
the SQL
server.
Password
Should
accept all the
data and
save the new
user into the
user table in
the SQL
server.
Password
Should not
accept
empty field
and display
an error
message
saying that
the password
is too long.
Accept all the
data and
saves the new
user into the
user table in
the SQL
server.
Password
Accept all the
data and saves
the new user
into the user
table in the
SQL server.
Password
Does not
accept all
empty fields
and displays an
error message.
and
3.149.
Erroneo
us
Testing
= Figure
3.150.
3.5.
3
(Use
r
For
m)
Check
the user
password
matches
the user
repeated
password
.
Username =
User
Password =
Password
Email =
om
Repeated
Password =
Password
Should
Username =
User
Password =
Password
Email =
om
Repeated
Password =
Password2
Should not
All fields
empty.
Should not
accept
empty field
and display
an error
message.
Username =
User
Password =
Password
Email =
m
Repeated
Password =
Password
Accept all the
Username =
User
Password =
Password
Email =
Repeated
Password =
Password2
Does not
accept different
All fields
empty.
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.151
and
3.152.
Boundar
y
Testing
= Figure
3.153.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
194 | P a g e
accept all the
data and
save the new
user into the
user table in
the SQL
server.
accept
different
passwords
entered and
display an
error
message.
data and
saves the new
user into the
user table in
the SQL
server.
passwords
entered and
display an error
message.
Erroneo
us
Testing
= Figure
3.154.
3.5.
4
(Use
r
For
m)
Check
that
usernam
e is no
longer
than 20
character
s long.
Username =
User
Password =
Password
Email =
om
Repeated
Password =
Password
Should
accept all the
data and
save the new
user into the
user table in
Username =
UserUserUse
r UserUser
Password =
Password
Email =
om
Repeated
Password =
Password
Should
accept all the
data and
save the new
user into the
Username =
UserUserUse
r UserUserU
Password =
Password
Email =
om
Repeated
Password =
Password
Should not
accept
empty field
and display
an error
Username =
User
Password =
Password
Email =
m
Repeated
Password =
Password
Accept all the
data and
saves the new
user into the
user table in
the SQL
Username =
UserUserUserU
serUser
Password =
Password
Email =
Repeated
Password =
Password
Accept all the
data and saves
the new user
into the user
table in the
Username =
UserUserUserU
serUserU
Password =
Password
Email =
Repeated
Password =
Password
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.155
and
3.156.
Boundar
y
Testing
= Figure
3.157
and
3.158.
Erroneo
us
Testing
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
195 | P a g e
the SQL
server.
user table in
the SQL
server.
message
saying that
the
username is
too long.
server. SQL server.
= Figure
3.159.
3.5.
5
(Use
r
For
m)
Check
that user
email is
no longer
than 50
character
s long.
Username =
User
Password =
Password
Email =
Repeated
Password =
Password
Should
accept all the
data and
save the new
user into the
user table in
the SQL
server.
Username =
User
Password =
Password
Email =
email@email
.comemail@
email.come
omemail
Repeated
Password =
Password
Should
accept all the
data and
save the new
user into the
user table in
Username =
User
Password =
Password
Email =
email@email
.comemail@
email.come
omemail@
Repeated
Password =
Password
Should not
accept
empty field
and display
an error
message
Username =
User
Password =
Password
Email =
om
Repeated
Password =
Password
Accept all the
data and
saves the new
user into the
user table in
the SQL
server.
Username =
User
Password =
Password
Email =
memail@email.
comemail@ema
il.comemail
Repeated
Password =
Password
Accept all the
data and saves
the new user
into the user
table in the
SQL server.
Username =
User
Password =
Password
Email =
memail@email.
comemail@ema
il.comemail@
Repeated
Password =
Password
Does not
accept all
empty fields
and displays an
error message.
Normal
Testing
= Figure
3.160
and
3.161.
Boundar
y
Testing
= Figure
3.162
and
3.163.
Erroneo
us
Testing
= Figure
3.164.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
196 | P a g e
the SQL
server.
saying that
the email is
too long.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
201 | P a g e
Figure 3.7
Figure 3.8
Yes is pressed, result of
this showed in Figure
3.7.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
202 | P a g e
Figure 3.9
Figure 3.10
Yes is pressed, result of
this showed in Figure
3.9.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
203 | P a g e
Figure 3.11
Figure 3.12
Yes is pressed, result of
this showed in Figure
3.12.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
204 | P a g e
Figure 3.13
Figure 3.14
Yes is pressed, result of
this showed in Figure
3.13.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
205 | P a g e
Figure 3.15
Figure 3.16
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
206 | P a g e
Figure 3.17
Figure 3.18
Yes is pressed, result of
this showed in Figure
3.17.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
207 | P a g e
Figure 3.19
Figure 3.20
Yes is pressed, result of
this showed in Figure
3.19.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
208 | P a g e
Figure 3.21
Figure 3.22
Yes is pressed, result of
this showed in Figure
3.23.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
209 | P a g e
Figure 3.23
Figure 3.24
Yes is pressed, result of
this showed in Figure
3.25.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
210 | P a g e
Figure 3.25
Figure 3.26
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
211 | P a g e
Figure 3.27
Figure 3.28
Yes is pressed, result of
this showed in Figure
3.28.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
212 | P a g e
Figure 3.29
Figure 3.30
Yes is pressed, result of
this showed in Figure
3.30.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
213 | P a g e
Figure 3.31
Figure 3.32
Yes is pressed, result of
this showed in Figure
3.33.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
214 | P a g e
Figure 3.33
Figure 3.34
Yes is pressed, result of
this showed in Figure
3.35.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
215 | P a g e
Figure 3.36
Figure 3.36
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
216 | P a g e
Figure 3.37
Figure 3.38
Yes is pressed, result of
this showed in Figure
3.38.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
217 | P a g e
Figure 3.39
Figure 3.40
Yes is pressed, result of
this showed in Figure
3.40.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
218 | P a g e
Figure 3.41
Figure 3.42
Yes is pressed, result of
this showed in Figure
3.43.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
219 | P a g e
Figure 3.43
Figure 3.44
Yes is pressed, result of
this showed in Figure
3.45.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
221 | P a g e
Figure 3.46
Figure 3.47
Yes is pressed, result of
this showed in Figure
3.48.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
222 | P a g e
Figure 3.48
Figure 3.49
Yes is pressed, result of
this showed in Figure
3.50.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
224 | P a g e
Figure 3.51
Figure 3.52
Yes is pressed, result of
this showed in Figure
3.53.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
225 | P a g e
Figure 3.53
Figure 3.54
Yes is pressed, result of
this showed in Figure
3.55.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
226 | P a g e
Figure 3.55
Figure 3.56
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
227 | P a g e
Figure 3.57
Figure 3.58
Yes is pressed, result of
this showed in Figure
3.58.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
228 | P a g e
Figure 3.59
Yes is pressed, result of
this showed in Figure
3.60.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
230 | P a g e
Figure 3.61
Figure 3.62
Yes is pressed, result of
this showed in Figure
3.63.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
231 | P a g e
Figure 3.63
Figure 3.64
Yes is pressed, result of
this showed in Figure
3.65.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
232 | P a g e
Figure 3.65
Figure 3.66
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
233 | P a g e
Figure 3.67
Figure 3.68
Yes is pressed, result of
this showed in Figure
3.68.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
234 | P a g e
Figure 3.69
Figure 3.70
Yes is pressed, result of
this showed in Figure
3.70.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
235 | P a g e
Figure 3.71
Figure 3.72
Yes is pressed, result of
this showed in Figure
3.73.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
236 | P a g e
Figure 3.73
Figure 3.74
Yes is pressed, result of
this showed in Figure
3.75.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
237 | P a g e
Figure 3.75
Figure 3.76
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
238 | P a g e
Figure 3.77
Yes is pressed, result of
this showed in Figure
3.78.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
239 | P a g e
Figure 3.78
Figure 3.79
Yes is pressed, result of
this showed in Figure
3.79.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
241 | P a g e
Figure 3.81
Figure 3.82
Yes is pressed, result of
this showed in Figure
3.83.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
242 | P a g e
Figure 3.83
Figure 3.84
Yes is pressed, result of
this showed in Figure
3.85.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
245 | P a g e
Figure 3.87
Figure 3.88
Yes is pressed, result of
this showed in Figure
3.88.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
246 | P a g e
Figure 3.89
Figure 3.90
Yes is pressed, result of
this showed in Figure
3.90.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
248 | P a g e
Figure 3.92
Figure 3.93
Yes is pressed, result of
this showed in Figure
3.93.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
249 | P a g e
Figure 3.94
Figure 3.95
Yes is pressed, result of
this showed in Figure
3.95.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
251 | P a g e
Figure 3.97
Figure 3.98
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
252 | P a g e
Figure 3.99
Figure 3.100
Yes is pressed, result of
this showed in Figure
3.101.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
253 | P a g e
Figure 3.101
Figure 3.102
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
254 | P a g e
Figure 3.103
Figure 3.104
Yes is
pressed,
result of
this
showed
in Figure
3.106.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
255 | P a g e
Figure 3.105
Figure 3.106
Yes is
pressed,
result of
this
showed
in Figure
3.108.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
256 | P a g e
Figure 3.107
Figure 3.108
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
257 | P a g e
Figure 3.109
Figure 3.110
Yes is
pressed,
result of
this
showed
in Figure
3.110.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
258 | P a g e
Figure 3.111
Figure 3.112
Yes is
pressed,
result of
this
showed
in Figure
3.112.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
259 | P a g e
Figure 3.113
Figure 3.114
Yes is
pressed,
result of
this
showed
in Figure
3.115.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
260 | P a g e
Figure 3.115
Figure 3.116
Yes is
pressed,
result of
this
showed
in Figure
3.117.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
261 | P a g e
Figure 3.117
Figure 3.118
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
262 | P a g e
Figure 3.119
Figure 3.120
Yes is
pressed,
result of
this
showed
in Figure
3.120.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
263 | P a g e
Figure 3.121
Figure 3.122
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
264 | P a g e
Figure 3.123
Figure 3.124
Yes is
pressed,
result of
this
showed
in Figure
3.124.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
265 | P a g e
Figure 3.125
Figure 3.126
Yes is
presse
d,
result
of this
showe
d in
Figure
3.126.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
266 | P a g e
Figure 3.127
Figure 3.128
Yes is
pressed,
result of
this
showed
in Figure
3.129.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
267 | P a g e
Figure 3.129
Figure 3.130
Yes is
pressed,
result of
this
showed
in Figure
3.131.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
268 | P a g e
Figure 3.131
Figure 3.132
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
269 | P a g e
Figure 3.133
Figure 3.134
Yes is
pressed,
result of
this
showed
in Figure
3.134.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
270 | P a g e
Figure 3.135
Figure 3.136
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
271 | P a g e
Figure 3.137
Figure 3.138
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
272 | P a g e
Figure 3.139
Figure 3.140
Yes is
pressed,
result of
this
showed
in Figure
3.140.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
273 | P a g e
Figure 3.141
Figure 3.142
Yes is
pressed,
result of
this
showed
in Figure
3.143.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
274 | P a g e
Figure 3.143
Figure 3.144
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
275 | P a g e
Figure 3.145
Figure 3.146
Yes is
pressed,
result of
this
showed
in Figure
3.146.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
276 | P a g e
Figure 3.147
Figure 3.148
Yes is
pressed,
result of
this
showed
in Figure
3.148.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
277 | P a g e
Figure 3.149
Figure 3.150
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
278 | P a g e
Figure 3.151
Figure 3.152
Yes is
pressed,
result of
this
showed
in Figure
3.152.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
279 | P a g e
Figure 3.153
Figure 3.154
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
280 | P a g e
Figure 3.155
Figure 3.156
Yes is
pressed,
result of
this
showed
in Figure
3.156.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
281 | P a g e
Figure 3.157
Figure 3.158
Yes is
pressed,
result of
this
showed
in Figure
3.158.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
282 | P a g e
Figure 3.159
Figure 3.160
Yes is
pressed,
result of
this
showed
in Figure
3.161.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
283 | P a g e
Figure 3.161
Figure 3.162
Yes is
pressed,
result of
this
showed
in Figure
3.163.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
284 | P a g e
Figure 3.163
Figure 3.164
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
285 | P a g e
Black Box Testing
Test Series
Description Test Data Expected Result
And Actual Test
Data
Actual Result
Evidence
4.1 Testing
Search form when user enters a
criteria for the report
with Sibling checked
Age: between 8
and 15 County: Berkshire Sibling: only sibling
Enrolled/enquired: enrolled
Should
show all the records
satisfying criteria
stated.
Shows all
the records satisfying
criteria stated.
Figure 4.1
(SQL Server) and Figure
4.2 (Program)
4.2 Testing Search form
when user enters a criteria for
the report with Sibling
unchecked
Age: between 8 and 15
County: Berkshire Sibling: no means all records
Enrolled
Should show all
the records satisfying
criteria stated.
Shows all the
records satisfying criteria
stated.
Figure 4.3 (SQL
Server) And Figure 4.4
(Program).
Figure 4.1
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
288 | P a g e
System Maintenance
System Overview
My program is a customer database interface with login in access. Users can be
added when logged in by the administrator only. The administrator can also view
and delete users. Other users can access the database but cannot view other
user login nor create or delete other user logins.
The main purpose of the program is to allow users to view and edit different
customers and LogicOut related tables through a more user friendly interface
than accessing the database directly. Tables that are in the database include:
- Parent
- Student
- Employee Login
- Courses
- Enrolled
- Unenrolled
- Enquiry
These tables can have data added and deleted to/from them and can also be
viewed through the program. The program also includes a search feature in
which a search criteria can be entered and used to search through the database.
The result of the search can then be printed if required.
Environment
The solution uses Visual Studio 2015 and within that I used C# as the
programming language. The compiled exe was done using this environment. The
database is stored on MS SQL Server and where the data is stored and the data
is retrieved by the program to view, delete and add data.
System Flowchart
See original flowchart under System Flow Diagram in Design.
A Sample Of Detailed Algorithm Design
As no change has been made to algorithm created in Design, please refer to this
in Design section on pg 57
Procedure And Variable Lists/Description For Programs OR List Of
Package Item Developed
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
289 | P a g e
Parent
Methods
Name Description
Parameter Return Type
Scope Variables
AddParent
Connects to the
SQL server to add new
parent data that
is inputted through
the program.
MothersTitle, MothersForename,
MothersLastName, FathersTitle, ContactEmail,
TelephoneNumber, MothersMobileNum
ber, FathersMobileNumber,
MothersWorkNumber,
FathersWorkNumber, AddressLine1, AddressLine2,
CityTown, County, Postcode,
FathersForename, FathersLastName.
Boolean Public MothersTitle, MothersForenam
e, MothersLastName, FathersTitle,
ContactEmail, TelephoneNumbe
r, MothersMobileNumber,
FathersMobileNumber,
MothersWorkNumber, FathersWorkNum
ber, AddressLine1,
AddressLine2, CityTown, County,
Postcode, FathersForename
, FathersLastName, sucess,
SQLstring, command.
PrimaryKey
Used to generate
a unique Parent ID when
a new parent is
added to the database
.
None String Private ParentId, strParentId,
intParentId.
ViewPar
ents
Used to
retrieve Parent
data from the database
.
None DataTa
ble
Public dtParents,
adpater.
ViewPar Used to None DataTa Public dtParents,
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
290 | P a g e
entInAd
dNewStudent
retrieve
Parent data from
database to be
viewed in the Add New
Student form.
ble adpater.
ViewParentInAd
dNewEnquiry
Used to retrieve
Parent data from
database to be
viewed in the Add New
Enquiry form.
None DataTable
Public dtParents, adapter.
DeleteParent
Used to delete a
parent record selected
by the user
through the program.
ParentID Void Public SQLstring, command.
DeleteDependenci
es
When a parent
record is deleted,
this method deletes
any related
data linked to
the parent record
that has been
selected by the user to
parentID Void Private dtStudent, SQLstring,
adpater, delStudent,
delEnquiry.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
291 | P a g e
be
deleted.
Variables
Variable Name
Description Data Type Scope Location
connectio
n
Used to
establish a connection to the SQL server.
SqlConnection Public Parent
success Used to check if the connection
to the database was successful.
Boolean Private AddParent
SQLstring Used to store the data that is
to be sent to the parent table in the
database.
String Private AddParent
command Send the data
in the SQLstring to the database
to be executed by the SQL Server.
SqlCommand Private AddParent
SQLstring Used to stored SQL command
that is to be sent to the SQL
server.
String Private PrimaryKey
command Send the data
in the SQLstring to the database to be executed
by the SQL Server.
SqlCommand Private PrimaryKey
ParentId An object form of ParentID.
Object Private PrimaryKey
strParentId
Used to store the full
parentID.
String Private PrimaryKey
intParentI
d
Used to store
the numerical form of ParentID.
Integer Private PrimaryKey
dtParents Used to store data from the
SQL database in tabular form
DataTable Private ViewParents
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
292 | P a g e
for the View
Parents form.
adapter Contains a set
of commands and a database connection that
can be used to fill the data
table(dtParents) with parent data from the
SQL server.
SqlDataAdapter Private ViewParents
dtParents Used to store
data from the SQL database
in tabular form for the Add New Student
form.
DataTable Private ViewParentsInAd
dNewStudent
adpater Contains a set
of commands and a database
connection that can be used to fill the data
table(dtParents) with parent
data from the SQL server.
SqlDataAdapter Private ViewParentsInAd
dNewStudent
dtParents Used to store data from the SQL database
in tabular form for the Add
New Enquiry form.
DataTable Private ViewParentsInAddNewEnquiry
adpater Contains a set of commands and a database
connection that can be used to
fill the data table(dtParents) with parent
data from the SQL server.
SqlDataAdapter Private ViewParentsInAddNewEnquiry
SQLstring Contains a string of SQL
commands to be sent to the database.
SQLstring Private deleteParent
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
293 | P a g e
command Send the data
in the SQLstring to the database to be executed
by the SQL Server.
SqlCommand Private deleteParent
dtStudents
Used to store data from the
SQL database in tabular form.
DataTable Private DeleteDependencies
SQLString Contains a string of SQL commands to
be sent to the database.
String Private DeleteDependencies
adapter Contains a set of commands
and a database connection that can be used to
fill the data table(dtParents
) with parent data from the SQL server.
SqlDataAdapter Private DeleteDependencies
delStudent
Creates a new instance of
student and in this case, the
student to be deleted.
Student Private DeleteDependencies
delEnquiry
Creates a new instances of enquiry and in
this case, the enquiry to be
deleted.
Enquiry Private DeleteDependencies.
Student
Methods
Name Descriptio
n
Parameter Return
Type
Scope Variables
AddStud
ent
Connects to
the SQL server to
add new student data that is
inputted
studentsTitle,
studentsForename,
studentsLastName, studentDOB,
parentID,
Boolean Public studentsTitle,
studentsForename,
studentsLastName, studentDOB, parentID,
studentEmail,
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
294 | P a g e
through the
program.
studentEmail,
learningDisabilities,allergies, healthCondition
s, dateJoined.
learningDisabilitie
s,allergies, healthConditions, dateJoined,
success, SQLString,
command.
Primary
Key
Used to
generate a unique Student ID
when a new student is
added to the database.
None String Private StudentId,
strStudentId, intStudentid.
ViewStudents
Used to retrieve
student data from
the database.
None DataTable
Public dtStudents, adapter.
ViewStudentInEnrollmen
t
Used to retrieve Student
data from database to
be viewed when trying to enrol a
student onto a
course.
None DataTable
Public dtStudent, adpater.
SaveEnr
olment
Used to
save enrolment data of a
student into the SQL
database.
Studentid,
CourseId, comments.
Bool Public success,
SQLstring, command.
ViewEnr
oled
Used to
view enrolled student in
the Enrollment
Table form.
None DataTa
ble
Public dtEnrolled,
adapter.
ViewNon
Enrolled
Used to
view non-enrolled students in
None DataTa
ble
Public dtNonEnrolled,
adapter.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
295 | P a g e
the
Enrollment Table form.
deteteEnrollment
Used to delete an enrolment
record from the
Enrollment Table in the SQL
database.
studentID Void Public SQLString, command.
deteteNo
nEnrollment
Used to
delete an enrolment
record from the Enrollment
Table in the SQL
database.
EnquiryID Void Public SQLstring,
command.
Variables
Variable Name
Description Data Type Scope Location
connectio
n
Used to
establish a connection to the SQL server.
SqlConnection Public Student
success Used to check if the connection
to the database was successful.
Boolean Private AddStudent
SQLstring Used to store the data that is
to be sent to the student table in the
database.
String Private AddStudent
command Send the data
in the SQLstring to the database
to be executed by the SQL Server.
SqlCommand Private AddStudent
SQLstring Used to stored SQL command
that is to be sent to the SQL
server.
String Private PrimaryKey
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
296 | P a g e
command Send the data
in the SQLstring to the database to be executed
by the SQL Server.
SqlCommand Private PrimaryKey
StudentId An object form of StudentID.
Object Private PrimaryKey
strStudentId
Used to store the full
StudentID.
String Private PrimaryKey
intStuden
tId
Used to store
the numerical form of StudentID.
Integer Private PrimaryKey
dtStudents
Used to store data from the
SQL database in tabular form
for the View Students form.
DataTable Private ViewStudents
adapter Contains a set of commands and a database
connection that can be used to
fill the data table(dtStudentds) with
students data from the SQL
server.
SqlDataAdapter Private ViewStudents
dtStudent Used to store
data from the SQL database in tabular form
for the View Enrollment
form.
DataTable Private ViewStudentsInE
nrollment
adpater Contains a set
of commands and a database connection that
can be used to fill the data
table(dtStudents) with student data from the
SQL server.
SqlDataAdapter Private ViewStudentsInE
nrollment
success Used to check if
the connection
Boolean Private SaveEnrolment
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
297 | P a g e
to the database
was successful.
SQLstring Used to store
the data that is to be sent to the Enrollment
table in the database.
String Private SaveEnrolment
command Send the data in the SQLstring
to the database to be executed by the SQL
Server.
SqlCommand Private SaveEnrolment
SQLstring Contains a
string of SQL commands to
be sent to the database.
SQLstring Private deleteStudent
command Send the data in the SQLstring to the database
to be executed by the SQL
Server.
SqlCommand Private deleteStudent
dtEnrolled Used to store
data from the SQL database in tabular form
for the Enrollment
Table Form.
DataTable Private ViewEnrolled
adapter Contains a set
of commands and a database connection that
can be used to fill the data
table(dtEnrolled) with Enrolled data from the
SQL server.
SqlDataAdpater Privated ViewEnrolled
dtNonEnr
olled
Used to store
data from the SQL database
in tabular form for the Enrollment
Table Form.
DataTable Private ViewNonEnrolled
adapter Contains a set
of commands
SqlDataAdpater Privated ViewNonEnrolled
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
298 | P a g e
and a database
connection that can be used to fill the data
table(dtEnrolled) with Enrolled
data from the SQL server.
SQLstring Contains a string of SQL commands to
be sent to the database.
SQLstring Private deleteEnrollment
command Send the data in the SQLstring
to the database to be executed by the SQL
Server.
SqlCommand Private deleteEnrollment
SQLstring Contains a
string of SQL commands to
be sent to the database.
SQLstring Private deleteNonEnrollm
ent
command Send the data in the SQLstring to the database
to be executed by the SQL
Server.
SqlCommand Private deleteNonEnrollment
Users
Methods
Name Descriptio
n
Parameter Return
Type
Scope Variables
Login Used to
retrieve data from
the database to check
against data entered into
the login page to check if
valid login.
Username,
Password.
Integer Public SQLstring,
command, counter.
AdminOr
Not
Checks if
the user
Username Boolean Public SQLstring,
command.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
299 | P a g e
that has
logged is admin or not.
AddUser Connects to the SQL
server to add new
user data that is inputted
through the program.
username, password,
email, accountCreatio
nDate, access.
Void Public SQLstring, command,
username, password, email,
accountCreationDate, access.
ViewUser
Used to retrieve
User data from the database.
None DataTable
Public dtUser, adapter.
deleteUser
Deletes selected
user from the
database.
username DataTable
Public SQLstring, command.
Variables
Variable Name
Description Data Type Scope Location
connection
Used to establish a
connection to the SQL server.
SqlConnection Public User
counter Used to store a counter value that can be
returned by the method.
Boolean Private AddUser
SQLstring Used to store the data that is
to be sent to the user table in the
database.
String Private AddUser
command Send the data
in the SQLstring to the database
to be executed by the SQL Server.
SqlCommand Private AddUser
SQLstring Used to stored SQL command
String Private AdminOrNot
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
300 | P a g e
that is to be
sent to the SQL server.
command Send the data in the SQLstring to the database
to be executed by the SQL
Server.
SqlCommand Private AdminOrNot
Admin Used to store if
the user is admin; true meaning the
user is admin.
Boolean Private AdminOrNot
SQLstring Used to stored
SQL command that is to be
sent to the SQL server.
String Private AddUser
command Send the data in the SQLstring to the database
to be executed by the SQL
Server.
SqlCommand Private AddUser
SQLstring Used to stored
SQL command that is to be sent to the SQL
server.
String Private deleteUser
command Send the data
in the SQLstring to the database
to be executed by the SQL Server.
SqlCommand Private deleteUser
dtUser Used to store data from the
SQL database in tabular form
for the User form.
DataTable Private ViewUsers
adapter Contains a set of commands and a database
connection that can be used to
fill the data table(dtUser) with user data
from the SQL
SqlDataAdapter Private ViewUsers
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
301 | P a g e
server.
Enquiry
Methods
Name Description
Parameter Return Type
Scope Variables
AddEnquiry
Connects to the SQL
server to add new student
data that is inputted
through the program.
FirstName, LastName,
DOB, ParentID, CourseRecommend,
EnquiryDate.
String Public FirstName, LastName, DOB,
ParentID, CourseRecommend, EnquiryDate,
SQLstring, command,
enquiryID.
PrimaryKey
Used to generate a unique User
ID when a new enquiry
is added to the database.
None String Private SQLstring, command, EnquiryID,
strEnquiry, intEnquiryID.
ViewEnquires
Used to retrieve
Enquiry data from
the database to be used in a
form to view
enquiries that are in the
database.
None DataTable
Public dtUsers, adapter.
deteteEn
quiry
Used to
delete an selected
enquiry from the database.
EnquiryID Void Public nonEnrolled,
SQLString, command.
AddCourseEnquir
ed
Used to add the
enquired course/s to
the enquiry and stored in the
Non_Enrolled table in
enquiryId, CourseID.
Void Public SQLstring, command,
enquiryID.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
302 | P a g e
the
database.
Variables
Variable Name
Description Data Type Scope Location
connectio
n
Used to
establish a connection to the SQL server.
SqlConnection Public Enquiry
EnquiryID This is used to store the
EnquiryID and comes from the
Primary Key method.
String Private AddEnquiry
SQLstring Used to store the data that is to be sent to
the enquiry table in the
database.
String Private AddEnquiry
command Send the data
in the SQLstring to the database to be executed
by the SQL Server.
SqlCommand Private AddEnquiry
SQLstring Used to stored SQL command
that is to be sent to the SQL server.
String Private PrimaryKey
command Send the data in the SQLstring
to the database to be executed
by the SQL Server.
SqlCommand Private PrimaryKey
EnquiryID An object form of EnquiryID and later on in
the method, has an
enquiryID stored into it.
Object Private PrimaryKey
strEnquiryID
Used to store the full EnquiryID.
String Private PrimaryKey
intEnquiry Used to store Integer Private PrimaryKey
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
303 | P a g e
ID the numerical
form of EnquiryID.
nonEnrolled
Used to store a new instance of Student.
Student Private deleteEnquiry
SQLstring Used to stored SQL command
that is to be sent to the SQL
server.
String Private deleteEnquiry
command Send the data
in the SQLstring to the database to be executed
by the SQL Server.
SQLcommand Private deleteEnquiry
dtEnquiries
Used to store data from the
SQL database in tabular form for the View
Enquires form.
DataTable Private ViewEnquiries
adapter Contains a set
of commands and a database
connection that can be used to fill the data
table(dtEnquiries) with enquires
data from the SQL server.
SqlDataAdapter Private ViewEnquires
SQLstring Used to stored SQL command that is to be
sent to the SQL server.
String Private addCourseEnquired
command Send the data in the SQLstring
to the database to be executed by the SQL
Server.
SQLcommand Private addCourseEnquired
enquiryID Stores the
enquiry ID which is called
from the PrimaryKey method.
String Private addCourseEnquir
ed
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
304 | P a g e
Courses
Methods
Name Description
Parameter Return Type
Scope Variables
AddCourse
Connects to the SQL
server to add new student
data that is inputted
through the program.
CourseName, Started,
Description, RecommendedFor,
Prerequisites.
bool Public CourseName, Started,
Description, RecommendedFor, Prerequisites,
SQLstring, command,
success.
PrimaryKey
Used to generate a unique User
ID when a new courses
is added to the database.
None String Private SQLstring, command, CourseID,
strCourse, intCourseID.
ViewCourses
Used to retrieve
Course data from the
database to be used in a form to
view courses that
are in the database.
None DataTable
Public dtCourses, adapter.
deteteCourse
Used to delete an selected
course from the
database.
CourseID Void Public SQLString, command.
ViewCou
rseInEnrollment
Used to
retrieve course data from the
database in tabular form
to be viewed in the
enrolment form.
None DataTa
ble
Public dtCourses,
adapter.
ViewCou Used to None DataTa Public dtAddNewEnquiry
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
305 | P a g e
rseInNo
nEnrolled
retrieve
course data from the database in
tabular form to be
viewed in the non-enrolment
form.
ble EnquiredCourse,
adapter.
Variables
Variable
Name
Description Data Type Scope Location
connectio
n
Used to
establish a connection to
the SQL server.
SqlConnection Public Courses
CoursesI
D
This is used to
store the CoursesID and comes from the
Primary Key method.
String Private AddCourses
SQLstring Used to store the data that is
to be sent to the courses table in the
database.
String Private AddCourses
command Send the data
in the SQLstring to the database
to be executed by the SQL Server.
SqlCommand Private AddCourses
SQLstring Used to stored SQL command
that is to be sent to the SQL
server.
String Private PrimaryKey
command Send the data
in the SQLstring to the database to be executed
by the SQL Server.
SqlCommand Private PrimaryKey
CourseID An object form of CourseID
and later on in
Object Private PrimaryKey
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
306 | P a g e
the method,
has an CourseID stored into it.
stCourseID
Used to store the full
CourseID.
String Private PrimaryKey
intCourse
ID
Used to store
the numerical form of
CourseID.
Integer Private PrimaryKey
SQLstring Used to stored
SQL command that is to be sent to the SQL
server.
String Private deleteCourse
command Send the data
in the SQLstring to the database
to be executed by the SQL Server.
SQLcommand Private deleteCourse
dtCourses Used to store data from the
SQL database in tabular form
for the View Courses form.
DataTable Private ViewCourses
adapter Contains a set of commands and a database
connection that can be used to
fill the data table(dtCourses) with courses
data from the SQL server.
SqlDataAdapter Private ViewCourses
dtCourses Used to store data from the
SQL database in tabular form for the View
Enrollment form.
String Private ViewCourseInEnrollment
adapter Contains a set of commands
and a database connection that can be used to
fill the data
SqlDataAdpater Private ViewCourseInEnrollment
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
307 | P a g e
table(dtCourses
) with courses data from the SQL server.
dtAddNewEnquiryEn
quiredCourse
Used to store data from the
SQL database in tabular form
for the View Non-Enrollment form.
String Private ViewCourseInNonEnrollment
adapter Contains a set of commands
and a database connection that
can be used to fill the data table(dtCourses
) with courses data from the
SQL server.
SqlDataAdpater Private ViewCourseInNonEnrollment
New Search
Methods
Name Description
Parameter Return Type
Scope Variables
CleargrbOptions
Clears the group box controls.
None Void Private None
SaveTableInWord
Saves the table into a
word document.
None Void Private None
Variables
Variable Name
Description Data Type Scope Location
missing Represents a missing object.
Object Private SaveTableInWord
styleHeading1
Holds the style heading in
string form.
Object Private SaveTableInWord
rowCount
er
Used as a form
of counter to store which row the pointer is at
in the table.
Integer Private SaveTableInWord
colCounte Used as a form Integer Private SaveTableInWord
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
308 | P a g e
r of counter to
store which column the pointer is at in
the table.
fieldCount
er
Used as a form
of counter to store which
field the pointer is at.
Integer Private SaveTableInWord
filename Used to store the filename.
Object Private SaveTableInWord
copies Stores how many copies of the document
to be copied.
Object Private SaveTableInWord
pages Used to store
how many pages are in
the document.
Object Private SaveTableInWord
range Used to store
the range to be printed.
Integer Private PrimaryKey
SQLstring Used to stored
SQL command that is to be
sent to the SQL server.
String Private deleteCourse
command Send the data in the SQLstring to the database
to be executed by the SQL
Server.
SQLcommand Private deleteCourse
dtCourses Used to store
data from the SQL database
in tabular form for the View Courses form.
DataTable Private ViewCourses
adapter Contains a set of commands
and a database connection that
can be used to fill the data table(dtCourses
) with courses data from the
SQL server.
SqlDataAdapter Private ViewCourses
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
309 | P a g e
SQL Queries
To search records from Enrolled table as per user’s criteria with sibling
Select StudentForename+ ' '+ StudentLastName As
StudentName,MothersFirstName + ' '+MothersLastName As MotherName,
FatherForename + ' ' + FatherLastname As FatherName,
Courses.Name As CourseName,TownCity,Postcode From Student,Courses,Parent,
Enrolment Where Student.StudentId = Enrolment.StudentId AND
Courses.courseId = Enrolment.CourseId AND Parent.ParentId =
Student.ParentId AND DateDiff(yy,StudentDOB,Getdate())<=maxAge AND
DateDiff(yy,StudentDOB,Getdate()) >= minAge AND TownCity=townCity And
County =county And Postcode Like postcode AND Parent.ParentID IN(SELECT
DISTINCT S1.ParentId FROM Student S1 INNER JOIN Student S2 ON
S1.ParentId = S2.ParentId AND S1.StudentId <> S2.StudentId
To search records from non-Enrolled table as per user’s criteria with
sibling
Select StudentForename+ ' '+ StudentLastName As
StudentName,MothersFirstName + ' '+MothersLastName As MotherName,
FatherForename + ' ' + FatherLastname As FatherName,
Courses.Name As CourseName,TownCity,Postcode From Student,Courses,Parent,
Enrolment Where Student.StudentId = Enrolment.StudentId AND
Courses.courseId = Enrolment.CourseId AND Parent.ParentId =
Student.ParentId AND DateDiff(yy,StudentDOB,Getdate())<=maxAge AND
DateDiff(yy,StudentDOB,Getdate()) >= minAge AND TownCity=townCity And
County =county And Postcode Like postcode AND Parent.ParentID IN(SELECT
DISTINCT E1.ParentId FROM Enquiry E1 INNER JOIN Enquiry E2 ON E1.ParentId
= E2.ParentId AND E1.EnquiryId<> E2.EnquiryId)
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
310 | P a g e
Screenshots Of Forms In Design View
AddEnrollment
AddNewCourse
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
314 | P a g e
AddNewUser
CourseTable
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
315 | P a g e
EmployeeLoginTable
EnquiryTable
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
316 | P a g e
EnrollmentTable
HomePage
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
319 | P a g e
ParentTable
StudentTable
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
320 | P a g e
Screenshots Of Tables In Design View
Courses
Enquiry
Enrollment
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
323 | P a g e
Screenshots Of Tables’ relationship
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
324 | P a g e
User Manual
Contents User Manual .......................................................................................... 324
System Description ............................................................................. 324
Installation Instructions ..................................................................... 324
Login And Logout ............................................................................. 326
Adding A New User Record And Viewing Current Users Records .............. 327
Add A New Parent Record And Deleting And Viewing Current Parent Records
...................................................................................................... 328
Adding A New Student Record And Deleting and Viewing Current Student
Records ........................................................................................... 329
Adding A New Enquiry Record And Deleting And Viewing Current Enquiry
Records ........................................................................................... 330
Add New Courses Record And Deleting And Viewing Course Records ....... 332
Add New Enrolment And Delete And View Enrolled and Non-Enrolled
Students ......................................................................................... 333
Search ............................................................................................ 335
Samples of error messages .................................................................. 337
Login .............................................................................................. 337
Adding new record ............................................................................ 337
Search ............................................................................................ 340
System Description
The system is designed for the use by LogicOut Staff in order to view from,
delete from and add records to the customer database. The system acts as an
interface between the user and the database for easier use. This system will help
the LogicOut to find customer details based on criteria given.
Installation Instructions
The steps below outline how to install the program containing the system. The
steps are as followed below:
1. Open the USB(or other storage medium) where the exe file is stored.
2. Left click on the file that says “AylaCOMP4ProjectDatabase.exe” select
copy.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
325 | P a g e
3. Where you would like to store the system/program, left click and select
paste.
4. As an example I have pasted the file onto the desktop.
When you want to use the program/system, then double click on the file and the
program/system should run.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
326 | P a g e
Login And Logout
To login for all users, valid username and password must be entered. Username
and passwords (correct or not correct) are cleared once the login in button is
pressed. There is also a clear button in which the entered data can be cleared if
desired.
As shown above there is a username and password field to enter the relevant
information and login and clear button.
If login is successful, then it should take you to the homepage(as shown below).
You can logout by
pressing the logout
button located in the
bottom left-hand corner
of the homepage.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
327 | P a g e
If the User Account has restricted Access, then the user will only be able to press
the Search and Logout button
Adding A New User Record And Viewing
Current Users Records
Users are the Employee’s login accounts to
access the database.
To add a new user and delete and view
current users, press the user button on the
homepage.
This should take you to the Employee
Logins’ Page where you can view
currently saved users that are in the
database.
To delete a user, select the user you
would like to delete and press the
delete button.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
328 | P a g e
To add a new user, click the Add button.
This should bring up a form to fill in to create a
new user. Once you have filled this press the
Add button this will save the new user record to
the database. You will be able to see the new
record that has been added on the Employee
Logins’ page.
You can press the cancel button if you do not
wish the save the new record.
You can press the cancel button if you do not
wish the save the new record.
Add A New Parent Record And Deleting And Viewing Current Parent
Records
On the Homepage, click the Parent button to
go to the Parent Page.
Student Records are used to store relevant
information about a student that is required.
Parent Records are required before an enquiry
can be added. Parents are linked to Students
when student records are made.
Clicking on the parent button on the
Homepage should take you the
Parents. Here you can view the
Parent records that are saved in the
database.
To delete a current parent record,
select the record you would like to
delete and press the delete button.
To add a new parent record click on
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
329 | P a g e
the Add button.
When you click the add button it should take you
to the Add New Parent form. At least one name
and contact detail must be entered to be able to
save a new parent record. Once finished filling in
the form, press the add button. You can view the
new record on the Parents page once the record
has been saved.
You can press the cancel button if you do not wish
the save the new record.
Adding A New Student Record And Deleting and Viewing Current
Student Records
To go to the Student page, click the
parent button.
Student Records are used to store
relevant information about a student
that is required. These students can be
enrolled or non-enrolled.
When a student record is add, it links to
the parent record.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
330 | P a g e
Clicking the Student button
should take you to the Student
page where you can view current
student records.
To delete a Student record, select
the record you would like to
delete and then press the delete
button.
To add a new record press the
Add button.
By clicking the Add
button, this should
take you to the Add
New Student Form.
Student title, names,
DOB and parent must
at least be entered in
order to save new
record. When you
would like to save the
record, press the add
button. You can view
the new saved student
record on the Student
page.
You can press the
cancel button if you do
not wish the save the
new record.
You can press the cancel button if you do
not wish the save the new record.
Adding A New Enquiry Record And
Deleting And Viewing Current Enquiry
Records
Enquiries are used to store information
about new enquires. These enquires are
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
331 | P a g e
linked to parent data and so a parent record must be created first in order to
save an Enquiry record.
To go the Enquiry Page, click the
Enquiry Button on the Homepage.
Clicking the Enquiry button should
take you to the Enquriy page where
you can view current enquiry
records.
To delete an Enquiry, select a record
you would like to delete and then
press the delete button.
To add a new enquiry record, press
the add button.
By pressing the add button, it should take you to the add new enquiry page.
Names, DOB and New Enquiry date must be entered in order to save new
Enquiry record. Also, correct Parent Details and Recommend Course needs to be
selected. Press the save button when you want to save the record. If you would
not like to save the record, press the cancel button.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
332 | P a g e
When you save a vaild record, the Course Enquired Form will show up. This is
where you can add in courses that have been enquired for this enquiry. It is
optional to add enquired courses. If you would like to add an enquired course,
then press the course that was enquired about then presss Add. If more than
one course was enquired about, add them one at a time. When finished or if no
Courses Enquired For need to be added, press the done button. The new enquiry
can be view on the Enquires page.
Add New Courses Record And Deleting And Viewing Course Records
Courses Records contain information about
course offered at LogicOut. These can be
linked to enrolment and enquires.
To Add New Course Records and delete and
view courses, press the courses key.
Clicking the Courses button should
take you to the Courses page
where you can view current course
records.
To delete a Course, select a record
you would like to delete and then
press the delete button.
To add a new course record, press
the add button.
By clicking the add button it should take you to the Add New Course page. You
must enter Course Name, Data Started, Description, Prerequisites must be
entered to save a new record.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
333 | P a g e
If you would not like to save the record, press
the cancel button.
Add New Enrolment And Delete And View Enrolled and Non-Enrolled
Students
A student that has a record on
the customer database and is
currently doing a course at
LogicOut is in the Enroled
Students. A student that has a
record on the customer database
but not currently doing a course
at LogicOut is in the Non-
Enrolled Students.
To add a new Enrolment and
Delte and View Enrolled and
Non-Enrolled Students, click the
Enrolment button on the
Homepage.
Clicking the Enrolments button should take you to the Enrolments page where
you can view current Enrolled and Non-Enrolled records.
To delete a Enrolled or Non-Enrolled record, select a record you would like to
delete and then press the delete button understand the table that the record
comes from .
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
334 | P a g e
To add a new course record, press the add button.
By clicking the add button, it should
take you to the Enrol Student page.
Here you can enrol a student in a
course. Here you are required to
select a student and a course the
student is to be enrolled into save a
record. Comments can be added but
are optional. To save the record press
the save button. If you would not like
to save the record, press the cancel
button.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
335 | P a g e
Search
Search is used to search the
database to find the data that
meets the criteria that was entered
by the user.
Click the Search button on the
Homepage to get to the Search
page.
Clicking the search button should take you
to the search page. Here you can enter a
criteria to which you would like to find data
from.
Selecting the tick boxes you would like will
bring up boxes in which you can add data.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
336 | P a g e
You must also select where you would like the data from; Enrolled Students,
Enquiries or both. When you are ready to search, press the search button.
If you would like to print,
press the print button.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
337 | P a g e
Samples of error messages
Login
When logging in, if either the username
or/and password is not correct, an error will
occur. A pop up message will come up
saying Invalid login and the Username and
Password fields should clear.
This means that either username or
password you have entered is incorrect.
This could be an error in typing so try and
again. It you are unable login in, speak to
administrator to find out if your username and password is correct.
Adding new record
When adding a new record, there are validation in place to ensure that the data
enter is relevant. To show an example of this, I will use the course form.
When filling in the courses form, the following errors should error when the add
button is pressed. When errors like this occur, the error messages that show
explain the error and so are quite self-explanatory
Course Name field left
empty
- Error Message:
Course name
must not be
empty to
continue.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
338 | P a g e
Date Course started field left
empty.
- Error Message: The date the
course started must be
entered to continue.
Description of the course
field left empty.
- Error Message: A
description of the
course must be
entered to
continue.
Who the course is
recommended for field left
empty.
- Error Message: Who the
course is recommended
for must be entered to
continue. If the course is
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
339 | P a g e
recommended for all, then
you should fill in the box
with all.
Prerequisites field left empty.
- Error Message:
Prerequisites for this
course must be entered to
continue. If there are no
prerequisites then you
should fill in the box with
none.
Two or more fields left empty.
- Error Message: Two or more
fields in the form have not
been filled in. This form
requires all the fields to be
filled in to continue.
Course name entered
longer than 20 characters
long.
- Error Message: The
course name you
have entered is too
long. Please enter a
course name that is
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
340 | P a g e
20 characters long or less.”
Search
If no search criterion has been selected
and the save search button is pressed,
then the database will give an error
message of:
- You must select which table you
would like the search data to come
from.
This means that at least one search
option must be selected. You can choose
to see all records in enrolled or non-
enrolled by selecting the correct radio
button for the relevant table.
When pressing search and a error message saying ‘You must select which table
you would like the search data to come from.’ comes up.
- This means that you have not selected a table(Enrolled Students or
Enquired) to get the search data. In order to search you need to select
one of these options.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
341 | P a g e
Appraisal
Comparison of project against numbered general and specific
objective.
My comments will be in this colour (orange).
Numbered general and specific objective of the project
I created a system that provides an interface between the user and the
database. The database is able to add, delete and view records in different forms
as well as create search to search through the data according to the user’s
required criteria that is entered. The system has a login and so is accessed using
a username and password.
1. The system should be able to add new parent details to the database.
The system is able to add new parent details to the database.
a. Parent ID, Mother’s Title , Mothers Forename, Mothers Last Name,
Father’ Title, Fathers Forename Name, Fathers Last Name, Contact
Email, Telephone Number, Mother’s Mobile Number, Father’s Mobile
Number, Mother’s Work Number, Mother’s Work Mobile, Father’s
Work Number, Father’s Work Mobile, AddressLine1, AddressLine2,
Town/City, County, Postcode. These fields should be saved into the
database.
It can take these details as input for the database.
b. Saving into the database should not take any more than 1 second.
Saving into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
2. The system should be able to add new student details to the database.
The system is able to add new student details to the database.
a. Student ID, Title, Student Forename, Student Last Name, Student
DOB, Email, Parent ID, Learning Disability, Allergies, Health
Conditions, Current Course, Is Completed Courses, Date joined.
These fields should be saved into the database.
It can take these details as input for the database.
b. Saving into the database should not take any more than 1 second.
Saving into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
3. The system should be able to add new enquiry details to the database.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
342 | P a g e
This system is able to add new enquiries details to the database.
a. Enquires ID, First Name, Last Name, DOB, Parent ID, Course
Recommended ID, Enquiry Date. These fields should be saved into
the database.
It can take these details as input for the database.
b. Saving into the database should not take any more than 1 second.
Saving into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
4. The system should be able to add new courses details to the database.
The system is able to add new courses details to the database.
a. Course ID, Name, Started, Description, Recommended For, Age
recommendation, Pre-requisites. These fields should be saved into
the database.
It can take these details.
b. Saving into the database should not take any more than 1 second.
Saving into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
5. The system should be able to add new employee login details to the
database.
The system is able to add new employee login details to the database.
a. Username, Password, Email, Date Of Account Creation, Access.
These fields should be saved into the database. These fields should
be saved into the database.
It can take these details as input for the database.
b. Saving into the database should not take any more than 1 second.
Saving into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
6. The system should be able to delete a parent record from the database.
The system is able to delete a parent record from the database.
a. Parent ID, Mother’s Title , Mothers Forename, Mothers Last Name,
Father’ Title, Fathers Forename Name, Fathers Last Name, Contact
Email, Telephone Number, Mother’s Mobile Number, Father’s Mobile
Number, Mother’s Work Number, Mother’s Work Mobile, Father’s
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
343 | P a g e
Work Number, Father’s Work Mobile, AddressLine1, AddressLine2,
Town/City, County, Postcode. These fields should be deleted from
the database.
The data from these fields of the selected record when deleting are deleted.
b. Deleting from the database should not take any more than 1
second.
Deleting from the database takes, on average, no more than 1 second (slow
network connections could slow this down).
7. The system should be able to delete a student details from database.
The system is able to delete a student record from the database.
a. Student ID, Title, Student Forename, Student Last Name, Student
DOB, Email, Parent ID, Learning Disability, Allergies, Health
Conditions, Current Course, Is Completed Courses, Date joined.
These fields should be deleted from the database.
The data from these fields of the selected record when deleting are deleted.
b. Deleting from the database should not take any more than 1
second.
Deleting from the database takes, on average, no more than 1 second (slow
network connections could slow this down).
8. The system should be able to delete an enquiry record from the database.
a. Enquires ID, First Name, Last Name, DOB, Parent ID, Course
Recommended ID, Enquiry Date. These fields should be deleted
from the database.
The data from these fields of the selected record when deleting are deleted.
b. Saving from the database should not take any more than 1 second.
Deleting from the database takes, on average, no more than 1 second (slow
network connections could slow this down).
9. The system should be able delete a course record from the database.
a. Course ID, Name, Started, Description, Recommended For, Age
recommendation, Pre-requisites. These fields should be deleted
from the database.
The data from these fields of the selected record when deleting are
deleted.
b. Deleting from the database should not take any more than 1
second.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
344 | P a g e
Deleting from the database takes, on average, no more than 1 second (slow
network connections could slow this down).
10.The system should be able to delete an employee login record from the
database.
The system is able to delete an employee record from the database.
a. Username, Password, Email, Date Of Account Creation, Access.
These fields should be deleted from the database.
The data from these fields of the selected record when deleting are deleted.
b. Deleting from the database should not take any more than 1
second.
Deleting from the database takes, on average, no more than 1 second (slow
network connections could slow this down).
11.The system should be able to view parent records from database.
The system is able to show parent records that are in the database.
a. Parent ID, Mother’s Title , Mothers Forename, Mothers Last Name,
Father’ Title, Fathers Forename Name, Fathers Last Name, Contact
Email, Telephone Number, Mother’s Mobile Number, Father’s Mobile
Number, Mother’s Work Number, Mother’s Work Mobile, Father’s
Work Number, Father’s Work Mobile, AddressLine1, AddressLine2,
Town/City, County, Postcode. Should be able to view these fields.
When viewing the parents records through the system, you are able to see these
fields.
b. Loading the records from the database for viewing should not take
any more than 1 second.
Loading into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
12.The system should be able to view student records from database.
The system is able to show student records that are in the database.
a. Student ID, Title, Student Forename, Student Last Name, Student
DOB, Email, Parent ID, Learning Disability, Allergies, Health
Conditions , Current Course, Is Completed Courses, Date joined.
Should be able to view these fields.
When viewing the student records through the system, you are able to see these
fields.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
345 | P a g e
b. Loading the records from the database for viewing should not take
any more than 1 second.
Loading into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
13.The system should be able to view enquiry records from database.
This system is able to show enquiry records that are in the database.
a. Enquires ID, First Name, Last Name, DOB, Parent ID, Course
Recommended ID, Enquiry Date. Should be able to view these
fields.
When viewing the database through the system, you are able to see these fields.
b. Loading the records from the database for viewing should not take
any more than 1 second.
Loading into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
14.The system should be able to view course records from the database.
The system is able to show course records that are in the database.
a. Course ID, Name, Started, Description, Recommended For, Age
recommendation, Pre-requisites. Should be able to view these
fields.
When viewing the database through the system, you are able to see these
numbers.
b. Loading the records from the database for viewing should not take
any more than 1 second.
Loading into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
15.The system should be able to view employee login details to the database.
The system is able to show employee login records that are in the database.
a. Username, Password, Email, Date Of Account Creation, Access.
Should be able to view these fields.
When viewing the employee login records through the system, you are able to
see these fields.
b. Loading the records from the database for viewing should not take
any more than 1 second.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
346 | P a g e
Loading into the database takes, on average, no more than 1 second (slow
network connections could slow this down).
16.The system should be able to search through the database as per the
users search criteria.
The system is able to search through data from the database according to the
search criteria provided by the user.
a. Search criteria could include:
i. Age
ii. Town/City
iii. County
iv. Postcode
The search criteria does include these search options. The user can select one,
some or all of the options mentioned above to create their search criteria. There
is also an option of which table(enrolled or enquired) you would like the data to
come from; one of these options need to be selected in order to run the search.
b. The results from the search should take no longer than 5 seconds.
The results of the search, on average, take no longer than 5 seconds (slow
network connections could slow this down).
c. The search result should be able to be printed.
The search results are able to be printed.
i. This should take no longer than 2 seconds to send to the
printer.
Sending the results to be printed, on average, takes no more than 2 second
(slow network connections could slow this down). This does not include printing
time.
d. The search results should be able to be sent for a mailing list.
i. This should take no longer than 2 seconds to create the
mailing list.
I was unable to create a mailing list due to time.
Candidate Number: 0000 Centre Number: 51518 [Customer Database]
347 | P a g e
User Feedback
Letter - See Appedix
From reading user’s letter I found out that overall they seem happy with the
Customer Database program I have created for them and that they intent to use
the program. They say the interface is very clean and once you understand how
to use the program, is very easy to use. They like the search aspect of the
program as there are a large number of search options which can allow the user
to refine their search as much or as little as they would like. They also like the
restricted access accounts option as it allowed admin user to have more control
and allows them restrict access for other user so that database data does not
get added or deleted without authourisation.
User Possible Extentions
Covert Enquiry to Student
The user suggested that it would be useful to be able to directly convert an
enquiry into a student without having to re-enter data into the database. This
would make the program more efficient and save time for the users of the
program at LogicOut.
Edit Exsisting Student
The user suggested being able to edit current student data. This would save time
as instead of having to delete and reenter the record to make the changes, the
changes could be directly made to the record.
My Possible Extensions
Creating a mailing list from the search
I had planned to do this but due to time, I was unable to. The new system is
able to print search but is unable to use the search results to create a mailing
list. In order to do this, you would need to take the relevant data from the
search for mailing. This would then be carried over to the relevant program that
is required.
Being able to edit records
Currently, you can just add, delete and view records. This works fine but could
be improved if the user was able to edit records without have delete the whole
record and re-entering the data again with the changes. To do this there would
need to be an extra button for editing data and a from with the relevant data
already in the form would need to be there. This would be allow the user to edit
the data and needed. A save button would when be pressed and the changes
would then be saved to the database. Saving the change could be done by
overwriting the data that was with the new edited data.