Introduction

The planning stage is identified by many as the most important process in the software development process as it is essential for capturing user and client requirements which form the basis of any well-designed fit-for-purpose system. For our project, we were supplied with an official brief by our clients (as shown below) which, through further discussion with them, was altered to fit our development time-frame and the skills/assets at our disposal. In our meetings, we also identified a list of requirements for our systems as shown on this page.

Official Brief

"Data journalism solution for analysing all of the UK House of Commons debates since 1988. Big data semantics similarity search with Machine Learning APIs"

The official brief changed and the machine learning aspect of the project has been take out. We are also including all the debates that have been recorded since 1802 rather than 1988 onwards. Our API will be accessible by the public.

Requirements Summary

Fundamentally, our system is to be made in the form of a web application and it would be hosted on the web, which would be accessed by users through a web page. Our system has to somehow extract text from the Hansard database and display search results when queried. We also need to provide the public with API, which could be in the form of RESTful or Java API.
On top of the fundamental requirements, the system should also provide at least a few important features to provide better usability to the users. The users should be able to search by topic, either by choosing from a given list or by filling a form field. After a search has been performed, the system should also suggest texts that are similar to the one currently presented. The users should also be able to choose the size of the texts being displayed. This can range from individual sentences to whole debates.

Requirements Table

Requirement No. Name Description Priority Functionality
RQ01 Web-site The system is to be hosted on the web, being accessed through a web-page Must-have Functional
RQ02 Retrieve Text From Hansard The systems is to retrieve text from the Hansard online database and then show this data to the user Must-have Functional
RQ03 Create Open-Source API Wrap the core functionality in an API to let users interact with the data. Either RESTful or Java API Must-have Non-Functional
RQ04 Different-Sized Text Retrieval The ability to retrieve whole debates, paragraphs or sentences from the Hansard database at the user's request Should-have Non-Functional
RQ05 Browse Data by Topic Select a topic from a list or search using a form field to retrieve all data relating to the topic Should-have Functional
RQ06 Similarity Suggestions Suggest similar text from the Hansard database to the one being currently viewed Should-have Functional
RQ07 Graphical Representation Implementation of tools which allow for a graphical representation of data such as pie-charts of what parties talk about a particular project Could-have Non-Functional
RQ08 Political trend-finding Retrieve text to find trends of hypocrisy and consistency of political parties Could-have Non-Functional
RQ09 Spell-Checking Suggests alternate queries if a spelling mistake is detected Would-have Non-Functional