$30
CS230 - Web Informa2on Processing
Assignment 4
This Assignment is worth 15% of the Web Informa7on Processing CA Component.
This is an open-book, graded assignment. You may use online resources for reference purposes only
to help with the assignment. Please cite all references as comments in your submissions. You cannot
directly reuse HTML/CSS/JS solu2on code from online sources. You must not engage with another
student, in person or electronically (phone, social media, etc.) to secure assistance with this assignment. If you do so you will receive an automa2c fail (0%). We will perform similarity checks on
submiGed assignments to check for collaboraHve efforts. A reasonable aGempt at this assignment
will gain you 15% of your conHnual assignment marks. It is possible to gain extra credit (up to a maximum of 5%) for this assignment.
Assignment 04 - Working with CRUD and Online Databases
You are required to develop two applicaHons for maintaining a database of personal details for users
of a hypotheHcal online store. The database, which should be called USERS (note capitalisaHon),
should contain tables that record user personal informaHon [Title, First Name(s)*, Surname*, Mobile*, Email Address*], and both home and shipping addresses [Address Line 1*, Address Line 2,
Town*, County/City*, Eircode]. The fields marked * are required fields, i.e., they must contain values.
Your soluHons should provide CRUD funcHonality for CreaHng, Searching (Retrieving), UpdaHng, and
DeleHng user informaHon stored in a relaHonal database (MySQL or MariaDB database) (i) using a
“back end” applicaHon (worth 10%) and (ii) using a modified “back end” together with an AJAX-driven “front end” applicaHon (worth 5%) demonstraHng a full-stack soluHon.
The following secHon details specific interacHon requirements for both parts of this assignment.
Assignment 04 - Requirements - (i) Back End Development (10%)
For this part of the assignment you first need to develop an applicaHon that demonstrates “back
end” funcHonality, i.e. implement the CRUD acHvity described below using randomly created, or
hard-craded, data. These data need to be ingested into your soluHon database and should be accessed using your back end applicaHon, which may be either a PHP or NodeJS applicaHon. Typically,
Assignment Release Date: 15-03-2021
Submission Due Date: 02-04-2021
Feedback Due Date (esHmated): 16-04-2021 (for assignments that make Due Date)
Support Laboratories Online Labs 06-07 (Two Weeks)
Total Mark: 15%
will need to self install PHP or NodeJS and database sodware in order to complete this assignment.
Note that PHP applicaHons may be executed from the command line once PHP is installed.
You should clearly indicate the secHons of your (PHP or NodeJS) program that implement the CRUD
acHviHes outlined below:
(i) For the C (create) acHvity you should demonstrate how to create the user record
(personal and address), and add it to the database.
(ii) For the R (retrieve/search) acHvity, you should randomly select and return all
users matching a supplied name.
(iii) For the U (Update) you should update three elements of a specified user record
(Phone, Email, Title) and all or any of their Address data.
(iv) For the D (delete ) acHvity, please delete all records for a user matching a combinaHon of Email, Phone and Name.
Please note:
(i) For this assignment, you should use a relaHonal database to store the informaHon for the user informaHon using your XAMPP installaHon (or an online accessible database). Please use node.js that has been installed locally or CLI (Command Line Interface) PHP that comes with the XAMPP installaHon. If you do not
have XAMPP/node.js installed please do so for this assignment. If you cannot
install these as you do not have a computer that facilitates installaHon please
contact John KeaHng (john.keaHng@mu.ie). A video will be posted to Moodle
demonstraHng how to use online resources for this assignment if you do not
have installaHon privileges.
(ii) You should implement best pracHce when it comes to relaHonal database design for this assignment, ie, you may need mulHple tables. You may need to
created index or ID fields not specified in the brief above. Try not to have a single monolithic table that contains everything!
(iii) You may write funcHons to randomly create personal and address data and you
may use the name generator funcHons provide for the Assignment 03 if you
wish.
(iv) Titles should include Mx, Ms, Mr, Mrs, Miss, Dr or Other (specify).
(v) You may reuse the created (or auto-generated) address as the shipping address
or add a different address.
(vi) For this assignment you only need to validate data on the Title field.
Please note for the first part of this assignment you do not need to write any “front end” code. All of
the CRUD acHviHes can be implemented within the soluHon applicaHon.
This means that you should be able to run the applicaHon as a console applicaHon; this applicaHon
implements the CRUD acHviHes and outputs the informaHon to the console display. You need to provide a data dump from your SQL USERS database together with your soluHon applicaHon in order
that it may be test4d and corrected. Failure to supply the data dump will mean we cannot test your
soluHon, and we will automaHcally deducted half of the marks available for this secHon of the assignment.
Assignment 04 - Requirements - (ii) Front End Development (5%)
For this part of the assignment you will need to (i) update your exisHng “back end” soluHon so that it
is accessible via AJAX, and (ii) develop a minimal HTML/CSS/JS ”front end” funcHonality that demonstrates consuming two of the CRUD acHvity components (Create and Retrieve) using AJAX.
You may use the pure JS or jQuery AJAX implementaHons for this “front-end” demonstraHon. There
are no requirements to develop a complete set of HTML/CSS/JS CRUD “front-end” forms for this assignment.
It is sufficient to use hard-coded data to send to, and revive data from, your “back end” service. ApplicaHon output demonstraHng the two CRUD acHviHes should be output to an in-page page console
(as I have done in some demo lessons to date), and not to the Browser JS console.
Assignment 04 - Development Notes
Please adhere to the following development requirements:
1. You may not use RESTful frameworks (for example, Express.js, etc.) for this assignment. This assignment requires you to use core fundamental code for manipulaHng databases. You may refer to
online resources such as W3schools, of course. You may use any of the code provided in the CS230
Lessons or Lectures. Please refer to the lessons on AJAX and the demonstraHons of NodeJS services for the second part of the assignment.
2. You must comment your code (for “front end” and “back end”), clearly indicaHng, how your code
implements the soluHon described above in the “Assignment 04 - Requirements (i) and (ii)” secHons.
Please note that there are many sample (JS/PHP) soluHons for implemenHng similar soluHons (database) funcHonality available online. While it is fine to consult these, and accompanying arHcles, for
references, you may not re-use code from these projects. Please cite your reference sources in your
codebase. We will search and idenHfy online coding soluHons to similar problems for the purposes of
checking against submiGed soluHons in instances where we have concerns about code originality.
Assignment 04 - Extra Credit (5%)
For an extra 5% credit you are required to develop a fully funcHonal HTML/CSS/JS User Interface (UI)
that supports the full CRUD acHvity. You may use any JS (or other) framework to implement the UI
(Bootstrap, jQuery, jQuery UI, etc.).
IMPORTANT SUBMISSION DETAILS
Before submiYng your assignment students should check that their solu2on works in Chrome
and/or Firefox. Please indicate the Browser, Opera2ng System (Linux/Windows/MacOS) and
Browser version used for tes2ng (as a comment in your submi[ed code). If you use an online IDE
please clearly specify the IDE and provide a link where possible.
All work must be submiGed via Moodle (see "Assignments" secHon for submission). Work submiGed
via other means will not be accepted unless you have prior arrangements with the Head Demonstrator (Behnam Faghih). All work MUST be submiGed by the due-date deadline. Late submissions will
not be accepted.
The assignment submission is a zip file named “assignment-04-xxxxxxxxx.zip” (where “xxxxxxxxx” is
your student id) containing solu7on files, e.g. named “assignment-04.js”, “assignment-04.php”, etc.
together with any other resources used in the assignment solu7on. External CSS and Javascript files
should be named “assignment-04.css” and “assignment-04.js”, respec7vely. Please ensure that all
external files use rela7ve directory referencing, rather than hard-coding the files’ loca7on.