34
NextIn Find your next event in Manchester! Tanmaya Madan Supervisor: Dr. Caroline Jay Draft: 3 rd May 2016 A report submitted in part fulfilment of the degree of BSc (Joint Hons) in Computer Science and Mathematics

NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

NextIn

Find your next event in Manchester!

Tanmaya Madan

Supervisor: Dr. Caroline Jay

Draft: 3rd May 2016

A report submitted in part fulfilment of the degree of

BSc (Joint Hons) in Computer Science and Mathematics

Page 2: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Abstract In this digital era where technology is advancing at an ever-increasing pace, web users want to stay

up to date with what's happening around them with minimal effort. To satisfy this need within our

virtual society, a website is built that allows users to view, add, edit or promote events happening in

the area under purview, which is Manchester in this project.

The aim of the project, in simple terms, is to create a website which acts as a platform for users to

stay abreast of the latest events happening in Manchester and at the same time, allows event

organisers to use it as a platform to promote their events reaching out to a greater number of

audience.

Some highlights that the website encompasses vary from a simplistic user interface to a search

engine with multiple filters facility, from star rating events to an event recommendation engine and

beyond. Accomplishment of such demanding targets has been greatly satisfying.

Successful completion of the functionalities of the website enabled testing of the features, followed

by user evaluation. The feedback received from the users encouraged in making useful additions. .

The report contains an in-depth approach of creating the targeted website and its various stages of

development, which are discussed in detail in the respective chapters.

Page 3: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Acknowledgement I sincerely thank my supervisor, Caroline Jay, for her valuable guidance, unstinted support and deep

insight in helping me to improve different facets of the project throughout the year. It is because of

her encouragement and confidence in me that helped meeting tough challenges in the entire

process of project development. I consider it fortunate to have her as my project supervisor and I

express profound reverence for her faculties and precious feedback that steered me to take forward

the project work in the right direction.

I would also like to thank my fellow colleague, Raghav Bansal with whom I have integrated my part

of the website to make it fully functional website with several high-end functionalities. He has been

of great help and understanding, whenever the need be.

Finally, I would like to thank my friends and family who have been there to provide technical input

and moral support. Similarly, I convey my sincere thanks to all who contributed in the process of

product development through their user evaluations, valuable feedback, suggestions and more.

Page 4: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Table of Contents

1 Introduction .......................................................................................................................... 6

1.1 Motivation ................................................................................................................... 6

1.2 Aims and objectives ..................................................................................................... 7

2 Development ........................................................................................................................ 8

2.1 Design.......................................................................................................................... 8

2.1.1 Requirements Gathering .................................................................................. 8

2.2 Website Architecture ................................................................................................... 9

2.3 User Experience ......................................................................................................... 11

2.3.1 Web Design .................................................................................................... 11

2.4 Methodology ............................................................................................................. 12

2.5 Tools and techniques ................................................................................................. 13

2.6 Implementation ......................................................................................................... 15

2.6.1 Landing Page .................................................................................................. 15

2.6.2 Search ............................................................................................................ 18

2.6.3 Recommendation Engine ............................................................................... 20

3 Testing and Evaluation ........................................................................................................ 22

3.1 User Experience ................................................................................................ 22

3.2 Performance ..................................................................................................... 23

3.3 Unit Testing....................................................................................................... 25

4 Reflection and Conclusion ................................................................................................... 26

4.1 Reflection .................................................................................................................. 26

4.2 Conclusion ................................................................................................................. 26

References ................................................................................................................................ 28

Appendix ................................................................................................................................... 31

Page 5: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

List of Figures

1. Architecture of NextIn ....................................................................................................... 9

2. Browsers trends for the past year .................................................................................... 10

3. Multi-tier Architecture Model ......................................................................................... 10

4. Iterative Development Process ........................................................................................ 12

5. First Draft of nextIn ......................................................................................................... 15

6. ‘Our Event’ space of the First Draft .................................................................................. 16

7. Final Landing Page ........................................................................................................... 17

8. Search Engine Basic Query............................................................................................... 18

9. Santization of user input.................................................................................................. 18

10. Search Algorithm ............................................................................................................. 19

11. Search Engine of the Website .......................................................................................... 19

12. An example of an event and its suggestions .................................................................... 20

13. Interactor methods to track user data ............................................................................. 21

14. Retrieving IP Address of the user ..................................................................................... 21

15. Chrome DevTools evaluation of NextIn............................................................................ 24

16. Selenium test results ....................................................................................................... 24

17. Formatted Code .............................................................................................................. 25

18. Minified Code .................................................................................................................. 25

List of Tables

1. Prioritisation of Requirements ........................................................................................... 9

2. User Feedback on First Draft of Landing Page .................................................................. 17

3. User Feedback on the Final Website ................................................................................ 23

Page 6: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

1 Introduction

In the modern day of computing, firms are significantly dependent upon technology. It has become a

core part of their businesses. Similarly, in the events industry, new technologies are being used

increasingly to improve business efficiency. “On Facebook, 1,484,000 event invites are posted every

20 minutes” [1], which is the testimony of potential and magnitude of this upcoming industry.

This report documents creation of an interactive website, which aims at offering the users

information about the events happening in the city of Manchester. This report features an

understanding of the core functionalities of the website, named as 'NextIn'. The name of the

website comes from the idea of keeping the users updated with new events coming up in the area.

This chapter outlines the motivation, aims and objectives of the project and overview of the

application that has been attempted. The web application makes use of a number of modern web

technologies that are different from the traditional web development practices, which will be

discussed in detail.

1.1 Motivation As a student living in Manchester, it became a sort of challenge to find out occurrence and features

of events of one’s interest in and around the city of Manchester. A possible reason behind this could

be that student events were given less importance by the current players in the events industry, as

much as these deserved. This, therefore, seeded an idea of seizing the opportunity to construct the

website, NextIn. The website is a purported events listing platform, which presents happening of the

