+ All Categories
Home > Documents > Customer Database - funtechacademies.co.uk

Customer Database - funtechacademies.co.uk

Date post: 14-Feb-2022
Category:
Upload: others
View: 3 times
Download: 0 times
Share this document with a friend
348
0 | Page Customer Database Candidate Number: 0000 Centre Number: 51518 Centre Name: Funtech
Transcript

0 | P a g e

Customer

Database

Candidate Number: 0000

Centre Number: 51518 Centre Name: Funtech

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]

29 | P a g e

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

Email

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

Print

< 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]

117 | P a g e

Figure 1.3 Figure 1.4

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

118 | P a g e

Figure 1.5 Figure 1.6

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

119 | P a g e

Figure 1.7 Figure 1.8

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 =

[email protected]

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 =

[email protected]

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 =

[email protected]

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 =

[email protected]

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 =

[email protected]

m

Should move

on to next

validation,

giving an

error

message

saying at

least one

name must

be entered.

Contact

Email =

[email protected]

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 =

[email protected]

Accepts email

entered but

displays error

message from

next

validation

about needing

at least one

contact name.

Contact Email

=

[email protected]

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

Email

entered

is no

longer

than 50

character

s long.

Email =

[email protected]

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 =

[email protected]

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

[email protected]

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 =

[email protected]

Username =

User

Password =

Password

Repeated

Password =

All fields

empty.

Should not

accept

empty field

Username =

User

Password =

Password

Email =

[email protected]

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 =

[email protected]

om

Repeated

Password =

Password

Username =

User

Password =

PasswordPas

swordPass

Email =

[email protected]

om

Repeated

Password =

Username =

User

Password =

PasswordPas

swordPassw

Email =

[email protected]

om

Repeated

Password =

Username =

User

Password =

Password

Email =

[email protected]

om

Repeated

Password =

Password

Username =

User

Password =

PasswordPassw

ordPass

Email =

[email protected]

m

Repeated

Password =

Username =

User

Password =

PasswordPassw

ordPassw

Email =

[email protected]

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 =

[email protected]

om

Repeated

Password =

Password

Should

Username =

User

Password =

Password

Email =

[email protected]

om

Repeated

Password =

Password2

Should not

All fields

empty.

Should not

accept

empty field

and display

an error

message.

Username =

User

Password =

Password

Email =

[email protected]

m

Repeated

Password =

Password

Accept all the

Username =

User

Password =

Password

Email =

[email protected]

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 =

[email protected]

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 =

[email protected]

om

Repeated

Password =

Password

Should

accept all the

data and

save the new

user into the

Username =

UserUserUse

r UserUserU

Password =

Password

Email =

[email protected]

om

Repeated

Password =

Password

Should not

accept

empty field

and display

an error

Username =

User

Password =

Password

Email =

[email protected]

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 =

[email protected]

Repeated

Password =

Password

Accept all the

data and saves

the new user

into the user

table in the

Username =

UserUserUserU

serUserU

Password =

Password

Email =

[email protected]

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 =

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

[email protected]

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

[email protected]

omemail@

Repeated

Password =

Password

Should not

accept

empty field

and display

an error

message

Username =

User

Password =

Password

Email =

[email protected]

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 =

[email protected]

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 =

[email protected]

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]

197 | P a g e

Figure 3.1

Figure 3.2

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

198 | P a g e

Figure 3.3

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

199 | P a g e

Figure 3.4

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

200 | P a g e

Figure 3.5

Figure 3.6

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]

220 | P a g e

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]

223 | P a g e

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]

229 | P a g e

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]

240 | P a g e

Figure 3.80

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]

243 | P a g e

Figure 3.85

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

244 | P a g e

Figure 3.86

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]

247 | P a g e

Figure 3.91

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]

250 | P a g e

Figure 3.96

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]

286 | P a g e

Figure 4.2

Figure 4.3

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

287 | P a g e

Figure 4.4

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]

311 | P a g e

AddNewEnquiry

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

312 | P a g e

AddNewParent

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

313 | P a g e

AddNewStudent

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]

317 | P a g e

Login

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

318 | P a g e

NewSearch

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]

321 | P a g e

Non-Enrolled

Parent

Candidate Number: 0000 Centre Number: 51518 [Customer Database]

322 | P a g e

Student

User

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.


Recommended