Introduction

Scenario: A local news company is interested to know how often certain keywords appear in news stories on the internet. They can’t afford anyone to track this manually, so they have instead commissioned the development of a web application that can be used to read in an RSS feed from a provided link and search through for a set of provided keywords. The result of this analysis then gets stored in a database for later querying and display.

Requirements Specification

You are required to produce web page areas. You can use more if you feel that it would help properly separate out the various elements of your system, up to a maximum of six pages of XHTML/PHP code. It is advised that you use one of these to create a simple setup.php file that populates your database with testing data.

RSS files may be stored locally, but extra marks are available for those that query live RSS streams across the internet.

Page Area 1: XHTML Front End – frontend.html

Your front-end should offer an XHTML interface to the application, allowing for the choosing of RSS feeds (from a drop down menu) and the setting of keywords (comma delimited, presented in a single input field). The application should also have buttons for querying by the provided keywords, and also for querying all data stored in the database.

Page 2: Analyse RSS Feed– analyse_feed.php

The analyse_feed page will take the content from an RSS file, parse it into an appropriate format for examination, and then count the number of the specified keywords that are found. These then get stored in the database in the form of ‘keyword, article, feed, number of instances’. Each article should only be analysed once for each keyword, and not stored more often in the database.

Page 3: Query Database – query_database.php

The query_database page provided a mechanism for returning data according to one of several specified categories:

  • Information about a specific keyword – where it has been found, from what feeds, and how often.
  • Information on a set of keywords – comma delimited, and displayed as a histogram. Each keyword should provide a link that allows for the specifics to be queried as per category 1.
  • Information on all keywords – displayed as a histogramof all keywords stored in the database, with each keyword linked as per category 2.

Non-Functional Requirements

You are required to develop these pages using suitable PHP and XHTML. For simplicity in this assignment you may use CSS or tables for layout and presentation. There are more marks available if you use CSS.

In order to meet the requirements specification in will be necessary to support the complete process using a three-tier web architecture as follows:

  • Data Tier - must persistently store the data in a form suitable for distribution. A small SQLite database must be developed to store the necessary data. This may involve the development of the specified tables within the database. You may create further tables in the database if you wish. To help distribute the data it will be necessary to develop a series of SQL queries to return the data from the database.
  • Logic Tier – this must contain all the necessary processing to both handle information requests from the HTTP client and process and return data to the presentation tier in the form of information. All processing performed by the logic tier must be handled by a standard PHP installation. The system must be deployed using the standalone web server software bundle Micro Apache SQLite and PHP (version MicroApache-2.0.61-PHP-5.2.5-SQLite.zip) and configured for use on pen drive as local host using the appropriate IP address and port number. The resultant HTTP Server must be capable of running on the university network without reconfiguration.
  • Presentation Tier – this must contain all the necessary client side code to support user interaction with the system. All code should ideally conform to the W3C XHTML specification and at least be compatible with the default HTTP client installed on the university network. Additional marks will be given for pages that use CSS for formatting.
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.