events targeted at students in Manchester. Its primary objective is to enable and enhance users’

experience whilst they are browsing for events by providing a simplistic user interface. There exist

well-established websites who provide such services around the world, but none exist for

Manchester in specific especially focusing on student societies. Therefore, the existence of NextIn

will help bridge the gap between student society events and Manchester’s student population.

Next, as a student, accepting this challenge in the form of a project was intended to accomplish

certain personal learning goals, besides achieving the project related objectives. The main

influencing factor behind this project was an urge to learn different languages like HTML5, CSS3,

LESS, PHP, MySQL, JS, AJAX and jQuery at a somewhat higher level. An advanced knowledge of these

languages and the techniques involved would upgrade one’s faculties and strengthen one’s profile to

take up assignments of higher level in Web Development arena.

Further, acquiring the ability to use third party application and implement the same to another

application has been the other objective behind taking up of the project. This was somewhat

reassuring as it involved code readability technique and its application. With regards to non-

technical goals, enhancing the project management skills was an important ambition, which involved

a thorough planning, organised structure and efficient time management.

Page 7: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

1.2 Aims and objectives Prior to commencing the development of NextIn, there were plethora of pre-conceived ideas about

the project features, which could be embedded for the website. This was followed by enlisting of

new concepts and programming languages that required to be self-learnt, to successfully implement

the overall plan. The aims and objectives of the project are briefly stated below:

1. To develop a web application by making use of key web technologies and modern

frameworks like jQuery [2], Google Analytics [3], Bootstrap [4] etc.

2. To implement a scalable search engine, allowing users to search for a specific event. Also,

provide the ability to add filters to the search in further development.

3. To build a recommendation engine that tracks the users’ session activity to predict users’

preferred events.

4. Make use of the cryptographic security measures in user authentication processes. One way

to do this is sanitising algorithms to prevent SQL Injections.

5. Mine data from sources to test the functionalities implemented with big data.

The objectives mentioned above were placed in the order of priority. High priority was accorded to

the aspects like the importance of the functionality, required time investment, implementation

constraint and finally its feasibility.

The main objective of the application is for the users to be able to effortlessly navigate through the

website to either find their specific event via the search functionality and/or have a good experience

browsing events through different categories/tags/recommended events. At the end of the day,

NextIn aims to enrich or users’ experiences whilst they look forward to finding out the events

happening around them.

Page 8: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

2 Development

This part of the report outlines various steps taken in different phases of development whilst

shedding light on the technical aspects of each iteration. The section also covers the challenges

faced in the process of development and how they were addressed.

2.1 Design One of the first steps in the process of development of an application is collecting both functional

and non-functional requirements. Identifying them at an early stage of development facilitates the

developer with a broad outline to blueprint the objectives appropriately. Although, following the

principle of Agile [5] methodology, these requirements get updated after each iteration;

nevertheless, it was considered vital to collect sufficient amount of information before giving a start

to the development phase. Gathering requirements upfront helped perceiving the users’

expectations, which could be used to build a system that meets the users’ needs. The design focuses

on constructing a website, which has functionalities a user would like to use.

2.1.1 Requirements Gathering

Functional requirements specify what the application should be providing to the user as a basic

necessity. The requirements in Table 1 are ranked using the MoSCoW [6] prioritisation method. It is a

technique used to sort features of an application in an order of priority. This helps the developers to

understand and differentiate the users’ view of what is essential for the website and what is not.

Successful completion of such features allows developers to work on the non-functional

functionalities, which are not part of the basic requirements but add value to the overall website.

.

Other than the basic functional requirements of the website, there are requirements that define

how a system is supposed to be. These are the non-functional requirements which are divided in 5

sub-categories known as the FURPS [7] model.

Page 9: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

1. Functionality – What does the user want?

- User requirements-which are over and above what is required in a basic system. In this

context, an example to cite is the high-end security needs to ensure confidentiality when

storing data at any third-party destination.

2. Usability – How effective is the website from a user’s point of view?

- The website must be aesthetically acceptable at an appropriate level of understanding

for the user. In simple terms, the website should have a simplistic user interface with

straightforward navigation and a good look and feel.

3. Reliability – What are the possibilities of a system failure and what measures are taken for

its recovery?

- The website must have the ability to recover from system failure e.g. Inactive webpages

must be dealt with by being redirected to a generic error page.

4. Performance – What is the response time of the website?

- Response time acts as an important factor in a user’s experience. This can be improved

with the help of different methods e.g. use of cookies, using transitions to minimise

visual loading time, etc.

5. Supportability – Is it adaptive to new environments?

- Website should be supported in multiple platforms being used around the technological

world-be it small-screen smartphones or large-screen desktop computers.

In addition to FURPS, there is an advanced version known as the FURPS+ [8] model. The added plus

includes factors like Implementation, Interface, Operations, Packaging, Legal and more. Attempting

to incorporate these requirements would result in a high-end website with superior functionalities.

2.2 Website Architecture The website follows the basic principles of a Model View Controller [9] (MVC) architecture. The

primary idea of using this model was the separation of contents; the presentation, application and

business logic of the website. This model avoids Spaghetti code [10] consequences making the code

readable and reusable without modification. Figure 1 shows a visual representation of the model.

Figure 1: Architecture of NextIn [11]

The MVC model holds the logical structure of all data. In this case, the view consists of ASP pages

containing HTML and references to CSS files, separating the designing from the display. The

controller, being the user, connects the view and the model, whilst holding the business layer if

Page 10: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

needed for any task completion. For example, if there is a search request, which involves data

retrieval from the database, a function with input parameters is referenced, instead of SQL code

directly being applied within the business layer at the time. This also allows the code to be

maintainable for the use of future developers.

Although the website and its applications are compatible with most browsers, Google Chrome is the

primary web browser supported for the web applications. The choice of this browser was a

straightforward decision as Google Chrome is the most used web browser with a near monopoly

