Student Research Projects

Thoughtful

Student Thomas Simmons ‘15 (Computer Science and Mathematics)
Faculty Mentor(s)
Department Computer Science
Course Computer Science 489: Research in Computer Science

Abstract

Project Thoughtful is an information storage system aimed at allowing users to record notes, map out ideas, and in general save and organize any kind of textual data online into a relational, hierarchical format. The project is motivated primarily by a lack of support by most note-keeping software found online for intuitively representing relationships between ideas. Tools such as Microsoft Word, Evernote, Google Docs, and Wiki-like products typically support fully-featured and rich text editing and formatting, but they do not offer a simple way for users to easily track the relationship of different ideas or note pages beyond basic hyperlinks injected in text. Unlike these and similar vendors, Thoughtful is focused on the relationship of ideas, allowing users to create separate pages of notes and then link or unlink them as necessary. This allows users to avoid creating massive, sprawling documents, instead creating webs of information in which broad, encompassing note pages list general facts, obscuring detail until the user asks for it, at which point a more specific page of notes is readily accessible. The application supports searching for note pages based on their contents and their titles and allows users to create multiple, distinct projects or ‘notebooks’ (though users are always free to create linkages between such notebooks if they so choose). Finally, Thoughtful is carefully divided into a server-side API and a user interface such that neither aspect is dependent on the other. Many websites communicate with servers by sending HTML, the code that determines what the client sees on the web page. Thoughtful, however, only communicates using JSON, a particular and widely-supported method of encoding data. Thus, any application, be it Google Mail or iTunes, in a web-browser or not, could integrate the Thoughtful API without specifically needing to use the online user interface. Vendors may store data on the server and present information to their own users how they see fit, allowing Thoughtful to be a much more flexible tool than if it were married to its user interface.