Project Instructions

project%20instructions

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 28

DownloadProject Instructions
Open PDF In BrowserView PDF
INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Groups
This is a group project. Each group is to consist of 3 to 5 students.
Students may form their own groups and one member of the group is to email a list of
the names and student numbers of the group to the course instructor by 5:00 PM
Friday, January 25th 2019. Any students who are not part of a group by 5:00 PM
January 25th 2019 will be assigned to groups at the course instructor’s discretion. No
changes in group membership will be permitted once the groups are set up.
The intent is that each student in a group will receive the same mark for each part of
the project. However, each student’s participation in the project will be taken into
account based on the participation form that is to be submitted in paper form for each
project part submission. Students who do not participate in a part of the project will
receive a mark of zero (0) for that part of the project. A copy of the form is at the end
of this document.
Due Dates
This project consists of 3 parts with the following due dates. Each part must be
submitted to the correct FOL drop box by its specified due date and time. No late
submissions or re-submissions will be accepted.
Part 1 due by 11:59 PM on Sunday, February 17th 2019 in the FOL drop box
Part 2 due by 11:59 PM on Sunday, March 17th 2019 in the FOL drop box
Part 3 due by 11:59 PM on Friday, April 12th 2019 in the FOL drop box
NOTE: Make sure that a submission is placed in the correct drop box. Submissions
placed in the wrong drop box (whether that drop box is within this course’s FOL site or
another course’s site) will not be accepted.
NOTE: Make sure that the correct file is uploaded. Students can download the files
they upload and check that they are correct.

Page 1 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Grading Information
• Any submission that produces fatal errors of any kind in any part of
the submitted code will receive an automatic grade of 0. A fatal error
is one that causes an application, or any part of an application to
terminate abnormally. Since this project has 3 submissions, the
penalty for fatal errors will only apply to the submission or
submissions in which fatal errors occur, not the whole project
(unless all 3 submissions contain fatal errors).
• Any submission that produces warning or notice messages that are
not fatal errors will be subject to penalties based on the impact of
the defect that caused the message. The penalties will be applied to
the marks for the portion of the application affected by each
warning or notice message and may be partial or total loss of marks
for that portion of the application.
• This project must be implemented using PHP, JavaScript, CSS and
HTML only. No other programming or scripting language is
permitted. The use of any other programming or scripting language
will result in an automatic deduction of 50% of the marks available
for the part of the project in which such languages are used.
• Part1 sections D and E, Part 2 and Part 3 of this project require the
use of AJAX after the initial page load. Failure to use AJAX as
instructed in these Parts or sections will result in a deduction of
50% of the marks available for those Parts or sections. This
includes the use of any library other than jQuery to perform the
AJAX operations or using a server to client data format other than
specified.
• All source files must contain a start of file comment identifying the
file, its purpose and the author(s) of the file. An overall deduction of
10% of the total available marks for the part of this project where
this comment is found to be missing will be deducted if any source
file does not contain this comment.
Page 2 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

• Students are required to use the mysqli PHP database access
library for all database operations. Use of any other database
access library (including the built-in PDO library) is not permitted.
An automatic deduction of 50% of the total marks available for the
part of this project in which a non-mysqli database library is used
will be assessed for its use.
• Follow the project instructions carefully, failure to follow the
instructions for this project will result in the loss of marks, whether
the submitted code appears to do what is expected or not.
• Submitted projects will be marked using data files that contain path
information using the file format described below. Each group’s
implementation of the project MUST use the provided file format.
Failure to adhere to this file format will result in a deduction of 50%
of the available marks for any part of this project that uses a
different file format.
• The project will be marked using the provided Ubuntu 18.04
Desktop virtual machine. No other development environment will
be considered during marking. Make your group’s project works
correctly on the provided Ubuntu 18.04 Desktop VM.
• Plagiarism of any sort will not be tolerated. Academic offenses will
be issued for any identified cases of plagiarism.

Page 3 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Introduction
In this project, you will build a web application to help a telecommunications
engineering company to design microwave communication systems. The application
you will create is a prototype/proof of concept for a much larger and more complex
system to be built in the future.
The 3 parts of this project will implement the following functionality:
1) )Part 1
A.

Define the needed database.

