In the Context Diagram, the Survey System mainly divided into two parts. One is the Volunteer input the information and retrieves back their input data part. The other is the expert query the input data part. Input or query the data also uses the same database. To develop an easy use tool for the input survey, web portal is a good selection to do this.
The aim of this system is to help understand the impact of environment change on the wider wildlife population. Volunteers will go to their fields and count the number of each species during several periods. Volunteers will submit the data via by a standard form on the survey web site. All data will be used by the Department of Wildlife to count the distribution of each species and measure the trends in bird population.
Online Web portal can provide user to update their data anytime and anywhere if they have a computer can access the web page of this system. Data can be consolidated into one location to reduce the duplication. User can access their input result again at any time and location also. By the input data of weather, comments, Season, time and the bird population, we can make an analysis the relationship between the change of weather, season and time with the bird population.
Data Flow Diagram mainly has four components. They are external entity, process, data store and data flow. An external entity is a source or recipient of data outside of the system. Volunteer is the outside of the system and help to input data. Process is some activities taking place the data. Login process needs the volunteer data for the authentication. Survey data which input by volunteers store into the same database. So M1 and M2 data store is necessary in the flow.
In Expert data flow diagram, Expert will not input any data in the database. They only access the data and make some analysis. So expert will query the data from the survey data store M1 and do the analysis process. At the end, some analysis will be produced. Expert and Report also are external entity.
Fig.3
Task 2 - 20 Marks
a) An Entity Relationship Diagram for the system (8 Marks)
Fig.4
The whole data flow is started from Volunteer.
Volunteer has one-to-many relationships because one Volunteer will handle two square areas. One square area may have much survey general information so square has one-to-many relationship to survey form. Base on one record of the general information, it may have many records of species. By the Expert part, it has one-to-many relationship to analysis report and it is an optional relationship. Analysis report can exist without an expert.
Entity descriptions for all entities in the diagram (3 marks)
Entity may be a person, place, object or event for which the information is hold.
According to this ERD diagram, there are several entities as below:
Volunteer - It is a person that there are 25 people will help to count the number of species in a square during some period. In this entity, it may have a unique ID number to represent a volunteer.
Square - Each volunteer will be in charge two 1km by 1km square. This "Square" is square of habitat that the wildlife is living there. Each Square has its unique code to represent its location. We may use "HC01" to "HC50" to represent all squares.
Survey Form - Each Volunteer need to fill in the form to record down how many species they can see in the sub square. In this entity, it may store the information about the visit date, visit time, weather and comments. All of the information is the general information about the visited sub square.
Species - This entity will mark down the species name, number of seen and the number of young of the species the volunteer count.
Expert - This entity will mark down all Expert information such as the name of Expert and the login password of each account.
Appropriate attributes for all entities including primary and foreign keys. (6 Marks)
Volunteer Entity
Volunteer number - varchar(3), (primary key)
Volunteer name - varchar(20)
Password - varchar(20)
Volunteer number is the primary key of Volunteer Entity. All attributes must be input and cannot be null.
Survey form Entity
Key ID number - integer, (primary key)
Volunteer number - varchar(4), (foreign key)
Square code - varchar(5)
Visit month - varchar(2)
Visit Date - varchar(2)
Visit start time - varchar(2)
Weather - varchar(250)
Comments - varchar(250)
Sub square code - varchar(3)
Link - varchar(19)
Key ID is a primary key in Survey Form Entity. Volunteer number is the foreign key to Volunteer Entity. All attributes must be input and cannot be null value. "Link' is a composite key and reference to "Species" Entity.
Species Entity
Species Key ID - integer, (primary key)
Link sequence - varchar(19), (foreign key)
Species name - varchar(20)
Number of seen - varchar(5)
Number of Young - varchar(5)
Species Key ID is a primary key in this table. Link sequence is a foreign key reference to Form Entity. Null value will not be accepted here.
Square Entity
Square code - varchar(5), (primary key)
Volunteer number - varchar(4), (foreign key)
Square code is a primary key in this table, Volunteer number is a foreign key and reference from volunteer entity. Null value will not be accepted in this table.
Expert Entity
Expert ID - integer, (primary key)
Expert name - varchar(20)
Password - varchar(20)
Expert ID is a primary key in this table to identity same user name records.
c) Relationships detailing optionality and degree of relationships between entities (3 marks)
Form Info
Species Info
Database
Fig.5
Database can store general information (form data) or species information. It is a exclusive relationship.
Database
Species
Fig.6
This shows an optional relationship which species has one to one relationship to Database but Database can exist without any species.
Analysis Report
Expert
Fig.7
This shows an optional relationship that expert has one to many relationship to Analysis Report but the Report can exist without any expert.
Task 3 - 10 Marks
User can input data via by web. It is a more convenient way that use can input their data anytime and anywhere by the accessing the Internet. Due to this free to input way, user can input anything which has not any control. There are some problems to occur in it.
During the system design, the designer and system analysis can pay attention to control the user input flow first.
From the input box, system can do the validation of the input values. Some fields which cannot be empty will set to compulsory input fields. When the user submits the result, system will check and advise which field is missing to fill in.
To avoid "not make sense" data input by user, some fields can do some control such as the value of the Date. The input box of "Month" can set the values from "01" to "12" only. Then user will not input "13" in the Month box. By the "Visit Time" field, the system will check the time will not earlier than 09:00 and after 18:00.
System may need to control the species name. In the Species name input box, this cannot free hand to input by user. It is because the same specie name may have two input style by different users. So, a list of species name provided to user for the selection must to do.
Users have their own login account that they can only select their related Square code for input species detail. Suppose the selection of the Square code for the Volunteer has two and the system can check the login user's square code number. For the sub square code, system will check the input which must not less than "00" and larger than "99".
To trace back the problem which created by user, log is a very useful tool for help. System administrator can trace back the problem by logging down each access user's action. What information we would like to log it down? For example, the connection information of the access such as access ip, access user's role. The action made by user such as query data is also very important information in log.
Task 4 - 20 Marks
First normalization
It will remove the repeating group of data in the first normalization.
Form Information (formid,vno,vname,scode,vmonth,vdate,vstime,weather,cmt,sscode,spname,noseen,noyoung,eid,exname,)
Form Details(formid,vno,vname,scode,vmonth,vdate,vstime,weather,cmt,sscode,link,eid,exame)
Species Details(spid,link_seq,spname,noseen,noyoung)
Second Normalization
This normalization remove part-key dependencies.
Form Details(formid,vno,scode,vmonth,vdate,vstime,weather,cmt,sscode,link)
Species Details(spid,link_seq,spanme,noseen,noyoung)
Volunteer(vno,vname,password,scode)
Expert(eid,exname,password)
Third Normalization
This normalization remove the inter-data dependencies.
Form Details(formid,vno,scode,vmonth,vdate,vstime,weather,cmt,sscode,link)
Species Details(spid,link_seq,spanme,noseen,noyoung)
Volunteer(vno,vname,password)
Expert(eid,exname,password)
Square Info(scode,vno)
Data Dictionary entries for all items included in the database design. (10 Marks)
Fig.8
Primary key column marked "Y" as a primary key of the Relation. Due to the one to many relationship between table "form" and "species", field "link" is a composite key that links to table "species" "link_seq". This composite key is formed by "vno","vmonth","vdate","vstime" and "sscode". It means that each volunteer will create one unique key for one survey for a square of one sub square on a day and a time slot. This table records down the general information about the survey.
Fig.9
The link_seq will be inserted into the table according to form table which records the user has selected. This is the linkage between "form" and "species" table. This table record down the number of bird and their young which the volunteer has counted in a time period of a day.
Fig.10
Volunteer table is used to mark down all volunteer information such as name and the login password.
Fig.11
Expert table is used to store all expert information such as name and the login password.
Fig.12
System may use this table for the relationship between the volunteer and Square.
Task 5 - 15 Marks
Adding the general details of a new survey. (5 Marks)
Insert / Cancel
Fig.13
There is an insert General details page for users to input the square code, visit month and date, visit starting time, weather condition, the volunteer's comments and the sub square code. According to the login user, Volunteer number will be set into the input box automatically. User may need to input a set of general information such as "V01" "HC01" "04"(visit month) "01"(visit Date) "10" visit start time "weather" "comment" "00" (sub square code). Once user press "Insert", the record will be stored into the "form" table.
Fig.14
Once user insert a new record, the page will be refreshed and the new record will be shown in red square area (list out the general information which the volunteer has input before).
The link field is a composite key which is combined from several fields such as volunteer number, square code, visit month, visit date, visit start time and sub square code. This is a unique key to identify the species information which is liked to this general information.
b) Viewing the data from one of their own surveys. (5 Marks)
Fig.15
The second tab page is the viewing the data from one survey information. Suppose each volunteer has its own login account/profile. After login, the view data tab page only shows the form and species information which is inputted by this volunteer. At the top of the application, there are two selection boxes for user to filter out and showing the selected records base on the selection box. If both selection box choose "- -", it will show all the general information the user has input before.
The first Grid View box is showing general information which the user has created in the first tab page. When users select/highlight the record in this panel, the second grid view box will show the related inserted species information. Base on the link and link_seq between form and species table, the application will find all species record which has the same value of the link and link_seq in the species table. So this is one to many relationships between form and species table. One general information record may have many records of the species.
c) Recording the sighting of a species. (5 Marks)
Insert / Cancel
Fig.16
In this tab page, there is another function. This function is to insert the species information. When a volunteer see one kind of bird in one sub square code, volunteer will make down the species name, how many this kind of bird they see, how many of young in this bird type. All data will be input by the "Insert New Bird Type" box. Once user press "insert" link button, the data will store in the species table. This new added record will be shown into the second panel at once. So you can see that one highlight yellow general information record row may have several related species information. The captured screen has shown that V01 in HC01 sub square 00 in April record has three kind of bird they got.
Task 6 - 12 Marks
Reference Manual of Online Survey System
This document will show the simple steps that user can get all the important operations such as input survey general information, input species information, how to check back the history.
Reference manual tree
Login Page
How to login the survey system
Validation
Error message
General Information Page
How to insert one new general information
Validation
Species Information Page
View Panel Description
How to Select / View different general and species information
How to insert a new species information
How to edit an existing species information
Validation
Valid Volunteers will have their own login account.
User need to input the login User name and password such as "V01" and password "123456".
Press "Log In" button
Fig.17
Login name and password is compulsory to input. System has a checking here and will alert user by a red star (indicator) which box user need to input.
Fig.18
Once user input login name and password, system will make a validation from database user table. If the account is not authenticated, the alert message will be show as here.
Fig.19
After login successfully, there are two tab page for the Volunteer account operation.
Tab > Input/Create General Information
Tab > Review/Create Species Information
This is the page for "Input/Create General Information".
Insert / Cancel Fig.20
According to the user login name, application will fill in the Volunteer number automatically.
To create a new General Information record, user can input Square Code, visit month, visit date, visit start time, weather, comments and sub square code.
Press "Insert link button"
Record insert successfully
Once all these box have been filled in, the link will be created automatically into the link input box and save into the database also. This "Link" is a linkage with the species information record. The new added record will be shown at the top of the panel immediately.
Validation
System will check the missed input field and show the indicator red star beside the input box.
By the user login account, system will check the input square code. For example, User V01 handle square code "HC01" and HC02" only. If user input "HC03", alert message will be shown once user insert a new general information record.
Input visit month values cannot smaller than "01" and greater than "12".
Input visit date values cannot smaller than "01" and greater than "31"
Input visit start time values cannot smaller than "09" and greater than "14". This means that user must start the visit time before 14:00 in the afternoon and the working period is four hours. Normally, 18:00 will stop all visiting job.
Input sub square code values cannot smaller than "00" and greater than "99"
One start time on one day in a square is unique. This means that system will check the new add general information and it cannot allow saving two same square code, month, and date, time and sub square code record.
Fig.21
Review/Create/Edit/Delete Species Information page
General Information View Panel
Species Information View Panel
Fig.22
This page is divided into two parts. The upper part is for review general information and species information. User can select/highlight the general information row and the species information view will show all related records.
Insert new species information
Fig.23
Select
Two Panel view operation >
User can select dropdown box "Month" and "Square Code" to filter out records in General Information view panel.
User can click the "Select" link button (highlight) and then the species information panel will show the related species information records.
Insert / CancelFig.24
Insert new species information
Input the data in the insert panel of species name, no of seen and no of young.
Press "Insert" to save the new record.
The link Key will be inserted automatically according to the general information record.
Validation
User cannot keep the input box empty to insert the record. There is a red star indicator to show if user is missed to input the data.
Checking is set to "No of seen" and "No of young" that user cannot input a value in no of young greater than the value of "no of seen". There is a message alert to user if this has happened.
Edit /Delete species information
Fig.25
Edit/Delete
Once the record has been inserted, it will be shown in the species information panel at once.
User can Update or delete the special information by the "Edit/Delete" link button.
Press "Edit" button, the field will allow user to input according to selected record.
Press "Delete" button, the record will be erase from table permanently.
Update
Select
Fig.26
After user press "edit" button, user can change the data in the input box as above screen.
When user finishes the changes, press "Update" link button to save it.
Validation
System will check the value of "no of young" not greater than "no of seen".
System will check the species name is valid.
Task 7 - 7 Marks
Appendix
To review the whole project design of the Survey System, I have below assumptions:
By the programming part, according to the login part, I have assumed that all user name or login name is by the pattern "V" capital letter plus value "01". For example, one user name is "V01" to "V25" because there are 25 volunteer to help for count the species.
In the application, I have assumed user will start their job at 09:00. The working period is four hour a session. I have not lock the working period such as 09:00 - 12:00. The application allows the user free hand to input the visit start time.
I have assumed that users will input the same bird name. When user input the bird name in species information, the application will verify the input name by the list of bird name in the database. If the input name does not match the list, the record cannot be inserted.
I assume that each volunteer will mark down all count data by paper and fill in the form and all of the species information when they back to their computer. It means that I have assumed there is no human input error or missing about this operation.
We assume that user no need to change the password so there is not any change password work flow or interface will be created. This operation request may need to contact the IT support or helpdesk.
We assume that Expert interface just can review the data but they cannot edit them.
To review the whole project design of the Survey System, I have below improvement suggestions:
We can consider the administrator interface for the administration user. For example, if there is a new type of bird name which would like to add into the database bird list, the administration tool/interface can do that. Base on this setting, user authorization and user access right must concept must be included into the administration tool.
To locate and find the reason of the problem, suppose logging concept must be used. The backend of the application may need to store some information such as the record update date and time, the source of ip about the transaction insert, edit, update and delete. Lock down the user access/login date and time.
To let the user has a one time roll back function due to user input something wrong, amendment or revised version concept could be adopted. What is it? It should be keep the old version of data and there is a new version of record showing on the application for user. If user delete the record wrong, at least the can pick the record back from the system trash.