dominance of over 56% share in the global market [12]. A visual of the main browsers and their

market share is represented in Figure 2.

Figure 2: Browsers trends for the past year [13]

An alternative architecture technique that was considered is the simple Multi-tier Architecture

Model [14]. This is a traditional technique heavily used in the early days. Both models work in similar

ways with one key difference; the Multitier model restricts each layer to interact with its immediate

next/ previous layers; whereas, MVC allows each layer to access any layer in the model which is an

important feature to have. For example, in a scenario of a user rating an event, data can be swiftly

updated in the database and fed back with the new rating instantaneously onto the website. A

graphical representation is shown with Figure 3.

Figure 3: Multi-tier Architecture Model [15]

0

10

20

30

40

50

60

Most used browsers around the world

Chrome IE Firefox Safari Opera

Page 11: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

2.3 User Experience This section focuses on ensuring that the interface has elements that are easy to access, understand

and use. In order to implement this, it is essential to know what a user wants from a website of this

type. With this information, the development process can be adapted according to the users’ needs.

It can be challenging for a developer to build an application and get positive feedback without this

information.

2.3.1 Web Design A leading objective of any website is to gain new visitors every day, whilst hoping to retain the

existing visitors. A well-structured design is key to create a user-friendly environment. A website

needs to be interactive, responsive and aesthetic to gain the trust of the users.

“To create resources that can be used by the widest spectrum of potential visitors rather than an

idealized “average,” web designers should apply universal design principles. This requires that they

consider the needs of individuals with a wide range of disabilities, ages, and native languages”. [16]

Keeping this in mind, the Universal Design [17] framework was studied and applied while designing

the user interface of NextIn. This framework involved the following:

1. Equitable Usage – The design is set up to be of use for the people with a variety of different

abilities. Each user has the ability to impartially access and make use of the website. For

instance, the website has a high contrast colour scheme helping different types of users e.g.

users with weak vision or simply a screen with low backlight.

2. Flexibility in usage – Design is put together to accommodate a wide range of preferences of

the users. For example, the website has the ability to dynamically readjust its components if

the user resizes the page using the browser’s tools. Any change will not disintegrate the

appearance of the website.

3. Simple and Intuitive Use – The design is built to be easy to understand irrespective of the

knowledge, language or concentration level of the user. For example, the navigation of the

website is consistent throughout with global buttons and navigation bars at fixed positions.

4. Perceptible Information – The design communicates necessary information effectively to

the user regardless of the user environments with the help of information organisation,

engaging graphics and appealing animations. For example, readable text, bullet points & lists

to make content accessible quicker, graphics to help visual users, scroll/hover animations to

keep the user interested, etc.

5. Error tolerance – The design is aimed at minimising unintended actions. Some functionalities

have prompts to confirm/inform of the action taking place. For example, after an event has

been rated by a user, the user is informed of the same and is updated with the new rating.

6. Little Physical Effort – The design is built in such a way that it requires only slight efforts by

the user. User actions are grouped in certain parts of the webpage to minimise movement,

which is certainly beneficial for large screen desktops. Furthermore, all services of the

website are open to all, which means no user is required to fill out forms to be a member to

get additional facilities.

7. Usable Approach – Appropriate sizes and spacing have been taken into consideration for the

website’s approach and practise regardless of the user’s posture or environment. For

example, appropriate sizes and positioning were considered when building action targets so

that they can be found and selected comfortably in a small mobile device.

Page 12: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

In terms of responsiveness, the website is made available to all platforms from large-screen

desktops to small-screen smartphones as mentioned above briefly. IDC's figures suggest that 2015

has seen the biggest slump of PC sales with a decline of approximately 10.6% on a year-on-year

basis. [18] Given the trend, the decline is projected to continue as portable devices like tablets and

smartphones are becoming affordable to the everyday user. Keeping such facts in mind, Bootstrap,

an open-source web design framework, was used to help expand the website to all available

platforms.

2.4 Methodology A major development concern with the website was to build it within the designated time and have

the ability to add more functionalities later, without facing many glitches. Besides, working in

collaboration with the other counterpart, it was important that the chosen technique suited the

development style of the team as a whole. With the advantage of having worked in teams during

university and internships, agile methodology had been a tried and tested approach, which satisfied

all needs.

The Agile Manifesto [19] suggests 4 ways which are considered better for development:

1. Individuals and Interactions over processes and tools

2. Working software over comprehensive documentation

3. Customer collaboration over contract negotiations

4. Responding to change over following a plan

The initiation phase was spent on getting a concrete structure of the idea in mind, gathering user

requirements and understanding the different tasks in hand. By November 2015, the

implementation phase commenced with an aim to create a broad skeleton of the website at first.

This was followed by heavy code writing sessions in the month of December that involved value

addition work on the website by building its fundamental applications.

The key to agile development is to consistently get user feedback after each iteration. The process of

getting user feedback was similar to the requirements gathering method stated in sub-section 2.2.1

of the report. Usability testing was the key method to collect the user feedback and the same is

discussed in more detail under the Evaluation section. The data collected helps evaluate the website

along the process to avoid substantial workload at the post development stage. In other words, the

reason behind adopting this methodology with iterative development was to have a functional

application at all times and evaluate the website for improvements concurrently at regular intervals.

A visual summary of this development methodology is represented in Figure 4.

Figure 4: Iterative Development Process [20]

Page 13: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

2.5 Tools and techniques A web application has great scope of expansion if exploited with a variety of functionalities through

different programming languages and frameworks. Notwithstanding of the basic knowledge of the

fundamental languages from First Year Team Project, great amount of research and self-learning was

required and accordingly put in to successfully implement the features of such complexity. Some

vital languages used in the building process of this application are given below:

1. JavaScript

JavaScript is one of the 3 essentials of the World Wide Web acting as a core part of the project

functionalities. One fundamental use of JS was to create the responsive interface of NextIn to

