Kapow! Media

About Kapow! Media
Kapow! Media is a marketing services company with an emphasis on maximizing client response. It uses advanced analytics to tailor marketing campaigns on a customer-by-customer basis.

It leverages both active and passive communication by tracking users' reaction to content and frequency. This means that both Kapow! and its partners will get the highest return on their data. It provides excellent end-user experience, ensuring that advertisements do not alienate good customers.

Kapow! Media Case Study

Project Requirements

This project targeted customers who had opted for certain advertisements they wanted in their emails. This involved complex algorithms that judged the authenticity of an advertisement and separating SPAM.

Most of the email advertisements today are SPAM, so genuine ads were segregated from the clutter. The project involved 2 sub-projects: Effort and Campaign Manager.

  • Much of email advertisement involves SPAM, so the challenge was to segregate the good advertisements from the bad.
  • Most advertisements are rejected by email filters, so the major challenge remained designing algorithms that could circumvent the e-mail filters to accept genuine advertisements.
  • We used the latest version of Ruby language and Ruby-on-Rails, version control (Git), key-value storage (Redis), advanced JavaScript library (extJS), and a light-weight Ruby framework (Sinatra).
 

BluEnt's Method

BluEnt followed the Behavior Driven Development approach (BDD). BDD focuses on obtaining a clear understanding of desired software behavior through discussion with stakeholders.

BDD also helped communication between the development team and testing team by simplifying the language used to describe scenarios in which the software would be used. Rspec was used to write executable examples of the expected behavior of a small bit of code in a controlled context.

Linux was used as development platform, which resulted in faster development and testing. The choice of Ruby-on-Rails as the development framework meant the Agile Software Development model was followed, culminating in faster release cycles and better interaction within the team.

The tool involved 2 sub-projects:

Version 1: Effort

This phase involved implementation of a CRUD interface for various tables in the schema. These operations were based on specified privileges, so as to safeguard against unauthorized access and/or modification of data.

A periodic background scheduler was used (Resque) to manage fetch/storage of new advertisement campaigns. Hobo (www.hobocentral.net) was used to speed up development. jQuery was used as JavaScript library, and database used was MySQL, along with Redis, for storing links.

Version 2: Campaign Manager

This version involved generation of JSON response for advertisement data, and parsing the same. This generation/parsing of JSON response was restricted, based on privilege of the logged-in user.

ExtJS library was used, resulting in a better UI experience. Also, thelatest version of Ruby (1.9.2) and Rails (3.0.5) were used. PostgreSQL and Redis were used this time, MySQL support was dropped.

Latest Rubygems, such as Cancan, Devise were used to accelerate development, and faker was used to generate fake testing data. A Sinatra application was also developed for fetching and browsing e-mail offers. The same was achieved within a short span of time.

Technology Stack

  • Operating System: Ubuntu Linux Desktop 10.10 for development, Ubuntu Server for deployment.
  • Programming Language: Ruby 1.8.7 (for v-1), 1.9.2 (v-2)
  • Framework: Ruby-on-Rails (v 3.0.5), Sinatra (v 1.2.0)
  • Database: MySQL (for v-1), Redis, PostgreSQL (v-2)
  • Web Server: Mongrel (for v-1), Thin (v-2)
  • JavaScript Library: jQuery, extJS
  • IDE for development: Netbeans (Linux)
  • Testing framework: Test::Unit (v-1), Rspec, Cucumber (v-2)
  • Ruby gems used:
    • Cancan (Authorization library)
    • Devise (Authentication solution)
    • Database_cleaner (Database clean up for testing)
    • Faker (Fake data for testing)
    • Faster_csv (CSV parser)
    • Json (JSON Parser)
    • Nokogiri (HTML, XML, SAX, and Reader parser)
    • Machinist (Test object creator)
    • Mail (Ruby DSL for mails)
    • Meta_where (Simplifying ActiveRecord queries)
    • Paperclip (File attachments as attributes)
    • Rcov (Code coverage analysis)
    • Resque (Redis-backed queueing)
    • Rspec (Behaviour-Driven Development)
    • rufus_scheduler (Job Scheduler)
    • Selenium (For automated testing)
    • Tzinfo (Timezone library)
    • Warden (Rack middleware)

Results

BluEnt achieved the task with effective client interaction while following proper programming practices. Daily meetings with client were scheduled and progress was properly charted.

 

Maximum Value. Achieved.

BluEnt offers a unique blend of design and development experience, technical and project management skills, and innovative delivery approaches to satisfy the work requirements of the clients.

Give us a shout!

Fill the form below to drop us an email. We would also love to get a call from you.

Hire Experts