Object Spreadsheets

Research project by Matt McCutchen, Shachar Itzhaky and Daniel Jackson (objsheets@mit.edu) of the Software Design Group, with help from various others

Object Spreadsheets is an enhanced spreadsheet tool with support for storing and manipulating structured data. End-user developers can use it to work directly with a data set or to build a web application that offers constrained view and update access to a larger population of users.

Shortcuts: paper, demo server, source repository, all materials

Many organizations are responsible for processes that involve collection and manipulation of structured data subject to certain rules; our favorite examples include parent-teacher conference scheduling at a school and tracking whose turn it is to buy milk for an office. Keeping the data organized and ensuring the rules are followed is a tedious task that is better turned over to an application, which ideally the process administrators would build themselves to their exact requirements. Traditional (2D grid) spreadsheet tools have a number of characteristics that make them easy to use but are unable to automate nontrivial operations on structured data. Tools such as FileMaker and Airtable are able to automate more such operations, but they are clunkier than a traditional spreadsheet, and many of our example applications run up against their expressiveness limits.

We believe there's potential for a tool that combines a user experience closer to that of a traditional spreadsheet with the expressiveness of SQL to be a more appealing option for both novices and advanced developers for our target applications. Object Spreadsheets is our effort to prove this concept. As of November 2016, we have a prototype that supports all basic spreadsheet functionality, though many usability features and some components necessary to support the end-to-end application development process have yet to be built. To demonstrate the applicability of our approach, we have built several example applications, manually writing the parts that cannot yet be developed in the tool.

We would welcome your feedback on this work, and we'll provide support for the prototype subject to our research priorities; in either case, please email us.

Available materials

  • Our Onward 2016 paper with more information about the problem, design, evaluation, and related work.
  • Matt's master's thesis: the main attraction here is a rigorous specification of the data model and computation semantics.
  • The prototype implementation, which includes a start page with demos, basic usage instructions, and links to reference materials:
    • Public demo server (updated 2016-10-12). Notice: This site has no access control, so please use discretion in what data you enter. Also, we may delete your data at any time. If the site is broken or contains inappropriate content, please email us.
    • Source repository.
  • A video demonstrating how to build a small example application (9 minutes), which is also linked from the start page of the prototype.

Acknowledgments

This project is supported by a grant from Wistron Corporation as part of a collaboration between Wistron and MIT's Computer Science and Artificial Intelligence Laboratory. This project also received partial support from the National Science Foundation under Grant No. CCF-1438982, and Matt McCutchen's work is funded in part by an NSF Graduate Research Fellowship.