improve user experience and provide dynamic functionalities. From hover animations to search

engine, from star rating system to the recommendation engine, all made use of JS extensively. JS

also had a role to play in implementing third party APIs like Interactor [21] and Google Analytics

for user activity tracking, as both are built in JS themselves.

jQuery is a popular JS library which was practiced for some features of the website. jQuery

promotes simplicity as it is intuitive and interesting to learn. One of the observable features of

jQuery is the backstretch of the landing page. This backstretch is a slideshow of moving images

overlaid by a translucent shade of changing colour schemes. All happens smoothly behind the

webpage content due to the ability to function without reloading the page when integrated with

AJAX [22]. Another reason behind choosing this technology was that it handles cross-browser

issue. Some JS files have issues with previous versions of browsers but jQuery eliminates this

issue. This avoids the developer writing more code for different browsers.

Alternative methods taken into consideration were the likes of AngularJS [23], EmberJS [24] or JS

on its own. AngularJS is a framework which has pre-coded modules which minimises the

knowledge gained for the developer. This would not be helpful to the student in achieving the

personal objective of gathering additional knowledge. EmberJS and JS on their own would have

turned out to be a great learning exercise for the student but given the time and resources, it did

not seem feasible to develop responsive functionalities without much upfront learning.

2. LESS

LESS [25] is an extension of CSS which allows variables, mixins, functions and other techniques

that allows CSS to be more readable, maintainable and extendable. For example, there exists a

folder containing functions of all icons. Similarly, there are folders, which contain code for all

colours, tables, buttons and other components that hold a reference to the file containing

variables for icons. This allows consistency throughout the styling code base. Similarly, LESS is

the source of all icons of NextIn as it is vital to keep this consistent throughout the website. In

return, this promotes consistency in navigation, which is a key to a good user interface.

SASS [26] is also a CSS pre-processor tool similar to LESS with the same goal. However, the lack of

detailed documentation of SASS meant that understanding this tool would require further time

investment. Moreover, SASS code virtually duplicates CSS code through a ruby compiler. This

results in less productive use of resources and possibly leading to a slower response time of the

website.

Page 14: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

3. PHP

It is a server side scripting language embedded with HTML to make static webpages interactive.

Built components of the website like header, footer, navigation bar, body content etc. and

added them to appropriate sub-pages dynamically using the .php extension. Furthermore, PHP

was widely used to write database-enabled web pages. It supports a range of databases, and

makes code writing simple if used with the right extensions, e.g. MySQL. Therefore, all database

related queries were handled by the same. For example, tasks like establishing a connection,

getting user activity data, adding new user data, updating data on the webpage, etc. PHP is the

primary language which enables the applications of the website, hence a major chunk of the

code was written in the same.

4. AJAX

It is a technique for creating a dynamic websites and is used in the process of exchanging data

with the server. With AJAX, the website can send and retrieve data from the server in the

background and update parts of the web page without having to reload the whole page. For

example, the star rating feature of each event updates the rating of the event instantaneously

with the help of this technique.

Page 15: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

2.6 Implementation This subsection outlines the implementation of the website and its applications, with primary focus

on its interesting and challenging areas. It involves the practices applied and their usefulness. In

addition, the challenges faced by the developer during the development process and their potential

solutions are discussed.

2.6.1 Landing Page

One of the aims of this website was to enrich people's experiences when searching for events. This

required an exceptional design to catch the eye of the user. Thus, a few days were spent on

experimenting new ideas and analysing the existing players’ work available in the public domain.

After undertaking extensive research on the user preferences and evaluating the data captured

during the user requirements process, the conclusion arrived was that users prefer direct snappy

information with a simplistic user interface.

The first draft of a fully functional landing page is shown in Figure 5. Basic technologies like HTML,

CSS, JS and Bootstrap were involved in the building of this page.

Figure 5: First Draft of nextIn

An interesting feature of this draft was the ‘Our Events’ button which allowed user to access

different categories of events provided by the website. Implemented in jQuery, this feature was a

part of the landing page as it does not require the user leaving the page. Figure 6 shows a view of

how the ‘Our Events’ space looked when accessed.

Page 16: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Figure 6: ‘Our Event’ space of the First Draft

On the completion of the first iteration, a review was undertaken by getting user feedback on the

first draft. The feedback received had mixed reviews. Some of them are presented in Table 2.

After evaluating the feedback, there were a few changes made to the website. Navigation options

were added in the form of a categories panel. This panel includes 5 most common categories and a

search facility. Each event category redirects the user to its respective space of events whereas the

search button leads the user to the search engine. Below the panel, there is a space to showcase 3

specific events. These can potentially be ‘Sponsored Events’ which can prove to be beneficial from a

business point of view. This is visualised in Figure 7.

An interesting part of the landing page is the slideshow backstretch. This feature changes the

background image at small intervals maintaining the user’s attention. This feature can be used to

highlight an event by having event-specific background images.

Page 17: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

The process of building the landing page was a front-end development task. Therefore, the technical

challenges in this case were related to the User Experience. Some of the challenges faced were:

1. Accessibility – Accessible for people with different backgrounds and abilities.

2. Compatibility – Compatible with different browsers, operating systems and monitor

resolutions.

3. Navigability – Navigation should be consistent and straightforward.

4. Readability – Information should be clear and readable.

5. Usability – No restriction to any basic functions that reduces the usability.

6. Look and feel – The experience of the user when they interact with the web page. This is

determined by the overall styling, fonts, icons, images, layout, colour scheme, animations,

response-time etc.

The approaches taken to face the UX challenges are discussed in detail under the User Experience

section in the Design chapter. The look and feel of the landing page should instantly convey a

positive vibe before the user starts looking at the content. Hence, it was considered useful to invest

some time and resources in addressing this aspect.

Figure 7: Final Landing Page

Developing this part of the project involved refreshing up of the previous knowledge in respect of

