Case Study: VisionScape
by: Dan Stone • September 25th, 2011
Posted in Portfolio, Ruby on Rails, Social Media, UI Design, Website Development
EMN has a niche speciality in helping startups get off the ground.
Our background in marketing, design, and web technologies such as Ruby on Rails, client-side JavaScript, e-Commerce, and API integration give us a unique set of skills for working with startup companies looking for formative consulting on their projects.
VisionScape came to us with a bold idea: Build a web application and desktop client to enable landscape designers to design, model, and construct landscapes for their clients entirely in 3d, and provide web software both to showcase these designs for their customers while providing access to a catalog of real-world products. The catalog includes major brands like hardscape manufactures Unilock and Harmony Outdoor Living, garden and agriculture companies such as Proven Winners, and pretty much any other product one could imagine.
This task was made more challenging by two main things:
- The requirements called for us to expose a client API to enable the desktop client to use all of these products in 3D, including provision of all catalog information needed for the client to index and download any product provided.
- The products, coming from a variety of manufacturers all had different types of data in them, making the creation of a unified schema difficult to design.
Additionally, we wanted users to be able to upload photos and movies of the projects they’d created. We worked with a great team in London who developed the client to enable to speak directly with the VisionScape.com application, so that users of the software could build online showcases of the virtual properties they’ve created.
As you might imagine, accomplishing all of this was no small feat. After a discovery process, our team at EMN determined that the entire application, whether it be the website, the desktop client, the administration tool or any future application, would run over a RESTful web service to ensure full portability of the main functionality of the application to any task. This model in general has become our current model for building any large-scale web application.
We chose to work with a database called CouchDB, which in addition to its native RESTful capabilities allowed us to work in a ‘schema-less’ fashion, ensuring that we could add any attribute to any product record we liked and be future-proof for new catalog additions easily.
We used our language and framework of choice Ruby on Rails as the middleware between the Couch REST API and the API we exposed to the world at large. This allows us to easily translate data between different formats (such as JSON and XML) as well as giving us advanced resource and asset control.
We also rely heavily on asset repositories such as Amazon S3 and other Amazon Web Service technologies. The tech doesn’t stop there… but for the purpose of this post it does. To learn more about this project or our overall development philosophy, please don’t hesitate to contact us.
The end result is VisionScape.