Tiegstisolomon1202271ce301presentationentree 151015083401-lva1-app6892

Post on 09-Feb-2017

25 views 0 download

transcript

Tiegsti Solomon 1202271

BSc Information & Communication Technology

Introduction

In this presentation I will be discussing:

• Motivation• Objectives• Sub-goals• Methodology• Technical Achievements

Motivation

• Current websites (Match & EHarmony) lack intelligence of users

• Let the users make their own choices and let it be known to them!

• Establish a level of user trust

• Aim on reducing level of deception & online predators

• Dating platforms provide more revenue than any other type of online sales (Scott, Mottarella, and Lavooy 2006).

Objectives (1)

• Construct a dating website where one user is matched with another user based on human characteristics.

• Produce a partner-matching algorithm that calculates two users compatibility levels:

• One percentage output displaying the amount of weight a user has given to a profile attribute

• The second percentage output displaying the quiz-match scores

• Provide a good user experience for members complying with HCI principles

Objectives (2)

• Provide a fun and interactive match quiz. Simple, consistent design and easy navigation.

• “Branch out” in fewer clicks.

• Adapt Agile (Scrum) Methodology

• Low cost development

• Organisable structure

Sub-goals (1)

Log in & Change Username / Password

o Successful login with the correct present credentials

o Log in validation (error validation message)

o Log out, end the session and prohibit users from accessing the users portal.

Sub-goals (2)

Sign Up

o Sign up users for membership to the website

o Common validation for correct credential format

o Add new user to database

o Log in immediately after users successful registration

Sub-goals (3)

Upload Display Picture

o Upload desired picture of user through user portal from users’ personal directory

o Uploading of an image in formats .jpg, .png, .tif

o Replaces previous image

o Image able to be displayed by all other users who access users profile

Sub-goals (4)

Edit Profile

o Ability to edit profile information about themselves

o Upon click, fields will be replaced with updated information

o Profile information updated in database

Sub-goals (5)

Find Match

o Those registered are able to use system to help find other compatible members registered.

o Output only high level of statistically compatible users, displayed once all questions are answered

Sub-goals (6)

Match Result View

o View matches with the extended option to view profile or delete contact if a connection is already established.

o Displayed as thumbnails of profile images, minimal information & button to send connect request

Sub-goals (7)

GUI Matching Algorithm

o The output of matching system should either provide users with potential partners

o Otherwise, displaying an appropriate message to alert the user no matches have been found

Sub-goals (8)

View Matches Profile

o View matches with the extended option to message, view profile or delete contact if a connection is already established.

o Displayed as thumbnails of profile images, minimal information & button to send connect request

o Appropriate verification for message sending, showing errors if a username does not exist.

Sub-goals (9)

View Inbox

o Users having the ability:o Send Messages to single / multiple user(s)o Receive Messageso Delete Messages

Methodology (1)

Sprints duration: 9 daysDaily Scrum for outlining

accomplishments and keep track of burn-down chart

Agile (Scrum)

Methodology (2)

Scrum Product Backlog &Prioritised

Featured List Sprint / Iteration: (9 days)

Release: (2-3 Weeks) Sprint involves: Analysis,

Design, Build, Testing, Deploy

Assign name to a task where one is responsible for completing the task.

(0.0 = completed)

Methodology (3)

• Template Burn Down Chart (right) shows constant velocity as an ideal template of project pace.

• Helps to extrapolate trends from the data and can help in easily noticing whether or not the goal will be reached

Methodology (4)

Why use Scrum?

• Flexibility & creativity of designs• Iterations allow for system enhancement• The shorter the iterations, the more manageable the

sprint (burn-down charts = guidelines for a steady pace)• A better quality is released• Detect risks early• Consistency (going back and collecting user requirements)• Closer to matching with what the user wanted• If the users requirements evolve, so can the system

Product Backlog

Initial Product Backlog produced by iceScrum(as seen in Initial Report)

Structure (1)

APACHE

PHP

FILE SYSTEMMySQL

DATABASE

ATTACKERSUSERS / MEMBERS

INTERNET

php, js,html

APPLICATIONS

MacOS

Structure of XAMPP 

1. User makes a request to Web Server: Apache HTTP server receives HTTP request

2. Apache retrieves PHP files:PHP scripts are stored for retrieving and rendering HTML layouts

3. Apache server sends queries to database:SQLi queries held in PHP functions

4. Apache server sends queries to database:SQLi queries held in PHP functions

Structure (2)

System Folder Architecture

ERD

Entrée Data Structure produced using MySQLWorkbenchAppendix (Figure 38) of Interim Report

Release 1/6

Log in

Incorrect user credentials result in validation error messages for system response to user

Logout

• Major risk discovered: SQL deprecationSolution: SQLi (improved)

• Array sanitize used to strip html tags and convert html entities (avoiding XSS)

Release 2/6

Sign up

Release 3/6

Match Algorithm (1)

Match Algorithm (2)

Results on Robin’s session:

• Gender and sexuality clashes are removed from the results before anything is calculated.

• If statements reveal whether or not the value score for each attribute is added to the total percentage variable.

• Variable then printed in a for loop of matching users

Match Algorithm (3)

Problem: What if a compatible partner enters his quiz result after Robin has already submitted hers?

Solution: a function must be called in order to find the relative ID’s of both users to find out whether he has taken the quiz, the percentage scores can also be retrieved from the `matches` table and shown in the update.

It can therefore be assumed if she appears as his match, that he has seen her. Below shows the function putting in ID 127 matches updating 128 after a function recognises a new user compatibility:

Match Algorithm (4)

• ‘Who has seen you’ is an update of matches who have taken the quiz after the session user, this after refresh or re-entry of page updates the ‘Daily Matches’ section above it.

• Having a ‘Who has seen you’ section can encourage users into Computer Mediated Communication (CMC).

Match Algorithm (5)

• Request / Accept connection:

Server notifies user of connection status change

Robin sends Andrew a connection request

USER SERVER

Andrew accepts connection request

Server updates Andrews status change & shows both users as connected

Release 4/6

Messaging System

A conversation back and forth updates the database for every form submission, updating table’s conversation, conversation_members and conversation_messages

Query commands used: SELECT (combining tables with INNER JOIN), UPDATE (timestamp), INSERT & DELETE

Update Profile

Using the UPDATE query command, gives users the opportunity to update their profile image & bio.

Release 5/6

Usability

• Vanity URL

• Jquery

• BrowserCompatibility

Release 6/6

Enhanced Algorithm

• Adding a profile preference page where users can select how important each profile weight is to them

• Complete user control in what they would like to see in their potential partners

• Profile weight entered into ‘user’ database and taken into consideration when calculating percentage scores

Add-ons

• Change password

• Profile Settings

• No. of memberswidget

Conclusion

• The more ambitious you are, the more releases you complete of less quality

• Better to stick to a small project and produce a good quality system

• Web Application involves a great deal of complexities where fixing one part of a system may result in breaking another

• A good designer is one that deals with complexity along the way

• A lot of confidence gained in programming with PHP, MySQL & JavaScript

Conclusion

• Although all tests passed, is the system the best it can be?

• The evolutionary approach provides endless development

• Future projects will have stronger boundaries enforced on what is and is not to be extended / implemented

• A huge experience in agile methodology and web application

Thank you for listening

Questions