B.
Upload microwave path data in a CSV format text file to the web
server
C.

Import the uploaded microwave path data into a MySQL database

D.

Display the data for selected microwave paths

E.
Reset the data stored in the database for a given microwave path to
the originally uploaded data for that path.
2) Part 2
A. Edit the data for a selected microwave path.
3) Part 3
A. Perform the necessary calculations to determine the usability of a
microwave path
i. Path Attenuation
ii. Apparent terrain/obstruction heights based on the curvature of the
earth
iii. First Freznel Zone
B. Display the results of the path calculations in a tabular format, and where
appropriate in a graphical format.
Information on microwave paths can be found in the background information section of
this document. Detailed instructions for each part of the project are given below in the
sections for each part of the project. Note that the background information section is
very simplified, it is intended to give students the basic concepts needed to do this
project, those wishing to learn more about the topic should see reference [1] and many
other publications on the topic.
Page 4 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Some of the instructions for this project are very explicit, telling you what to do and how
to do it. Other instructions only tell you what to do, allowing you to choose how to do
them. Be careful that you do what is asked for.

Page 5 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Background Information
Microwave radio systems are widely used throughout the world for many applications
including WiFi, cell phones, point-to-point communications (voice, data, video, etc.)
and satellite communications. In this project, the focus is on point-to-point
communications operating at frequencies greater than 1GigaHertz (GHz).
A radio signal’s path (microwave or otherwise) can be thought of as the route taken by
the radio signal between the antenna at a transmitting site and the antenna at the
corresponding receiving site. The existence of a path between a transmitting site and
receiving site depends upon many factors such as atmospheric conditions (climate and
electromagnetic), the distance between the transmitting and receiving sites, the
frequency of the radio signal, the height and type of terrain (mountains, plains, deserts,
fresh water salt water, etc.) between the transmitting and receiving sites and the height
and types of obstructions (trees, bushes, building, overhead cables, etc.) on top of the
terrain.
Radio signals in the microwave range (frequencies above 1GHz) are generally
considered to have the following key characteristics when used for point-to-point
communication:
• Travel in straight lines with some spreading of the signal. This spreading can be
visualized as 2 long thin cones with the apex of each cone at the antennae and
the bases at the midpoint of the path.
• Are not reflected by the upper layers of the earth’s atmosphere
• Are not usually reflected by the earth’s surface except when the terrain is water
at certain points along the path. These points are known as reflection points and
are calculable from the path data.
• Are blocked or scattered by any physical barrier between the transmitting and
receiving antennae. The curvature of the earth has a significant impact on this
characteristic
• The strength of the signal becomes weaker the further it travels from the
transmitting antenna. This is known as path attenuation or path loss
• Must have a minimum of 1 First Freznel Zone clearance above the ground (and
any obstructions) along the entire length of the path.

Page 6 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

For the purpose of this project, it is only necessary to consider the frequency used by
the radio equipment, the length of the path, ground, antenna and obstruction heights
and the earth’s curvature.
All radio systems operate at some frequency, most microwave radio systems operate
at frequencies between 1.0 GHz and 100.0 GHz. As the operating frequency
increases, the signal can carry more information but has a shorter range due to path
attenuation and increased climatological effects.
Since microwave signals are easily blocked by anything in between the transmitting
and receiving antennae, it is necessary to ensure that the ground or obstructions on
the ground (such as buildings or trees) do not lie directly between the antennae.
When ground elevations (heights) are measured, the measurement is usually made
relative sea level and does not take into account the curvature of the earth. The
earth’s curvature must be considered when determining whether a proposed
microwave path can be used or not. In addition, the signal’s path needs to have a
certain amount of space between it and the ground and any obstructions, the minimum
amount of separation required is based upon the operating frequency of the signal and
the distance from the end points of the path and is known as the First Freznel Zone.
Some of the data that needs to be gathered in order to determine whether a proposed
path can be used or not are:
1)
2)
3)
4)
5)
6)
7)

