Mass.ive
Mass.ive, as a product, is an interactive, social shopping experience, based around the idea of group purchases driving down the cost of products by scale. Customer and vendors interact using a common, friendly and interactive web-based interface. The core aspects of the social experience are chains and chat. Chains are a collection of orders for a product from customer, working together to drive down their cost by bringing in other buyers through a site-wide chat interface. The more buyers that join a chain, the potential for the lowering of the price of the product for everybody in the chain. Customers get products for a smaller price, and the vendors move more of their products.
The Mass.ive website is compromised of two major software platforms: one, the interactive, web-based client, and two, the database-backed server API. The two platforms interact using the HTTP protocol in what's been termed in the industry as the RESTful architecture design pattern. REST (which is short for Representational State Transfer), is the idea that sessions should exist strictly with the client, and that the server should be stateless. Until recently, this idea was nearly impossible because web browsers lacked the processing power to render dynamic webpages. Thus, web servers have classically been assigned the job of rendering dynamic webpages.
Recently, however, personal computers have become powerful enough so that browser can handle the job of rendering dynamic content. Now, using RESTful design patterns, web-applications can follow in the footsteps of its desktop-application brethren. With the separation of concerns, servers and clients can focus on what they do best. Servers store and validate data, and clients focus on a friendly, rich and interactive interfaces for humans.
The Mass.ive client application is built using JavaScript and the AngularJS framework. JavaScript is the de-facto language of the web browser, and with frameworks like AngularJS, programmers can now build large-scale, integrated client-side web-applications. AngularJS is open-source project backed by Google, and abstracts many of the common boilerplate problems with web-application programming while still allowing the granular flexibility of programming in code. The Mass.ive client implements a point-n-click, drag-n-drop interface, without reloading. Mass.ive's client is loaded once into the browser's memory for the entire life cycle of the browser instance, and sends/receives lightweight simple-string requests/responses between the server. The client also implements a live-chat interface that connects all Mass.ive users together in real time.
The Mass.ive server API is built on top of the open-source Tomcat/Jersey RESTful framework and is the database is persisted using the document-based MongoDB database platform. Using these technologies allows Java programmers to focus on one interface, the Java language, to write a feature-rich RESTful API, without worrying about the interfaces between the HTTP protocol and the database querying language. The Mass.ive RESTful API implements what are called URL endpoints; simple web addresses that respond using various HTTP nouns, such as GET, POST, PUT and DELETE. For example, if the client wants to display all stores that sell sporting equipment in the 90032 area code, it makes a GET request against the server API at http://www.massive.com/resources/stores/categories/sporting_goods/zipcode/90032. The server API then responds with a simple string using the JavaScript-Object-Notation format (JSON, for short), containing the all the required information for the client to display a visual representation of the stores.
- Richard Cross
- Jason Kelsey
- Hsiang-Yu Liao
- Gabriela Monroy
- Kazuya Namba
- Kai Perng
- Ummata Thangvijit