Requirements of the Project

Embed Size (px)

Citation preview

  • 8/8/2019 Requirements of the Project

    1/12

    Requirements of the Project:

    Below are the requirements of the project Note some of the coding has already been done butwill need to be changed and the program must be java based:

    1. Create an account and allow users to contribute to the site. (The account will require

    the user to have an account on both Slashdot and Twitter).

    2. Allow users to see SlashDot posts and Twitter tweets (The posts and the tweets will

    be on the same page so that a user can see all his/her comments immediately). I have

    done this partially and the twitter section works however the SlashDot section needs

    to be fixed.

    3. Allow users to rate Tweets and posts ( This will involve a + and that users can

    submit which add positive and negative feedback respectively) The system will have

    to allow the user to look at other users posts and rate their comments using the above.

    4. Develop and Algorithm that generates a rating for all users ( The Algorithm will run

    every time the program is started as user ratings will change this will probably involve

    a button because of the complexity of the Algorithm and how many posts/tweets a

    user will have making the calculation quite long) I have created an algorithm but you

    may not be able to use all of it due to the rss feeds.

    5. The user should be allowed to view there rating as well as other users ratings.

    6. Develop a function that allows user to add each other as contacts

    7. Develop and Algorithm that suggest possible contacts to a user based on their rating

    ( This like the rating algorithm will run every time the user starts the system up and

    therefore the suggestions will change accordingly with the users respective rating)

  • 8/8/2019 Requirements of the Project

    2/12

    8. Store users accounts details and contacts list in a database I have started an xml

    database which can be used, it does not need to be complex.

    Additional requirements:

    These requirements were not compulsory and were added as further improvements if I had

    time

    1. Allow the user to change the size of the text (This was done to help users who are

    visually impaired).

    2. Allow the user to change the colour of the text (This again was again done to help

    those who are visually impaired).

    Additional Information

    Some coding has already been done however there are many changes that need to be

    made:

    NOTE it is very important that you get the Slashdot RSS feeds from a users

    profile as just get the RSS feeds normally will only show all current topics from

    the website and that is what my system does at the moment. It is meant to track a

    users comments and not track topics. This again the user needs the URL for the

    Slashdot feed included. See image below:

  • 8/8/2019 Requirements of the Project

    3/12

    The Image above shows my user area on slash dot and by clicking on the RSS logo

    this should show all of my feeds. This is the way it must be done to show only my

    comments as an example. It should also hopefully be able to show all of the replies tomy comments.

    1. The System will have to have some form of rating and this will be done with the

    Algorithm I have included. Note that you may not be able to do parts of the

    algorithm because of the RSS feeds so attempt to do as much of it as possible and

    note down the bits you cannot do so we can attempt to resolve this issue. I Have

    started the rating but it needs to be fixed somewhat.

    2. The System must offer to add to people with the same ratings as contacts to each

    other. I have included another Algorithm which offers to add users based on their

    rating. Try to follow this Algorithm as much as possible.

    3. Please describe all the coding so I can understand it and in addition have

    documentation which shows how to compile and run the program.

    Limitations of Prototype System

    Introduction:

    In this section of my documentation I will discuss the limitations of my prototype system andI will also discuss the potential improvements I can make so that my final system improves

    on the prototype system and achieves all the aims and objectives with regards to my project.

    Below I have described all the limitations of the system and I have included some screen

    shots as a few of the problems that my system has is to do with layout and structure of the

    prototype.

    Problem 1: Structure with regards to spacing:

    The above screen shot above shows the current layout of the prototype section. The problem

    with this layout is that it wastes too much space and addition to this the date of publicationand links are excessive in length. For the final system these two columns will be reduced so

  • 8/8/2019 Requirements of the Project

    4/12

    they take up much more space. Also the Title is included however I could include another

    paragraph the gives a sentence of the discussion of a specific topic so that users can get a

    taste of what that respective topic is about.

    Problem 2: Structure with regards to tabs

    splitting the two websites:Initially I thought it would be a good idea to

    split the comments of each user into tabs for

    the respective website that they commented on however based on my meeting with my

    supervisor I was convinced that this was a poor structure as other users who wished to see

    what someone has said would have to look at their twitter tab and then their SlashDot tab and

    would not be able to look at all the users comments at once. I have decided to put all the

    comments on one page and I

    will attempt to copy Tweet

    decks structure.

    Here you can see part of the

    structure of tweet deck and as

    you can see the page can be

    split into sections which

    would be better than using tabs as everything can be seen when the application starts up.

    Problem 3 Slashdot is topic

    based rather than user

    based:

    One of the biggest

    problems that the prototype

    has is that although Twitter

    can be centred on users,

    SlashDot is topic based and

    I therefore have to find a

    way to get comments on

    users rather than just

    showing all the topics. One

    possible way would be forthe java to read the HTML

    and look for written by

    and then compare the

    username of the SlashDot

    site to the one given in the

    program and if they match

    then it can be shown on the

    program.

    Problem 4 Storage:

  • 8/8/2019 Requirements of the Project

    5/12

    Another major problem with the prototype system is that the method of storage is Microsoft

    Access. The problems with Microsoft Access are the following

    1. Firstly the user must have Microsoft Access

    2. Each users database will be different as the database if local and not global

    3. The user will have to create the connection his/herself using a DSN connection

    4. Because the system is local each time the user changes their computer they will have

    to make a DSN connection again.

    To tackle these various problems I will create a web accessible database such as oracle that

    should theoretically solve all of the problems above.Note that it does not have to be Oracle

    but it will need to be some sort of web accessible database. I have start an xml document

    which you could develop a little further but it does not need to be very complicated it justneeds to store a users information along with their friends list.

    Problem 5 Users with regards to adding users:

    Another problem with the prototype system is that the friends system does not work correctly

    (Note that right now it is called my Friends, Potential Friends however this will be changed

    as the system is based on professionals in specific topics rather than friends). Adding friends

    does not work correctly and no does the potential friends so for the final system I will need to

    get these aspects of functionality to work. In addition to this I may change the way that

    friends system is represented as a combo box may not be efficient if a there are many users

    and each user has many friends.

    Problem 6 Ratings:

  • 8/8/2019 Requirements of the Project

    6/12

    One of the major and possibly the most difficult problem to solve is that currently my systemhas no form of user rating. The reason it has no rating is that Slashdot has quite a complex

    user rating which I am still trying to understand thoroughly and Twitter has no form of user

    rating at all. One possible solution could involve using the number of followers from + the

    SlashDot ratings to get an overall rating. One other possible solution could involve a user

    rating based on users on the system looking at others comments and rating them, this could

    involve a number system from 1-5 with 5 being the best and 1 being the worst. The system

    could then tally up all the good and bad ratings of each user and give an overall ranking based

    on the rating of their comments.

    The followers and the topics part of the prototype will not be needed so you can remove them

    as they are taking up to much space and will make it difficult to split the screen for Twitter

    and Slashdot respectively.

    Conclusion:

    All these issues must be resolved by the time the final system is completed and submitted. I

    believe that the majority of the problems can be resolved relatively easily. However I believe

    that there are 2 major problems which are that firstly there is no rating system and secondly

    that Slashdot is topic based so I believe that the majority of my time working on the final

    system will resolve around working on these problems. One major issue that I need to

    address is that the although the final system will be java embedded in a website the user will

    still have to download the Application, I have done this because I will be following an

  • 8/8/2019 Requirements of the Project

    7/12

    Application model such as Tweetdeck because of the aspect of functionality that these sort of

    models represent and in addition to this I followed this method in order to learn more about

    java and its swing methods.

    Rating Algorithm

    Here is the rating algorithm I developed for Slashdot but it may need to be changed and by

    this I mean some aspects may need to be removed because the rss feed may not capture allthis information. If you must make changes please explain why, also the twitter rating

    algorithm will need to be like this but with some changes. See red comments below.

    1. CALCULATE THE FACTOR FOR THE NUMBER OF TOPICS FOR EACH USER

    COUNT THE NUMBER OF USERS = i;

    REPEAT

    FOR THE CURRENT USER, COUNT THE NUMBER OF TOPICS = j[i];

    UNTIL ALL USERS TOPICS COUNTED

    DEFINE THE HIGHEST j[i] = HEIGHST;

    REPEAT

    FATCOR[i] = j[i]/HIGHEST;

    UNTIL ALL USER FACTORS DEFINED

    1. Calculate points for Number of topics for each user 20%

    2. Calculate points for how often the user leaves a comment for each user i.e

    number of replies 40%

    3. Calculate points for the number of comments for each user 20%

    4. Calculate points for [+] [-] for each user 20%

  • 8/8/2019 Requirements of the Project

    8/12

    2. CALCULATE THE FACTOR FOR HOW OFTEN A COMMENT IS LEFT BY A USER:

    COUNT THE NUMBER OF USERS = i;

    REPEAT

    FOR CURRENT USER, COUNT THE NUMBER OF ALL COMMENTS= k[i];

    UNTIL ALL USER COMMENTS COUNTED

    DEFINE AVERAGE TIME USER LEAVES A COMMENT = AVERGAE f[i];

    REPEAT

    FOR CURRENT USER, IDENTIFY f[i];

    UNTIL ALL USERS AVEGAGE COMMENT TIMES CALCULATED

    DEFINE HIGHEST f[i];

    REPEAT

    FACTOR[i] = F[i]/HIGEST F[i];

    UNTIL ALL USER FACTORS DEFINED

    3. CALCULATE THE FACTOR FOR THE NUMBER OF COMMENTS FOR EACH USER:

    COUNT THE NUMBER OF USERS = i;

    REPEAT

    FOR THE CURRENT USER COUNT THE NUMBER OF COMMENTS = l[i];

    UNTIL ALL USERS COMMENTS COUNTED

    DEFINE THE HIGHEST l[i];

    REPEAT

    FACTOR [i] = l[i]/ HIGHEST l[i];

    UNTIL ALL USER FACTORS DEFINED

  • 8/8/2019 Requirements of the Project

    9/12

    4. CALCULATE THE FACTOR FOR THE NUMBER OF [+] [-] FOR EACH USER:

    COUNT THE NUMBER OF USERS = i;

    REPEAT

    FOR THE CURRENT USER COUNT THE NUMBER OF [+] = m[i];

    UNTILL ALL USERS [+] COUNTED

    REPEAT

    FOR THE CURRENT USER COUNT THE NUMBER OF [-] = n[i];

    UNTILL ALL USERS [-] COUNTED

    DEFINE THE HIGHEST USER [i] = m[i]-n[i]

    REPEAT

    FACTOR [i] = m[i]-n[i]/ HIGHEST USER

    UNTIL ALL FACTORS DEFINED

    (TOTAL) CALCULATE THE FACTOR FOR THE RATING FOR EACH USER:

    COUNT THE NUMBER OF USERS = i;

    REPEAT

    FOR THE CURRENT USER, COUNT THEIR TOPIC RATING j[i]*0.2

    UNTIL ALL USER TOPIC RATINGS COUNTED

    REPEAT

    FOR THE CURRENT USER, COUNT AVERGAE COMMENT TIME f[i] *0.4

    UNTIL ALL USER RATINGS FOR OFTEN IS COUNTED

  • 8/8/2019 Requirements of the Project

    10/12

    REPEAT

    FOR THE CURRENT USER, COUNT THEIR COMMENT RATING l[i]*0.2

    UNTIL ALL USER COMMET RATINGS COUNTED

    REPEAT

    FOR THE CURRENT USER, COUNT THEIR [+] [-] m[i]-n[i] *0.2

    UNTIL ALL USER [+] [-] RATING COUNTED

    REPEAT

    OVERALL RATING [i] = j[i] + f[i] + l[i] + (m[i]-n[i]);

    NUMBER OF STARS [i] = (OVERALL RATING *4+1)

    UNTILL ALL USER RATINGS DEFINED

    *Note that for this rating algorithm the [+] [-] part of the algorithm will be done on myactual system and by this I mean users should be allowed to view another users

    posts and [+] them if they think it is good and [-] if they think it is bad and for each

    comment the system should show how many [+] and [-] there are. These should be

    added up and be used as part of the Algorithm.

    *Also note that the above algorithm if for Slashdot there will need to be another

    algorithm for Twitter but instead of topics it will be replaced by the number of hash

    tags used and comments for the twitter algorithm will be referred to as tweets apart

    from that it should be the same.

    *Both the twitter and Slashdot algorithm will need to be added together to give a

    overall rating such as a five star rating and the minimum a user gets if they have a

    low rating is 1 star.

  • 8/8/2019 Requirements of the Project

    11/12

    *Adding other users as friends should be re-named to contact and on the prototype it

    does not work correctly. Also the system as mentioned before should offer to add

    two users together who have the same rating this could be done by clicking a button

    and then the system could do it.

    Algorithm for suggesting contacts

    Introduction:

    I have created the algorithm below so that the system can check two users that have the same

    ratings and the system then suggests to add those two people as contacts. I envisage that there

    will be a button and when the user clicks on that button then the algorithm below will execute

    and find users with the same ratings and add them together.

    CALCULATE THE FACTOR SUGGESTING CONTACTS FOR EACH USER:

    COUNT THE NUMBER OF USERS = I;

    REPEAT

    FOR CURRENT USER, COLLECT THEIR RATING = j[i];

    UNTIL ALL USERS RATINGS COLLECTED

    NEW ARRAY K TO STORE SUGGESTIONS = k[i];

    X IS EQUAL TO THE INDEX OF THE CURRENT SELECTED USER VIA GUI

    V IS EQUAL TO THE INDEX OF THE USER IN THE ARRAY

    REPEAT

    IF THE RATING OF THE CURRENT USER IS EQUAL TO THE CURRENT

    PERSON IN THE ARRAY THEN END IF AND DO NEXT LINE= j[x] = j[v]

    IF A MATCH IS FOUND k[v]=1

    END IF

  • 8/8/2019 Requirements of the Project

    12/12

    INCREMENT V = v++

    UNTIL ALL USERS COMPARED v==i;