basic technologies like HTML5, CSS3 and JS. Further, ab initio learning of jQuery, a new library of

JavaScript, proved to be a discerning experience as it was the first new language that the student

was exposed to at the commencement of the project.

To conclude, after analysing and evaluating the websites of other players in the market, it was learnt

that there is a trade-off between the amount of information a website provides and its user

interface attraction. Thus, aiming to minimise this trade-off, the student believes to have achieved

the set target to a great extent.

Page 18: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

2.6.2 Search

The search engine of a website is a vital function which defines the website’s strength in depth.

There are several open source frameworks and APIs available to support the implementation of a

search engine. However, it was considered appropriate to build a search engine from scratch using

open source technologies like PHP and MySQL to learn the processes of a full-fledged indexed search

engine.

Thus, the process started with researching which algorithm to adopt to implement the search. As it

was an iterative process, the primary objective was to build a basic search engine, which indexed the

database to find the respective keyword. The detailed process of building the same is discussed

below.

Starting the procedure with the basics, i.e. creating a table and form was followed by establishing a

connection with the database. The next step was writing the code to search the database by

applying the chosen algorithm. At this point of time, a basic version of search would run a simple

query with a piece of code shown with Figure 8. The query simply indexes through the specified

columns from the given table to match the term entered by the user and return it the output.

Figure 8: Search Engine Basic Query

The query is fairly self-explanatory, as it simply selects the table where all the events data exist and

searches for the ‘term’ entered by the user in 4 different columns. The searched term may not

necessarily be the ‘Title’ of the event as it can be a part of the event description etc. that is why it

was important to include more than one column of the table.

An interesting aspect to watch out for is the security measures taken at this stage of development.

SQL Injection is a technique where users can inject SQL commands into a statement via any input

e.g. Search input. Some of these commands can compromise the security of the web application. To

prevent this from happening, data sanitization methods were embraced, as shown in Figure 9.

Figure 9: Santization of user input

The method ‘real_escape_string’ escapes special characters, taking into account the current

character set of the connection so that it is safe to place it in a query. In simple terms, it acts as a

filter, which makes sure that any code in the data is not interpreted as code. Similarly, if a string is

embedded within HTML mark-up, then it is escaped with the ‘htmlspecialchars’ function.

Finally, with the completion of the basic version of the search, the next step was to improve the

algorithm to make the search scalable and compatible with filters. After doing in-depth research,

Faceted Search seemed like an interesting idea to be analysed further.

Page 19: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Faceted [27] search uses the idea of a dynamic cluster of items to enable users to browse by choosing

a pre-determined set of filters. This allows the user to search their query and refine their search by

filtering their results. Taking inspiration from this algorithm, the student wrote a search algorithm to

achieve similar results by setting up multiple indexes and table references.

Figure 10: Search Algorithm

The process of this search is performed in several parts. It starts off with indexing each entity in the

database and adding tags to specify a value for each facet. For each search, the function returns a

count of the number of matching entities tagged with the query. When the query has been

submitted, the database returns the respective output on the web page as search results, along with

the data tagged with it. The main difference between this search and the Faceted search is that this

algorithm does not return the matching entities tagged within each facet. In other words, it returns

the total number of results rather than returning the number of results in each category.

Faceted search is used by many e-commerce firms including Amazon, which shows that it is a useful

functionality, if one has the appropriate amount of variety of products/categories. Aiming to start off

as a small-medium sized organisation, investing in a powerful search engine with a heavy software

stack like J2EE [28] or .Net [29] did not appear to be feasible. Therefore, having the ability to easily add

this feature at a later stage seemed like the ideal decision at the time of development.

Although there is a huge variety of search engines available on the web, the student prioritised the

learning experience gained from developing a search engine from scratch over using e.g. A Google

custom search engine [30]. As a result, the student was able to develop this functionality and learn a

new technology fulfilling a technical and a personal objective at the same time. A graphical view as

to what the search engine looks like can be seen at Figure 11.

Figure 11: Search Engine of the Website

Page 20: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

2.6.3 Recommendation Engine

A recommendation engine is a tool that seeks to predict the preference a user might accord in the

list of events. This tool acts as an alternative to a search engine, as it is another way for the user to

discover new events, without explicitly searching for them.

The building process started by creating a basic skeleton which acts as the platform for the

recommendation engine. In this basic version, the suggested events given by the website depend on

the tags of the event rather than the user. For example, looking at Figure 12, if the user is viewing a

Social event, the related events will be presented depending on the tags of the event being viewed.

In this case, the tag is #fooddrink and all the related events consist of the same tag. This is simply the

result of a short query just like the search, where instead of searching for a specific event in the

‘event_name’ column, the database returns events from the ‘category’ or ‘topic’ columns.

Figure 12: An example of an event and its suggestions

Page 21: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

The basic idea behind developing a recommendation engine is to suggest events to the user on the

basis of their activity on the website. This involves tracking user’s actions whilst they browse through

the website. Developing such an application is challenging, as it involves learning a set of new tools

and techniques. Therefore, the use of frameworks available on the web was made for the purpose of

the present exercise.

Google Analytics and Interactor are the 2 main frameworks used in the creation of this engine.

Figure 13: Interactor methods to track user data Figure 14: Retrieving IP Address of the user

Figure 13 shows a couple of methods called to retrieve the user’s activity on the website. This

information is recorded in the database in the ‘user_activity’ table. This data provides key

information of the users’ most visited pages. This can then be used to determine the type of events

the user prefers to apply to the current recommendation engine.

A major challenge faced while building this engine was the ability to recognise recurring users. This

was important as it would enable the framework to remember the preferences of the user, which

can be taken into account every time the user visits the website. A solution to this issue was to

detect and record the IP address of the user alongside their tracking data. Google Analytics came in

handy when trying to acquire such information of the user.

This functionality was one of the most challenging parts of the projects. Although there is ample

room for improvement in this feature, however, considering the available time and previous

