Skip to content

Final Milestone Report

ozgurakyazi edited this page Dec 30, 2016 · 2 revisions

###Final Milestone Report: Adding Functionality of deleting and editing a post in the topic page, editing/writing user tests, making the user tests, writing Unit tests and documentation. Also, finalizing the project development.

###Due Date: 22.12.2016

###Present Members of The Milestone:###

  • Büşra Öziş
  • Mehmet Özdemir
  • Mustafa Doğukan Ocak
  • Mustafa Erdoğan
  • Özgür Akyazı
  • Sinan Harputluoğlu
  • Emrah Küçük
  • Kaan Bulut Tekelioğlu

###Objectives of this milestone:###

  • To implement the post editing and deleting functionality
  • To figure out a basic implementation of semantic tagging and integrating it in our tagging and search algorithms
  • To revise the algorithm of recommending topics, posts to the logged in or non-logged in users
  • To finalize user interface of the web and android applications
  • To finalize and revise all the API's used in our system
  • To revise the user tests cases and make survey with real non-developer users
  • To write unit tests
  • To write documentations of the system developed
  • To deliver all the material in the scope of the project
  • To present the customers and other project groups what has been achieved so far.

###Major Work###

  • Post editing and deleting functionality is added to the system. To implement it, there has been some changes in the database interactions. When adding this feature to the topic page, we have used a simple UI to give the look and feel.
  • Mass data from Wikidata.org is studied intensively to understand the use-case of the semantics and implement it in our systems. As the result, it has been decided to make all the tags semantic in our system so that the use of the semantics is more meaningful. After deciding some common properties of the entities in the wikidata,(i.e. instance of P31, country of citizenship P27 ...), it is concluded that when adding a tag into our system, their decided properties will be added to the system automatically, so called "hidden tags".
  • To recommend more related content to the user, we developed an advanced algorithm which is mostly based on hotness and relevance of the topics(which will be explained in next section). Also, the visit count of user to a topic page is stored in our system to decide on the recommended posts for the same specific user.
  • The global page's UI is revised and now a black theme for the sidebars is used. To give better feeling to the user, also the font types and colors are changed.
  • To complete the integration of android application and backend applications, there have been upgrades in our django application.
  • We have done user tests with 5 different users for our android and web applicaiton and incorporated with the results achieved.
  • Unit tests for all the functions used in the django application.
  • The comments are added in our django application as well as the web application to introduce the functionalities of each method used to the interested developers. Also the system and user manuals are written to introduce the system to both users and developers.

###Description of Deliverables###

  • The application is prepared and it is ready for the user assessment. The meaningless content is removed from the database and now there are topics, posts and relations related to "General Culture" concept. One could find the online version of the web application in this link: http://ec2-54-186-167-76.us-west-2.compute.amazonaws.com:8000/cocomapapp/
  • Making the tags semantic will provide better search results. So, when adding a wikidata entity as a tag to our system, their predefined properties are added to the tag as hidden tags. In order to find the common and useful properties of the entities wikidata is investigated detailed so the following ones are stored with the tag information in the database:
  • instance of (P31)
  • highest point (P610)
  • official language(P37)
  • capital(P36)
  • continent(P30)
  • country(P17)
  • sister city(P190)
  • country of citizenship(P27)
  • occupation(P106)
    • field of occupation (P425)
  • subclass of (P279) When these properties of the tag added to the system, when searching a topic or a post, the results will include the ones matching with one or more of these hidden tags. For example, there is a topic tagged with Kevin Costner(Q11930), when the user searches for acting(Q222749) then Kevin Costner tagged topic will be included in the results because the occupation(P106) of Kevin Costner contains actor(Q33999) whose field of occupation(P425) contains acting.
  • Recommendation algorithm is advanced by calculating a dynamic value of hotness for each topics. Before giving the formula of hotness, the terminology will be explained.
    • Visit count: number of visits to the topic page of a topic, please note that this does not stands for individual users, a user could visit the same topic 5 times and it is counted as 5, and infocus screen is not counted as visit.
    • Creation time: The number of hours elapsed since the creation of the topic
    • Latest post time: The number of hours elapsed since the submission of last post to the topics
    • Like counts: number of likes or dislikes to the posts under the topic.
    • Post count: number of posts under the topic.

Value of hotness: (post_count + like_counts + visit_count - 2 * latest_post_time - creation_time) In this formula the post count, like count, and visit count have positive X weight for each in the result, whereas the creation time and latest post time have negative count which means if the topic is created earlier then its hotness level decreases. Also, the latest post time has 2X weight. The hotness value is used when the topics' color, size, relationship arrow widths are rendered in the screen. The more the topic gets hotter, the more it becomes larger and more reddish. The recommended topics for a user is determined by its relevance. To calculate it, the latest visit counts(of the user to recommend) to the topics which relate to the topic, the latest visit time of the user to recommend(elapsed since visit, in terms of hours) and the hotness values are used. The formula to sort the recommended topics by is: relevance_score = 5*neighbor_visits_count - last_neighbor_visit_time + topic.hotness

When recommending a post to the user, the unread posts from previously visited topics are put in a queue and according to the latest visit time of the user(X weight) and accuracy of the post(10X weight) they are sorted. Also if this list of posts has no member, which means there is no recommendation, then the posts that are not read by the user is added to the list.

  • In the global page, all the topics are fetched and the list is sorted by their hotness values, the hottest is the head of the list. The hotness range is determined and all the hotness values are scaled between 0 and 1. Then the hotter one is parsed as biggest, the most reddish one in the graph, where the non-hot ones are the most blueish ones with small width of the topic node. Also the relations arrow's width and color are parsed using the same information.

###Assessment###

How well the objectives were met

Almost all the functionalities are implemented and used actively by our system(mostly in the web application). The documentations are written carefully to guide the developers and the users correctly. There is still some specifications not implemented which is upvoting and downvoting a relation between 2 topics, even though the backend implementation is done. As a group, since the beginning of the implementation phase of the project, we have constant development, which is convenient because all the work did not stack until the milestone dates. The semantic tagging and searching features are satisfactory however, there are still aspects to develop, like considering the name of the relationships in the search, to push the semantics one level further.

###Execution of plan###

All the implementation and documentation has gone parallel with the project plan, however, there are some implementations which should have been done in the previous milestone. Even though we have fallen back when compared to the project plan, in the last milestone, those deficiencies are recovered in this one. As a result, almost all the requirements are implemented and present in the final deliverables.

###Alignments with customer###

During all meetings with the customer, we have got feedbacks from our customers. We have tried to incorporate all the suggestions we have received, and there is no suggestion that is not taken action against. Consequently, those meetings are so useful and informative, because they make us able to see the progress we had, which affects the plan and execution phases of the next weeks, milestones.

Home

Project Description

Milestone Reports (Fall 2016)

Group 11 Members

  • [Büşra Öziş](Büşra Öziş)
  • [Mehmet Özdemir](Mehmet Özdemir)
  • [Mustafa Doğukan Ocak](Mustafa Doğukan Ocak)
  • [Mustafa Erdoğan](Mustafa Erdoğan)
  • [Özgür Akyazı](Özgür Akyazı)
  • [Sinan Harputluoğlu](Sinan Harputluoğlu)
  • [Emrah Küçük](Emrah Küçük)
  • [Kaan Bulut Tekelioğlu](Kaan Bulut Tekelioğlu)

###Meeting Minutes (Fall 2016)

Customer Meetings (Fall 2016)

Milestone Reports (Spring 2016)

###Meeting Minutes (Spring 2016)

Customer Meetings (Spring 2016)

Internal Instruction Files

Documentation

Clone this wiki locally