The operating frequency for the path.
The height of the ground at the transmitting site
The height of the transmitting antenna above the ground at the transmitting site
The height of the ground at the receiving site
The height of the receiving antenna above the ground at the receiving site
The distance between the transmitting and receiving sites
At int locations (known as mid points) along a straight line between the
transmitting and receiving sites. The following information is needed at each
midpoint:
a. The height of the ground (water is considered equivalent to ground when
gathering path data)
b. The type of terrain
c. The height of any obstruction
d. The type of any obstruction
e. The distance from the ‘starting’ end point of the path.
Page 7 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Mid points do not have to be equally spaced along a path, although they often
are.
NOTE: The formulae given below are intended for use with metric distances
(kilometres) and heights (metres) and are the once needed for this project. See
reference [1] for formulae that use miles and feet.
Path Attenuation (Path Loss) is calculated using the formula:
𝑃𝑃𝑃𝑃 = 92.4 + 20𝑙𝑙𝑙𝑙𝑙𝑙10 (𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹𝐹) + 20𝑙𝑙𝑙𝑙𝑙𝑙10 (𝑃𝑃𝑃𝑃𝑃𝑃ℎ𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿𝐿ℎ𝐼𝐼𝐼𝐼. 𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾𝐾)

NOTE: 𝑙𝑙𝑙𝑙𝑙𝑙10 indicates base 10 logarithms. Be careful when choosing the proper PHP
function to compute this value. PHP has several logarithm functions with various
bases.
In all of the following formulae the following symbol meanings are used:
𝑑𝑑1 is the distance, in kilometres, from the start of the path to the current mid point
𝐷𝐷is the total length of the path in kilometres.
𝑑𝑑2 = 𝐷𝐷 − 𝑑𝑑1 is the distance from the current mid point to the end of the path
𝐹𝐹1 is the First Freznel Zone in metres, has a value of 0 at the path end points, but
needs to be calculated for all mid points.
𝐹𝐹𝐺𝐺𝐺𝐺𝐺𝐺 is the operating frequency in Gigahertz
ℎos the ground height adjustment for the earth’s curvature in metres. It has a
value of 0 at the path’s end points but must be calculated for all mid points.
The First Freznel Zone is calculated using the following formula at each path mid point:
𝑑𝑑1 𝑑𝑑2
𝐹𝐹1 = 1.73�
𝐹𝐹𝐺𝐺𝐺𝐺𝐺𝐺 𝐷𝐷
There are 4 different formulae used for calculating the effect of the earth’s curvature on
a microwave path. One is based on the actual curvature of the earth’s surface, (4/3),
another is based on a flat earth (infinity) while the other 2 are based on theoretical
curvatures (1 and 2/3). In most cases, the 4/3 formula is used. The other 3 are used
Page 8 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

when a path’s environment involves special terrain or climate conditions. This project
must include the ability to compute all 4 formula based on a user’s choice.
For a curvature of 4/3 the formula is:

For a curvature of 1 the formula is:

ℎ=

For a curvature of 2/3 the formula is:

ℎ=
ℎ=

For a curvature of infinity, the formula is:

𝑑𝑑1 𝑑𝑑2
17

𝑑𝑑1 𝑑𝑑2
12.75
𝑑𝑑1 𝑑𝑑2
8.5

ℎ= 0

The apparent ground plus obstruction height at a mid point is
𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴ℎ𝑡𝑡 = 𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺𝐺ℎ𝑡𝑡 + 𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂𝑂ℎ𝑡𝑡 + ℎ

The total apparent height(apparent ground height plus the First Frezenel Zone) at a
given midpoint is
𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇ℎ𝑡𝑡 = 𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟ℎ𝑡𝑡 + 𝐹𝐹1
The image below shows a sample set of mid point data and the calculated results for a
earth curvature of 4/3. The last 4 columns of the table in the image show the
calculated results.

Page 9 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

The following image shows the path loss for the same path and a graphical depiction of
the calculated results shown in the image above.

The table in the image below shows the calculated results for a path with the same
ground and elevation heights, but with a longer path distance. Note that the appearent
heights are higher that for the path above.
Page 10 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

The graph below shows that this longer path does not have sufficient clearance to be
viable in practice (the line representing the straight line between the antennae
intersects the total height). Increasing the antenna height at the beginning of the path
by a few metres would make the path useable. Also not that the path attenuation has
increased due to the longer path length.

