LD6034 -Web Programming Assignment Help
This assignment constitutes 50% of the assessment for this module. It is in two parts, one of which leads to the other. The aims of the assignment, which will lead you to the fulfillment of the module learning outcomes, are to:
- Develop a practical web solution using the PHP server-side scripting language and including dynamic web content by retrieving and manipulating data stored in a MySQL relational database and XML fil
- Justify the design of your web database system with reference to relevant literature
Your work, for all parts of the assignment, must be your own and, where you have used words from someone else (quotations), they should be correctly quoted and referenced in accordance to the Harvard (Northumbria) System.
Referencing and academic writing support
For more support on academic writing and citation.
Academic Integrity Statement: You must adhere to the university regulations on academic conduct. Formal inquiry proceedings will be instigated if there is any suspicion of plagiarism or any other form of misconduct in your work. Refer to the University’s Academic Regulations for Taught Awards (ARTA) section 1.11 if you are unclear as to the meaning of these terms. The latest copy is available on the University website1.
Failure to submit: The University requires all students to submit assessed coursework by the deadline stated in the assessment brief.
Part A – Specification and Design (30%)
This part of the assignment covers the following module learning outcome:
- Specify and design web database systems with justification
Part B – System Development (70%)
This part of the assignment covers the following module learning outcomes:
- Build the presentation layer of multi-tier applications using an appropriate scripting language
(e.g. PHP or Java).
- Integrate and test software components that reside on either a web or database server
The deadline for both parts is Monday 13th May 2019 (no later than 4pm). Detailed submission instructions are below on pages 9-10.
You are writing a system for clients to be able to import , Retrieve and export information from music playlists containing individual songs. The final system in production will ultimately allow multiple playlists to be imported. However for this assignment as the system is at the prototype phase, there is only one xml playlist file of songs that you need to import and display which is at the following link: http://unn-cgel1.newnumyspace.co.uk/playlists/playlist.xml.
Note: In order to view the XML structure from this feeds, it is recommended that you view the source of the page in the browser, e.g.
view-source:http://unn-cgel1.newnumyspace.co.uk/playlists/playlist.xml You can also see a sample of the XML in the Appendix of this assignment.
You should use SimpleXML to access the XML file, extract the relevant XML and then reformat it in the way required. A list of the song details from the XML file should be displayed on the main page of your site in HTML and each title should link to the webpage where the song can be purchased on Amazon.com (this link is provided in the xml file). This listing page should be available to all users. It represents the most recently imported playlist for the site.
If a user logs in to the system then, additionally, they should be able to save the reference to any songs so that they can create their own playlist(s) in a ‘my playlist’ page. They should also be able to retrieve any previously saved song details from this playlist, add new songs and also delete them.
Please note that you may not be able to implement all the requirements that follow; this is to be expected. With a technical assignment such as this the requirements include some quite difficult parts that only a very strong student will be able to complete – this allows us to give a range of marks appropriate to ability. Look at the marking scheme on pages 8-9 for some idea of the breakdown of marks.
Part A – Specification and Design
You need to first consider relevant literature regarding usability and interface design and present some colour wireframes for your proposed solution annotated with key information relating to the interface design.
The wireframes should be accompanied by a report justifying your design choices which draw on references from relevant literature regarding usability and recommendations for effective interface design (using Harvard referencing). This document should be between 1,000 and 1,500 words in length.
This component of the assessment is worth 30% of the total marks available for the assignment.
The criteria used for its marking will include:
- The completeness and appropriateness of design documents (i.e. wireframes and site design)
- The level at which the literature is analysed and relevance of the usability and interface design issues explored and justified
- The use of references and examples from relevant literature to support the work.
- Citation and the use of Harvard referencing
The detailed marking scheme for part A is on page 8 of this assignment.
Part B – System Development
Read the XML structure in Appendix one which shows an example feed with the items that are the articles. This will help you better understand some of the detail that follows.
Your website should be well-designed with a professional look and feel. You should use HTML5 for this assignment. You will need to implement the following:
- A header and footer for all pages displayed so that all pages in the site have a consistent look and feel.
- The homepage should list all the song details from the XML file in the form of HTML. The XML elements you should display for each item element are: songtitle, artist, releaseyear, genre and link.
You should use SimpleXML only, none of the other php libraries, to access the XML file, extract the relevant XML and then reformat it in the way required.
- A search box on the homepage listing, allowing partial matching by title or genre using Xpath.
Then only songs matching the search criteria will be displayed on the front page.
- A means of accessing an Amazon.com webpage where the user can purchase the particular song when the link from the front page is clicked.
- A means by which a registered user can login which should be available from the homepage.
You should use PHP sessions to manage persistence of the login state across all pages and store the date/time of the login.
- A means by which a user, but only if logged in, can save song details to the saved_songs
database table (see accompanying database creation script on eLP) using PDO commands.
- A means by which a user, but only if logged in, can retrieve and display any previously saved song references from the saved_songs database table using PDO commands.
Registered users should be able to login and logout, via a facility available from the front page. Any one of the three registered users (see the database table ‘members’) should be able to log in by typing their email and password (their login details are in the SQL script provided).
Note that, for security, the passwords are stored on the database in encrypted form. Once logged in you should ensure persistence across all pages by using PHP sessions. You must also store the date/time of the login to the lastlogin field of the members table.
Logging in will mean that the user has access to the menus and functionality for saving and retrieving songs and playlists. Logging out should clear all session information.
Your site should have its own header and footer. The header area should contain appropriate system titles or images and menu options and a means of logging in and out. Show each song from the XML playlist feed in an appropriate, well-designed layout, displaying the song title as the hyperlink, accompanied by the artist, genre and releaseyear.
Remember, if the user is logged in extra menu items and functionality are available. Songs can be saved to a ‘my playlist’ area by means of appropriate form elements (such as checkboxes, links or buttons) on the front page alongside the list of songs.
You should also be able to link to a list of saved songs (‘my playlist’ area) for the specific logged-in user.
There should be a search box on the front page. By default, the page should display ALL of the retrieved songs, but what is listed will change in response to the Xpath search, if one is performed.
Saving the Song Details to the User’s Playlist
You need to implement a means for a logged in user to save the references to multiple songs in one action to the database for further reference, e.g. by selecting a checkbox next to each song’s details.
- songid (this must uniquely identify a song. Use the songid data here which represents the track’s ISRC, i.e. unique identifier)
- a means of linking the logged-in user to the saved song
Note: If you haven’t been able to write the code correctly which lists the articles directly from the XML file using SimpleXML, you could hard-code the song details. This would allow you to demonstrate that you can save the songs to the database, and attempt partial marks for this section.
Listing User’s Playlist Items
There should be a menu option, only available to logged-in users that will list the user’s playlist (i.e. their saved songs) from the database.
Deleting Saved Songs from the Playlist
You need to implement a means for a logged in user to delete multiple saved songs in one action from the database, e.g. by selecting a checkbox next to each saved song’s details. A partial solution which would receive fewer marks would allow one song at a time to be deleted.
Export Playlist to XML file
There should be a means for members to be able to export their own playlist details to an XML file. This XML file should have the same format as the one provided in the assignment for importing data. You should use file writing commands to create this XML file which should be named ‘exported_playlist.xml’ with today’s date prefixed (at the front) of the filename in the format ddmmyyyy.
Note that all pages should validate without any HTML errors as reported by http://validator.w3.org/
using the HTML5 standard.
The client will be using a MySQL database. The SQL database scripts and associated files needed are all in the assignment folder on eLP (Blackboard).
- You must use SimpleXML for all XML interactions, and PDO for all database connectivity. You will lose marks if you do no
- Please make sure you plan your code and the way different components will work . you start writing any cod
- Attempt all parts, it’s easier to get a few percent at the start of a question than get those last few percent trying to get a perfect solution to one part. In short getting less than half marks for all parts is better than getting almost full marks on only one part.
- Even if you don’t get all the XML parts working, though you probably should, don’t miss out those parts that require you to save things to the database.
Links for Us