requirements of the project
TRANSCRIPT
-
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;