Page 11 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Data File Format
The data describing microwave paths is provided in CSV format files. An example file
format is shown below. The first line of the file provides path-wide information, The
second and 3rd lines contain information about the path end points (i.e. the transmitting
and receiving sites). The fourth and all subsequent lines describe mid points along the
path. Detailed description of the contains of each line follow the example file.
NOTE: the CSV format uses the comma (,) character to separate data items on a line,
when a comma appears within a data item, that item must be enclosed in quotes in the
file. The enclosing quotes are not part of the data and must not be put into the
database.
Pah 01,13.0,Demonstration path,"A note about path 1, the first demo path"
0,50,40
1.5,75,20
0.1,50,Grassland,10,Trees
0.2,45,Grassland,1,Brush
0.3,48,Rough rock,0,None
0.4,52,Rough rock,0,None
0.5,60,Smooth rock,0,None
0.6,61,Grassland,20,Trees
0.7,60,Lake,0,None
0.8,60,Lake,0,None
0.9,60,Lake,0,None
1,61,Rough rock,5,Building
1.1,70,Bare soil,2,Trees
1.2,53,Grassland,10,Trees
1.3,66,Grassland,20,Trees
1.4,80,Grassland,3,Trees

The first line of the file contains the following information
Data Item
Name

Required Data type
or
Optional
Path Name Required Text
Path
length

Required Floating
point
number

Description
A unique name for this path.
The maximum length of this item is 100
characters.
The operating frequency for the path in
Gigahertz (GHz). Allowed values are between
1.0 and 100.0 GHz

Page 12 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Description Required Text
Note

Optional

A short description of the path
Maximum 255 characters in length
Notes about this path.
May contain special characters.
Maximum length of 65534 characters

Text

The second and third lines contain information about the end points of the path. While
both lines contain the same types of data, the second line represents the beginning of
the path and the third line represents the end of the path.
Data
Item
Distance
from the
start of the
path
Ground
height

Antenna
height

Required Data
or
Type
Optional
Required Floating
point
number
Required Floating
point
number

Required Floating
point
number

Description
The distance of this end point from the start of
the path in kilometres. On the second line this
should be 0. On the third line this will be the
distance from the end point described on line 2.
The height of the ground at an end point above
(or below) some reference point in metres. The
reference point is normally either sea level or
average terrain in the area where the path is
located. The most common reference is sea
level since most geographic surveys use it as a
reference.
The height of the antenna located at this end
point above the ground at this end point in
metres.

The fourth and all subsequent lines contain the following information:
Data Item

Required
or
Optional
Required

Distance from
the start of the
path
Ground height Required

Data
Type

Description

Floating
point
number
Floating
point
number

The distance from the start of the path to
this mid point along the path in kilometres
The height of the ground at an mid point
above (or below) some reference point in
metres. The reference point is normally
Page 13 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Terrain Type

Required

Text

Obstruction
height

Required

Floating
point
number

Obstruction
Type

Required

Text

either sea level or average terrain in the
area where the path is located. The most
common reference is sea level since most
geographic surveys use it as a reference.
There may be water instead of earth/rock at
a mid point, in which case, the height of the
surface of the water is used instead.
Maximum length 50 characters. The type of
terrain found at a midpoint. The allowed
values are:
Grassland
Rough Grassland
Smooth rock
Bare Rock
Bare earth
Paved Surface
Lake
Ocean
The height above ground of any obstruction
at a path mid point in metres. If there is no
obstruction at a mid point, a value of 0 is
placed in this field.
Maximum length 50 characters.
The type of obstruction located a path mid
point. An obstruction is any object that is
above ground level at a path mid point. A
mid point does not necessarily have an
obstruction. Allowed values for this data
item are:
None
Trees
Brush
Buildings
Webbed Towers
Solid Towers
Power Cables

Page 14 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

General Hints
A) Every group will probably have a different database design, which is perfectly
OK. However, if your group decides that your original database design is not
feasible in parts 2 or 3 of the project. You may change the database design to
better suit parts 2 or 3, if necessary. If you do make changes to the database in
part 2 or 3, go back and modify the file upload/import functionality and database
creation script in part 1 to match the new database design. Failing to keep the
upload/import functionality and database creation script up to date will prevent
proper marking of part 2 and/or 3 since a new, clean database will be created
and loaded with data when marking each part of the project.
B) Use relative paths for accessing files and directories in your site. Do not assume
that your application will be installed in any particular directory.

