Graduate Course Projects:
Turkster: Usability Testing in Amazon Mechanical Turk (Spring 2013)
In this work, we designed and developed an interface, Turkster, for clients to perform
usability testing using crowdsourcing. With front-end of Turkster, clients can create a project consisting of multiple tasks relevant to the client’s website and view results. The tasks are subdivided into micro-tasks and these micro-tasks are posted to Mechanical Turk to perform usability testing. We implemented a back-end to automatically post HITs in Amazon Mechanical Turk, collect real user responses, and return analytical results to the client. Further, the results obtained from Mechanical Turk are validated using lab studies with offline participants.We used CrazyEgg to generate visualization of results in the form of heat maps to give additional feedback to clients.. A relational database is used for storing projects, questions, results, and mapping between HITs and tasks. (PHP, Java, MySQL)
UIUC Gamers (Spring 2013)
The goal of this project was to learn how to design, evaluate, and implement user interfaces. We designed and implemented a user-friendly interactive social-networking site using classic three-tier architecture that provides a platform to UIUC students for gaming discussion, event management and trading of gaming merchandise. We designed the website from paper prototype to functional prototype with iterative improvement (SDLC) using formal processes like contextual inquiries and heuristic evaluation. (Ruby on Rails, MySQL)
Distributed Chat System (Spring 2012)
This project aimed to implement a distributed chat system ensuring causal ordering, reliable
multicast (integrity, validity and agreement), and failure detection. The causal ordering is
ensured by using vector timestamp based algorithms. The reliable multicast is achieved by
using piggybacked acknowledgement. A ring-based failure detection is used to detect and fix
crash-stop failures. (C++).
Distributed Hash Table (Spring 2012)
This project aimed to implement a variant of the Chord system. The Chord system that we
designed and implemented is capable of supporting the operations: node joins, adding a file,
deleting a file, and looking up for a file. The system is implemented in C++ with the use of
Apache thrift model for all inter-process communication. SHA-1 hash library is used to generate node identifiers and keys for distributed file lookup. (C++)
Chat Program using TCP/IP Sockets (Fall 2011)
In this project we implemented a simplified chat program consisting of two peers that establish
TCP connection between them. The system allows exchange of text messages and data files
between two users on different hosts over the TCP connection. (C)
TCP connection between them. The system allows exchange of text messages and data files
between two users on different hosts over the TCP connection. (C)