Chris Pollett > Students >

    ( Print View)



    [CS 297 Proposal]

    [Deliverable 1]

    [Deliverable 2]

    [Deliverable 3]

    [Deliverable 4]

    [CS297 Report - PDF]

    [CS 298 Proposal]

    [CS 298 Slides - PDF]

    [CS 298 Final Report - PDF]

CS298 Proposal

An Open Source Direct Messaging and Enhanced Recommendation System for Yioop

Aniruddha Dinesh Mallya

Advisor: Dr. Chris Pollett

Committee Members: Dr. William Andreopoulos, Dr. Katerina Potika.


A recommendation system is an information filtering system that seeks to predict the "rating" or "preference" a user would give to an item and Yioop is an open source, PHP search engine that can be configured to allow users to create discussion groups, blogs, wikis etc. The goal of this project is to test & improve upon the recommendation system in Yioop and extend the group discussion functionality for direct messaging.

CS297 Results

  • Designed a predefined group for users in Yioop to support direct messaging.
  • Implemented URL-shorteners for Wiki Pages on Yioop.
  • Implemented a Paste-bin like service called “share-wall” for Yioop to review source code or configure information on Yioop.
  • Implemented a grid like view for media list items in Yioop.

Proposed Schedule

Week 1:
Aug 24 – Aug 30
Kick-off meeting and review CS298 Proposal.
Week 2-4:
Aug 31 – Sep 20
• Discuss the format best suited for direct messaging
• UI discussion
Week 5-7:
Sep 21 – Oct 11
Implementing support for direct messaging in Yioop
Week 8-12:
Oct 12 – Nov 15
• Modify the recommendation system in Yioop using the Glove.
• Test new recommender system to evaluate performance against old.
Week 13-16:
Nov 16 – Dec 16
• Final Report
• Final Presentation

Key Deliverables:

  • Software
    • Extending the group discussion functionality to accommodate direct messaging between users in Yioop
    • Experimenting and comparing performance of Glove system to the existing Td-IDF system.
    • Testing deliverables to integrate well with the Yioop codebase.
  • Report
    • Documenting source code.
    • Write-up of final report.

Innovations and Challenges

  • One of the challenges in this project is implementing a machine learning algorithm without external libraries from scratch.
  • Improving Yioop recommendation of threads and groups of interest by testing and modifying a large portion of the backend.
  • Handling Direct messaging between multiple users on a lightweight server with limited resources.


[1] Langville, A. N., & Meyer, C. D. (2012). Who's #1?: The science of rating and ranking. Princeton: Princeton University Press.

[2] Pollett, C. "Open Source Search Engine Software!" Open Source Search Engine Software Seekquarry. Retrieved on 13 Dec. 2016.

[3] Alan Said, Ben Fields, Brijnesh J. Jain, and Sahin Albayrak. 2013. User-centric evaluation of a K-furthest neighbor collaborative filtering recommender algorithm. In Proceedings of the 2013 conference on Computer supported cooperative work (CSCW '13). Association for Computing Machinery, New York, NY, USA, 1399–1408. DOI:

[4] Gomez-Uribe, C., & Hunt, N. (2015). The Netflix Recommender System: Algorithms, Business Value, and Innovation. ACM Transactions on Management Information Systems, 6(4), 1–19.