Page 15 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Common specification Information
The information in this section is given to remind you of what is expected when
processing data in a web application to preserve the integrity of the data used by the
application. Failure to use this information will cost you marks in the parts/sections of
the project where related operations occur unless there are specific notes in a
part/section telling you otherwise.
When you are told to validate a data item from a web form, you must check for:
1)
2)
3)
4)

The data item exists.
The data item does not begin or end with spaces or tabs.
If the data item is a required item, it must not be empty.
The data item must not exceed its maximum length and/or must be within its
specified range of values.

When inserting or updating database records, ensure that the record is properly
protected from malicious content.

Page 16 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Submission Requirements
Each part of this project is to be submitted to the appropriate FOL drop box by the
deadline for that part of the project.
Each submission is to contain your entire project to date (the submission for part 1 will
contain part 1, the submission for part 2 will contain parts 1 and 2, and for part 3 all 3
parts must be submitted.
Submit a single zip file containing all of the files and directories necessary to run your
project (excluding PHPGraphLib if you use it in part 3). The zip file name must include
the part of the project being submitted and the name or number of the group.
You may submit as many times as you like, but only the LAST file submitted will be
marked.

Page 17 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

Part 1 Requirements [ marked out of 160]
A) [10 marks] Define a site structure for your project such that the files and
directories for each part of the project are within separate directories within the
overall site directory. The overall site directory is to contain only an index.php file
that produces a menu allowing users to access the functionality of the project.
There may also be directories for common CSS, JavaScript and Images in the
site directory. CSS, JavaScript or Images that apply only to one part of the
project must be stored in directories within that part’s directory.
B) Define Database [this section contains 45 of the marks for this part of the project]
Create a MySQL database for your project to use. This database needs to meet
the following specifications.
a. [1 mark] The projects database must not contain any tables other than
those required for the project.
b. [1 mark] The name of the database must reflect the purpose of the
database.
c. [1 mark] The database must use the UTF8 character set.
d. [2 marks] Create a non-DBA database user account for your application to
use to access the database. This user account must only have access to
the database for this project and publicly available databases.
e. [30 marks] In the project database create the tables necessary to store
path file data. When creating the tables, pay attention to the types and
sizes of the data described in the Data File Format section above, files
adhering to this format will be used to test the application. The table
schemas must include the definition of relationships between the tables.
f. [10 marks] Create a MySQL script file that can be used to create or
recreate your project’s database. This script file will be used to create an
instance of your database for marking, MAKE SURE IT WORKS
PROPERLY. This file must include the following, in the given order:
i. Delete an existing instance of your database, if one exists
ii. Create a new instance of your database.
iii. Delete your database user, account if it exists
iv. Create your database user account
v. Assign all privileges on your project database to your database user
account
vi. Create your project’s database tables within your project’s database.

Page 18 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

