CMS with Ruby on Rails

CMS with Ruby on Rails

Since it’s early days in the 1990’s, the Internet has completely reshaped the business environment facing traditional media. Now, with the help of new technologies and online services leveraging big data and social media, they’re getting back in the game.

Business Challenge

Ruby on Rails is ideally suited to rapid development of RESTful APIs, both for production and proof-of-concept.

A startup in the US needed to create a content management system for mobile applications targeted at local media outlets and public institutions. However, they needed it to be more than just another standard CMS with a nice front-end coupled to a RESTful API. Their business plan depended on rapidly developing and deploying large numbers of small, customized mobile apps assembled from a core set of common features. Therefore, they needed to provide their users with the ability to not only distribute content, but also customize their applications.

An ideal use case for the final product would be rapidly developing a mobile app for a local radio station that would help provide a deeper and more immediate user experience for listeners, integrating features like online streaming with event promotions, social media updates, location services, and targeted advertising. By using a centralized API for the backend of the CMS our client would be able to avoid a lot of duplicate development work and more quickly proffer finished applications. Our client’s customers could then utilize the CMS to manage content and advertising customized for individual users. In this way our client hoped to build a door for old media into the world of new media.

Ruby on Rails was well suited for this project given the need to launch a working application for testing and proof-of-concept on a tight deadline. For experienced Rails developers, setting up an architecture for a RESTful API and getting started with testing and fine tuning can be a really quick step in the development cycle (sometimes this might only take a few hours). Launching a fully finished app with an attractive, secure, functional, cross-browser, and cross-platform front-end of course takes longer, but Rails certainly offers great advantages for rapid back-end development. Rails automatically handles much of the set-up required for key features; often you can be ready to go with just a line of code or two. Both Rails detractors and boosters like to call this the Rails “magic.”

Engineered Solution

Any large web app designed to support a business strategy consists of a variety of components which must be developed in concert.

Our client knew their app would need several different components to meet their stated goals. It would need an attractive and user-friendly UI, backed by solid back-end logic with a well structured and accessible API. For mobile applications, key features would also need to be integrated with native services such as push-notifications, streaming audio, calendar, and social media apps. One of our main priorities was to create a simple, straightforward, and practical architecture which would be easily maintainable and extendable.

In order to achieve these aims our development team went to work building a centralized API for distributing content and advertisements, and also controlling mobile application settings and deployed features. Ruby on Rails and PostgreSQL constituted the foundation of our application, with just the right features and “magic” necessary for the project.

Concurrently, we began development of a web-based UI using pure JavaScript. Taking advantage of Ruby on Rails and optimized JavaScript, we were able to make the UI customizable, easy to use, and fast, so that non-technical users could take full advantage of the rich features furnished by the API. Our API integrated with the front-end following a REST architecture, using JSON files which the back-end generated upon request.

Our team of developers and automation testers spent eight months churning through Scrum’s two-week iteration cycles in constant communication with the client-side product-owner. We use the Scrum framework for many of our projects at Datamart given our specific context within the software development industry where fast-moving web 2.0 projects are the norm. Scrum’s rapid iterations and constant feedback enable us to adapt to change while maintaining productivity and development velocity. With frequent interaction, our clients appreciate seeing measurable progress and having the opportunity to provide feedback and see their input rapidly incorporated into the product. Likewise, Scrum allows us to quickly rectify any problems as they emerge.

Once the CMS was ready and all features had been sufficiently covered with unit testing, functional testing, and manual-UI testing, it was time to go to production. Considering available cloud platforms, our client opted to use Heroku, a robust but easy-to-use platform-as-a-service originally specialized for hosting Ruby applications. As our client moved on to the production phase, Datamart stayed on to maintain the application and provide assistance for DevOps tasks.

Value Delivered

With Ruby on Rails, agile development methodology, and the experience of our full-stack developers, our client launched an innovative new service.

At Datamart, we developed an attractive, high-performing, UI and a powerful back-end content management system to effectively distribute content and advertising to users’ customizable mobile applications. Taking advantage of Datamart’s experience in developing complex web applications with Ruby on Rails, our client was able to launch an innovative new service with minimal expenditure of time and overhead. The final product has proven to be reliable, and most importantly easily maintainable thanks to its architecture, technology stack, and deployment strategy.