knowledge of the student in this area, constructing an elementary recommendation system was a

satisfying achievement.

Page 22: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

3 Testing and Evaluation

This section outlines the different types of testing and evaluation techniques performed on the

website. The testing data confirms whether the website and its functionalities perform their primary

job. On the other hand, the evaluation data depicts the user feedback and their satisfaction on using

the website. The significance of these techniques along with their limitations is discussed in the

following section.

3.1 User Experience

“User experience refers to a collection of methods, skills and tools utilized to uncover how a person

perceives a system before, during and after interacting with it.”[31]

Usability Testing

Guerrilla usability testing is a technique which involves asking a person, who may or may not be an

expert in web development, to perform a certain task in an application without any guidance. Some

tasks are listed below.

1. Go to any of your preferred category and open a specific event.

2. Search for a specific event using the search engine.

3. Find a Music Concert event without using the search engine.

4. Rate a specific event of your choice.

5. Access the Facebook page of an organiser through the website.

6. Compare the prices of 2 different events.

All participants were students from a variety of backgrounds and the tasks were consistent for all of

them to keep the data unbiased. The results of the task-feedback were fairly impressive as all the

participants were able to complete the given tasks smoothly. No task as such caused any problem

worth mentioning. Further, some explicit UX assessment methods like the ‘Thinking Aloud Protocol’

were also carried out. This technique simply involves the users verbalising their thoughts, as they are

moving through the user interface. It is proved to an effective way of assessing the user’s cognitive

process and their emotions whilst they are using the website.

To conclude the process, the participants were asked to complete a user experience questionnaire,

which gives an overview of the user’s experience. The results of this questionnaire reflected that

majority of the participants were content with the website and would happily visit again. The

questionnaire can be found in the Appendix. The gist of the feedback received in this context is

presented below in Table 3.

Page 23: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

It is further stated that usability testing is primarily a qualitative method. It requires certain amount

of commitment by the users, which some of them are not willing to provide resulting in a small

sample of participants. However, "Elaborate usability tests are, at times, a waste of resources. Useful

results can come from testing no more than five users and running as many small tests as you can

afford". [32] Therefore, a sample size of 5 was chosen for each task being performed, but the

participants came from a wide range of fields.

User Tracking

Tracking the user’s behaviour is an important part of the evaluation as it gives the opportunity to

connect with the user and uncover useful insights. Some tools used in this process were the likes of

Google Analytics and Interactor. Being a new concept, efforts were put in to examine the same and

it came on the fore that these tools help in assessing that how effective and successful the online

existence is by presenting all the traffic information one needs. Such data can help determine which

pages are encouraging users to stay on the website and which are moving them away.

Although, the tools mentioned in the foregoing para are useful tools for tracking user data on a live

website but they have their own limitations. For example, such tools use ‘Page Tagging Technology’.

In simple terms, this means that these tools can only function on browsers that execute JavaScript at

all times. Moreover, at this day and age, it is fairly easy for a user to opt out of being included in the

tracking process by simply installing an Add-on. This defeats the purpose of implementing the API to

start with, which is why multiple APIs were included, which track user data and record it.

3.2 Performance

The performance of a website is a key measure of how efficiently it has been developed. Research

shows that “57% of people abandon a website that takes more than 3 seconds to load” [33]. The

modern generation demands the web to be on their fingertips. Hence, various techniques were

carried out to maximise the performance of this website. This sub-section looks at how effectively

the website reaches its performance goals.

Chrome DevTools [34] are a set of web authoring and debugging tools used to iterate, debug and

profile any website. The network panel of this tool gives an insight on the requested and

downloaded resources which can be used to optimize the load performance of a webpage.

Analysing the data shown in Figure 15, it can be seen that large sized images play a big part in

slowing down the website. For obvious reasons, the heavier the image, greater the time required for

them to be downloaded, thus worsening the response time. Therefore, after realising the existence

of this issue, all images being used by the website were compressed using an online compressor.

Although this can be done for the images which will always be a part of the website user interface,

however, new events will consist of uncompressed large sized images. Therefore, there are couple of

approaches which can be taken. One way could be to write an algorithm which compresses the

image when uploaded by the event organiser. Another way could be to set a size limit for the image

to be uploaded which takes care of the issue itself.

Page 24: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Figure 15: Chrome DevTools evaluation of NextIn

Selenium IDE [35] is a third party software which is also used for testing the performance and

supportability of a web application. It primarily allows recording, editing and debugging tests. These

tests, when performed on NextIn, received a 100% success rate as shown in Figure 16.

Figure 16: Selenium test results

Additionally, majority of the user interactions that require server intervention are handled

asynchronously. In other words, the website responds to the user request immediately whilst

handling the server request in the background. As the user navigates within the website, there is a

feature which fades the current page instantaneously whilst the new page is being processed by the

server in the background. This minimises the ‘visible’ time taken for the page to load because the

new page is loaded by the time the transition completes itself. Although, the network speed of the

user does have a major impact on the response time of the website, however, in most cases, the

loading time tends to be negligible.

Page 25: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Minification of Code

Minification is the process of removing any redundant data without affecting the final output of the

code – for example removing code comments, unused code, extra formatting like spaces/tabs/lines

etc. In return, this reduces the file size allowing the file to be downloaded in a shorter amount of

time improving the response time of the website. YUI Minifier [35] is a tool used to compress some of

the CSS3 and JS files. Although, this process improves the speed of the website but from a

developer’s point of view, it also reduces code readability. It can be fairly challenging to understand

minified code that is why it must be formatted/un-minified to be read. To prevent this issue, all the

code were written in advance to be minified at the end to make most of this feature.

Figure 17: Formatted Code

Figure 18: Minified Code

3.3 Unit Testing

Unit testing was conducted on the website in the form of manual tests. Each module within the web

application had a number of manual tests to perform when a change was made.