C) Upload path data file and import its contents into the database [this section
contains 55 of the marks for this part of the project
Write a PHP web program that will allow a user to select a CSV file contain the
data about a single microwave path to upload to the web server and then import
the contents of the file into the database. The program must meet the following
specifications:
a. [5 marks] The program must display a web form that allows the user to
select a single CSV file containing path information and upload it to the
server. The form must include a brief explanation about how to use the
form.
b. [6 marks] After submitting the form, the uploaded file’s existance in the
temporary directory is to be confirmed and all of the metadata about the file
is to be checked and/or validated.
c. [4 marks] If there are any checks or validations that fail in b. above, the
upload form is to be re-displayed with appropriate error messages.
Processing must not proceed any further until a successful upload is
achieved.
d. [2 marks] Once a successful upload is achieved (no check or validation
failures in b. above), the uploaded file is to be moved from its temporary
location to a permanent location. During the move, the file is to be given a
unique, but meaningful name. Keep track of the new name as you will
need to use it to import the data into the database. The new name will also
need to be associated with the path information stored in the database.
e. [38 marks] Using the file in its permanent location, open the file and read it
in one line at a time, populating the database as each line is read in.
Validate each line’s fields to ensure that they contain valid data, based on
the Data File Format section above. All database operations (open, insert,
etc.) are to be checked for errors. If any validation or database error is
detected, the entire path import is to be aborted with no records for the path
being left in the database tables.
HINT: Trying to process CSV file lines using standard file input techniques
is error prone, PHP includes some special functions for reading data from
CSV files that can assist you. Look at www.php.net.
HINT: The PHP empty function won’t help with checking the validity of
fields (especially numeric data), you will have to use other functions to help
you check the correctness of the data from the CSV files.
Page 19 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

HINT: Check out the use of MySQL transactions, they can help you meed
the error handling requirement described in this section (mysqli has special
functions for transaction processing).
D) [20 marks] Display a path’s data using the database
Using PHP create a web form that includes a method for selecting one path from
all paths stored in the database. This method can either be a tabular list of
available path names with a radio button beside each path name used to identify
the path to display OR a select drop down of path names from which to select a
path. Form submission MUST use AJAX to send the selected path to the server
and to receive the path data to display. The path data must include ALL of the
data items described in the Data File Format section above. You may use either
HTML or JSON formats for the AJAX response from the server. Whichever
response format is used, the rendered out must consist of 3 tables, one for the
general path information, one for the end point information and one for the mid
point information. The tables must include proper headings for the data. There
must be a line of text identifying the contents of each table immediately above
the table.
E) [20 marks] Reset the database content for a path to the originally uploaded data
Part 2 of this project allows a user to edit the path data stored in the database. It
may be necessary to reset the data stored in the database back to the originally
uploaded data. You are to use PHP to create a web form that will allow a user to
select a path to reset. This path selection form has the same requirements as
the one described in section D) above. The form is to be submitted using AJAX
and all responses to the submitted form must use AJAX containing either HTML
or JSON formatted information indicating the success or failure of the reset
operation. The reset operation is to perform the following operations in a feasible
order (the order is up to you):
i. open the CSV file for the path in the permanent file storage directory
ii. delete the path end point and mid point data for the path from the
database
iii. update the general path information (frequency, description and note)
in the database to match the contents of the CSV file. You must
validate the data from the file and check for database errors
iv. re-insert the end point and mid point data into the database. You
must validate the data from the file and check for database errors.
Page 20 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

If there are any database or validation errors, the contents of the database is to
be returned to the state it was in before the reset operation began.
F) [10 marks] Add CSS of your choice to your code to improve this part of the
project’s look and feel.
Part 2 Requirements [This part is makred out of 130]
In this part of the project you are to implement the functionality necessary to permit the
editing of a path’s data. All of the data originally imported from a path’s CSV file may
be modified EXCEPT the path name. The following specifications must be followed:
Except for the form described in section A) below, all of the functionality in this part of
the project is to be done using AJAX communication between the browser and web
server. All AJAX server responses are to contain JSON formatted data ONLY. See the
Grading Information section above for the penalty that will be applied to this part of the
project if AJAX and JSON are not used as instructed. The jQuery library MUST be
used to perform all AJAX operations.
A) [10 marks] Create a web form that contains a list of all paths currently stored in
the database with a means for selecting from this list the path to edit. This web
form is to be the initial page of the edit functionality and is to use a full-page load.
B) [20 marks] After selecting a path to edit on the form produced in part A) above,
an AJAX request is to be sent to the web server for the selected path’s details.
The response containing the details is to be sent from the server to the client in
JSON format. The path details are to be added to the form page using
JavaScript. The general path information, end point details and mid point details
are to be displayed in 3 separate tables on the page in a manner similar to that
used in Part 1 section D. In addition to the tables containing the path data, there
is to be a means (button, radio button, link, etc.) for selecting what to edit. With
appropriate supporting functionality. All general path information is to edited at
once, End point and mid point data must be edited one point at a time. See the
following sections for instructions on editing these 3 types of data.
C) 30 marks] Editing general path information:
a. After selecting to edit the general path information, display a form
containing all of the current general path information. The user is to be
allowed to edit all general path information except the path name. The
Page 21 of 28

INFO-5094 LAMP 2
Winter 2019 Project - Microwave Radio Path Web Site

form can be displayed as part of a modal 
element, a separate window, or by hiding the elements displayed in section A and B above and displaying the general information edit form. No matter which approach is used, all browser/server communication must use AJAX with responses containing only JSON formatted data. b. The user is to be allowed to cancel the edit operation at any time prior to submitting the form. c. When the edit form is submitted, the modifiable fields are to be validated on the server. If validation succeeds, the database record for the path’s general information is to be updated and a success message sent to the browser, otherwise appropriate error messages are to be sent to the browser. The database record is not to be updated if there are any errors. Only AJAX communication is to be used with all responses in JSON format. d. When the user finishes editing the general path information, whether by successfully saving modified information or by cancelling the edit operation, the output of sections A and B above are to be redisplayed with any modified information updated on the page. Any browser/server communications necessary must use AJAX with responses in JSON format. D) 30 marks] Editing a selected path end point: a. After selecting a path end point to edit, display a form containing all of the current information on that end point. The user is to be allowed to edit all of the end point’s information except the distance from the starting point of the path. The form can be displayed as part of a modal
element, a separate window, or by hiding the elements displayed in section A and B above and displaying the end point information edit form. No matter which approach is used, all browser/server communication must use AJAX with responses containing only JSON formatted data. b. The user is to be allowed to cancel the edit operation at any time prior to submitting the form. c. When the edit form is submitted, the modifiable fields are to be validated on the server. If validation succeeds, the database record for the selected end point is to be updated and a success message sent to the browser, otherwise appropriate error messages are to be sent to the browser. The database record is not to be updated if there are any errors. Only AJAX communication is to be used with all responses in JSON format. Page 22 of 28 INFO-5094 LAMP 2 Winter 2019 Project - Microwave Radio Path Web Site d. When the user finishes editing the selected end point, whether by successfully saving modified information or by cancelling the edit operation, the output of sections A and B above are to be redisplayed with any modified information updated on the page. Any browser/server communications necessary must use AJAX with responses in JSON format. E) [30 marks] Editing a selected path mid point: a. After selecting a path mid point to edit, display a form containing all of the current information on that mid point. The user is to be allowed to edit all of the end point’s information except the distance from the starting point of the path. The form can be displayed as part of a modal
element, a separate window, or by hiding the elements displayed in section A and B above and displaying the mid point information edit form. No matter which approach is used, all browser/server communication must use AJAX with responses containing only JSON formatted data. b. The user is to be allowed to cancel the edit operation at any time prior to submitting the form. c. When the edit form is submitted, the modifiable fields are to be validated on the server. If validation succeeds, the database record for the selected mid point is to be updated and a success message sent to the browser, otherwise appropriate error messages are to be sent to the browser. The database record is not to be updated if there are any errors. Only AJAX communication is to be used with all responses in JSON format. d. When the user finishes editing the selected mid point, whether by successfully saving modified information or by cancelling the edit operation, the output of sections A and B above are to be redisplayed with any modified information updated on the page. Any browser/server communications necessary must use AJAX with responses in JSON format. F) [10 marks] Add your choice of CSS to the pages in this part of the project to improve its look and feel. Page 23 of 28 INFO-5094 LAMP 2 Winter 2019 Project - Microwave Radio Path Web Site Part 3 Requirements [This part is marked out of 85] Write a web application to compute the path loss, apparent effect of the earth’s curvature on ground height along a microwave path and compute the First Freznel Zone value along a microwave path. The computed values are to be displayed after they are computed along with the path data stored in the database. In addition, a graph showing whether there is a clear path or not is to be generated. The calculations are to be performed based on a user selected earth curvature value. The formulae needed to perform the calculations are in the Background Information section of this document. The application must follow these specifications: Except for the form described in section A) below, all of the functionality in this part of the project is to be done using AJAX communication between the browser and web server. All AJAX server responses are to contain JSON formatted data ONLY. See the Grading Information section above for the penalty that will be applied to this part of the project if AJAX and JSON are not used as instructed. The jQuery library MUST be used to perform all AJAX operations. A) [10 marks] Create a web form that contains a list of all paths currently stored in the database with a means for selecting from this list the path to perform calculations on. The form must also contain a means for selecting which of the 4 earth curvature factors (4/3, 1, 2/3 and infinity) to use during the calculations. This web form is to be the initial page of the calculation functionality and is to use a full-page load to display it initially. B) [50 marks] After selecting a path to perform calculations on and the earth curvature to use on the form produced in part A) above, an AJAX request is to be sent to the web server for calculations to be performed. The response containing path details and the calculation results is to be sent from the server to the client in JSON format. The path details and calculation results are to be added to the form page using JavaScript. The general path information, end point details and mid point details are to be displayed in 3 separate tables on the page. The calculation results, except path loss are to be included in the table containing mid point information. You can use table formats similar to those used in Part 1 section D if you wish. NOTE: All of the calculations are to be performed in PHP. Using JavaScript to perform the calculations will result in a deduction of 50% of the marks for this section. NOTE: The results of the calculations MUST NOT be stored in the database. You may use the PHP session feature to store the results if any storage is necessary. Page 24 of 28 INFO-5094 LAMP 2 Winter 2019 Project - Microwave Radio Path Web Site Storing the calculation results in the database will result in a deduction of 50% of the marks for this section. C) [5 marks] The path loss information and the graph are to be displayed between the path/curvature selection form and the path details. The path loss information is to be described with an appropriate text string. See the next section for details on generating the graph. D) [10 marks] You are to generate a graph that contains 3 lines (data sets), a. a straight line between the receiving and transmitting antennae at either end of the path, b. a curve (may be jagged) representing the apparent height of the ground and obstructions along the path including the earth curvature, and c. a curve with the First Freznel Zone added to the curve in b. above. You may generate the graph either using PHPGrahpLib or an open-source, free JavaScript graphing library of your choice. PHPGraphLib is already installed on the course VM. If you choose to use a JavaScript graphing library, it must be included in the appropriate js directory and submitted along with the rest of your project code. E) [10 marks] Add CSS of your choice to this part of the project to improve its look and feel. Page 25 of 28 INFO-5094 LAMP 2 Winter 2019 Project - Microwave Radio Path Web Site Participation Form The next page contains the group participation form. Each group must submit one (1) copy of this form on paper at the beginning of the first class following the due date for each part of this project. Electronic copies of the form WILL NOT BE ACCEPTED. Each submitted form must contain the name of each member of the group who participated in the part of the project to which the form pertains. Along side each student’s name, he or she is to write a list of what work he or she performed for this part of the project and then sign the form in the provided space. Any group member whose name does not appear on the form, or who does not sign the form will receive an automatic grade of zero (0) for that part of the project. In addition, poor participation by any group member may results in a reduced mark provided that other members of the group can provide documented evidence of poor participation. Failure to submit a participation form for any part of the project at the beginning of the first class following the due date of any part of the project will be considered to mean that all students in the group participated equally in that part of the project. Page 26 of 28 INFO-5094 LAMP 2 Winter 2019 Project - Microwave Radio Path Web Site Group Member Participation Form Group Name/Number ____________________________________ Project Part _______ Date _____________________ Member Tasks Performed Signature Page 27 of 28 INFO-5094 LAMP 2 Winter 2019 Project - Microwave Radio Path Web Site References [1] White, Robert, Engineering Considerations for Microwave Communications Systems, GTE Lenkurt Inc., 1970. Available from various online sources in PDF format Page 28 of 28

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.6
Linearized                      : Yes
Author                          : user
Comments                        : 
Company                         : 
Create Date                     : 2019:03:01 06:12:07-05:00
Modify Date                     : 2019:03:01 06:12:12-05:00
Source Modified                 : D:20190301111143
Subject                         : 
Language                        : EN-CA
Tagged PDF                      : Yes
XMP Toolkit                     : Adobe XMP Core 5.6-c016 91.163616, 2018/10/29-16:58:49
Metadata Date                   : 2019:03:01 06:12:12-05:00
Creator Tool                    : Acrobat PDFMaker 19 for Word
Document ID                     : uuid:c44756ba-b021-4d2b-bb8f-72530c99e2a3
Instance ID                     : uuid:2aa6236d-935a-48db-ac94-89aa78f2eb95
Format                          : application/pdf
Title                           : 
Description                     : 
Creator                         : user
Producer                        : Adobe PDF Library 19.10.123
Keywords                        : 
Page Layout                     : OneColumn
Page Count                      : 28
EXIF Metadata provided by EXIF.tools

Navigation menu