In hindsight, a Test Driven Development approach could have been a more suitable for the website.

This first step is to write a code that fails. Next, this code is tested to ensure that it, in fact, fails. Then

the code is updated to make it pass the new test. After running the tests again, if it fails then the

code needs to be updated and tested again, else if passed, then the process is restarted

An advantage of this practice is that it enables the developer to take small steps when writing code.

This is a comparatively efficient practice than writing code in large steps. Writing code and fixing it in

large chunks of code can be challenging at times. This technique avoids the occurrence of such a

situation.

Page 26: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

4 Reflection and Conclusion

The objectives of the project are analysed in this chapter along with areas of personal development

and a brief summary of the report.

4.1 Reflection The primary aims and objectives set for the project appear to have been met to a good standard. All

the functional and non-functional requirements were taken into account while building the website

and most of the functionalities were included.

Getting exposed to the world of web development by creating a powerful system with a

combination of unfamiliar tools and techniques is considered as an achievement. In terms of the

drawl of learnings, it can be said that the project enabled acquiring insight and knowledge about

new technologies in the process of building this website. Technologies like JS i.e. jQuery, Less, AJAX

have proven to be extensively useful in the creation of the core web applications. Although there is a

steep learning curve in using such technologies without any prior experience, nevertheless, the

benefits drawn, after gaining an understanding of the same, are worthy. Further, the use of agile

methodology proved to be a good decision and the intent is to replicate in future projects, if given

the chance and deemed appropriate. Use of tools like Git, Bootstrap, Trello, Gantt charts and APIs

has been helpful in applying agile practices. Apart from the technical side of project, soft skills gained

in the process were qualities like time management skills, project management skills, self-learning of

new tools and techniques, problem-solving attitude towards unforeseen challenges and much more.

It is important to also focus on the possible improvement areas, which can be gained from this

project. One would be a misjudgement made in dedicating ample time in the planning of the design

of the website. This was done to discover a user interface which would be attractive enough for the

user to admire the website. This was a less judicious decision as the user interface can only add

value to the website if it serves its basic functional needs fully. The key factor was to invest major

part of the time in developing the core applications of the website. Providing such features would

make the website useful to the user as it has more applications to help the user find an event other

than just providing a nice look and feel to it. Therefore, for future projects, investing the right

amount of time in the right functionalities is considered vital.

4.2 Conclusion There is always room for improvement in a project of this scale. Some areas of the website which

could be considered for expansion in the future, if given the time and resources, are as follows.

1. Personalised reminders – All registered users must get some sort of an incentive in being a

part of NextIn community. One way this can be done is by sending regular e-mail reminders

about the upcoming events preferred by the member. It is a feature that would make

members feel connected with the website, which is always a positive attribute.

2. Ability to sell tickets – One of the ‘Won’t’ features, which can be implemented in the future.

This is a feature which should be added, if felt that the website is doing well, and the

incoming traffic can be exploited for commercial purposes, including sale of tickets etc.

Page 27: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

3. Automated removal of past events – A basic feature, which could have been added at the

current stage but wasn’t given a high priority. However, event data must be kept up-to-date

throughout to provide accurate information to the users.

4. Data mining – Retrieving big data to test the functionalities is imperative and was planned

but not done due to the time restrictions.

To conclude, the end product built through this project has all the planned functional and most of

the non-functional functionalities. The website supports all platforms including the small-screen

devices like smartphones to large-screen devices like desktop PCs. Moreover, it is supported by the

most used browsers with all the features functioning fully. Unlike many other events websites,

including e-commerce, NextIn focuses on the user experience and the performance of its

functionalities, equally, and tries to maintain a fine balance. These are some of the objectives, which

were set for NextIn to fulfil if developed successfully. All in all, being the only events platform to

promote student society events in Manchester, it has been a satisfying achievement accomplished

through carrying out this project. Such a website is expected to be not only beneficial to the

University of Manchester and its Student’s Union, but also it has a great business potential for the

events industry and could prove to be commercially valuable in the near future.

Page 28: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

References

[1] Bullas, J. (2011). 50 Fascinating Facebook Facts And Figures - Jeffbullas's Blog. [online] Jeffbullas's

Blog. Available at: http://www.jeffbullas.com/2011/04/28/50-fascinating-facebook-facts-and-

figures/ [Accessed 3 May 2016].

[2] jquery.org, j. (2016). jQuery. [online] Jquery.com. Available at: https://jquery.com/ [Accessed 3

May 2016].

[3] Google Developers. (2016). Google Analytics | Google Developers. [online] Available at:

https://developers.google.com/analytics/ [Accessed 3 May 2016].

[4] Mark Otto, a. (2016). Bootstrap · The world's most popular mobile-first and responsive front-end

framework.. [online] Getbootstrap.com. Available at: http://getbootstrap.com/ [Accessed 3 May

2016].

[5] Agilemethodology.org. (2016). The Agile Movement. [online] Available at:

http://agilemethodology.org/ [Accessed 3 May 2016].

[6] Allaboutagile.com. (2016). Prioritization using MoSCoW | All About Agile. [online] Available at:

http://www.allaboutagile.com/prioritization-using-moscow/ [Accessed 3 May 2016].

[7] Agileinaflash.blogspot.co.uk. (2016). Agile in a Flash: FURPS+. [online] Available at:

http://agileinaflash.blogspot.co.uk/2009/04/furps.html [Accessed 3 May 2016].

[8] Agileinaflash.blogspot.co.uk. (2016). Agile in a Flash: FURPS+. [online] Available at:

http://agileinaflash.blogspot.co.uk/2009/04/furps.html [Accessed 3 May 2016].

[9] The Official Microsoft ASP.NET Site. (2016). MVC. [online] Available at: http://www.asp.net/mvc

[Accessed 3 May 2016].

[10] Sourcemaking.com. (2016). Design Patterns and Refactoring. [online] Available at:

https://sourcemaking.com/antipatterns/spaghetti-code [Accessed 3 May 2016].

[11] Smist08.files.wordpress.com. (2016). [online] Available at:

https://smist08.files.wordpress.com/2013/11/mvc3.png [Accessed 3 May 2016].

[12] Gs.statcounter.com. (2016). StatCounter Global Stats - Browser, OS, Search Engine including

Mobile Usage Share. [online] Available at: http://gs.statcounter.com/#browser-ww-monthly-

201503-201603 [Accessed 3 May 2016].

[13] Gs.statcounter.com. (2016). StatCounter Global Stats - Browser, OS, Search Engine including

Mobile Usage Share. [online] Available at: http://gs.statcounter.com/#browser-ww-monthly-

201503-201603 [Accessed 3 May 2016].

[14] Wikipedia. (2016). Multitier architecture. [online] Available at:

https://en.wikipedia.org/wiki/Multitier_architecture [Accessed 3 May 2016].

[15] Tutorials.jenkov.com. (2016). [online] Available at:

http://tutorials.jenkov.com/images/software-architecture/n-tier-architecture-1.png [Accessed 3

May 2016].

Page 29: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

[16] Washington.edu. (2016). World Wide Access: Accessible Web Design | DO-IT. [online] Available

at: http://www.washington.edu/doit/world-wide-access-accessible-web-design [Accessed 3 May

2016].

[17] Wikipedia. (2016). Universal design. [online] Available at:

https://en.wikipedia.org/wiki/Universal_design [Accessed 3 May 2016].

[18] www.idc.com. (2016). PC Market Finishes 2015 As Expected, Hopefully Setting the Stage for a

More Stable Future, According to IDC. [online] Available at:

http://www.idc.com/getdoc.jsp?containerId=prUS40909316 [Accessed 3 May 2016].

[19] Agilemanifesto.org. (2016). Manifesto for Agile Software Development. [online] Available at:

http://agilemanifesto.org/ [Accessed 3 May 2016].

[20] Screenmedia.co.uk. (2016). [online] Available at:

http://www.screenmedia.co.uk/media/135946/agile-methodolody_695x260.jpg [Accessed 3 May

2016].

[21] GitHub. (2016). collectiveidea/interactor. [online] Available at:

https://github.com/collectiveidea/interactor [Accessed 3 May 2016].

[22] Pimentel, V. and Nickerson, B. (2012). Communicating and Displaying Real-Time Data with

WebSocket. IEEE Internet Computing, 16(4), pp.45-53.

[23] Angularjs.org. (2016). AngularJS — Superheroic JavaScript MVW Framework. [online] Available

at: https://angularjs.org/ [Accessed 3 May 2016].

[24] Emberjs.com. (2016). Ember.js: A framework for creating ambitious web applications.. [online]

Available at: http://emberjs.com/ [Accessed 3 May 2016].

[25] Team, T. (2016). Getting started | Less.js. [online] Lesscss.org. Available at: http://lesscss.org/

[Accessed 3 May 2016].

[26] Sass-lang.com. (2016). Sass: Syntactically Awesome Style Sheets. [online] Available at:

http://sass-lang.com/ [Accessed 3 May 2016].

[27] Tunkelang, D. (2009). Faceted Search. Synthesis Lectures on Information Concepts, Retrieval,

and Services, 1(1), pp.1-80.

[28] Oracle.com. (2016). Java Platform, Enterprise Edition (Java EE) | Oracle Technology Network |

Oracle. [online] Available at: http://www.oracle.com/technetwork/java/javaee/overview/index.html

[Accessed 3 May 2016].

[29] Wikipedia. (2016). .NET Framework. [online] Available at:

https://en.wikipedia.org/wiki/.NET_Framework [Accessed 3 May 2016].

[30] Google Developers. (2016). Custom Search | Google Developers. [online] Available at:

https://developers.google.com/custom-search/ [Accessed 3 May 2016].

[31] Workspace.idesg.org. (2016). [online] Available at:

https://workspace.idesg.org/kws/public/download/58/User-Experience-Guidelines-Metrics.docx

[Accessed 3 May 2016].

Page 30: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

[32] Nngroup.com. (2016). Why You Only Need to Test with 5 Users. [online] Available at:

https://www.nngroup.com/articles/why-you-only-need-to-test-with-5-users/ [Accessed 3 May

2016].

[33] Econsultancy. (2016). Site speed: case studies, tips and tools for improving your conversion rate.

[online] Available at: https://econsultancy.com/blog/10936-site-speed-case-studies-tips-and-tools-

for-improving-your-conversion-rate/ [Accessed 3 May 2016].

[34] Seleniumhq.org. (2016). Selenium - Web Browser Automation. [online] Available at:

http://www.seleniumhq.org/ [Accessed 3 May 2016].

[35] Chrome DevTools | Web Tools - Google Developers. (2016). Chrome DevTools | Web Tools -

Google Developers. [online] Available at: https://developers.google.com/web/tools/chrome-

devtools/?hl=en [Accessed 3 May 2016].

[36] Yui.github.io. (2016). YUI Compressor. [online] Available at: http://yui.github.io/yuicompressor/

[Accessed 3 May 2016].

Page 31: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Appendix

Database Structure

Table - nextin_events

Consists of all events data submitted through the website.

Page 32: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Table - nextin_users

Consists of all user data submitted through the website.

Table - nextin_activity

Consists of basic user activity submitted through the website.

Page 33: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Trello A tool used for delegating different task to each member of the team.

GitLab A tool used for repository management within the team, plus code reviews, issue tracking and more.

Page 34: NextIn - studentnet.cs.manchester.ac.ukstudentnet.cs.manchester.ac.uk/resources/library/3... · This report documents creation of an interactive website, which aims at offering the

Gantt Chart A tool used to improve project management as it involves setting deadlines for tasks planned. Also

keeps the team updated of the pace of their work if required to be amended.

Feedback Questionnaire