EffOne Advantage

We at EffOne have mastered the art of RoR web development services. We specialize in developing web applications using advanced RoR services. We help you in achieving your IT goals with our RoR development services. We have experience in utilizing Rake, Cucumber, haml, Sass, CoffeScript, jQuery, Active Merchant, Braintree, Device, Oauth, Shoulda, Twitter Bootstrap, Html 5, CSS3, Capybara, Selenium, Jenkins CI, spork, Git, Passenger, Bundler, Rspec and other tools to accelerate Rails development

With more than two decades of Software Development experience in general and several years of RoR developments, we consider ROR as one of our important domains of expertise. For those looking to develop a social networking website, E-commerce website or content management website, we believe that Ruby on Rails is the ideal choice.

EffOne believes in meeting and exceeding customer expectations by making use of standard, best in industry practices for solution development. We build your applications as services which can then be utilized across the devices from traditional desktop to modern tablet, mobile phones, web or any other third party applications

Model representing the overall framework architecture:

The above-described features are distributed in the following Rails’ components and the Fig(Create Ruby on Rails Overall architecture shows the interaction between some of these components) listed below:

  • Action Mailer

  • Action Pack

  • Action Controller

  • Action Dispatcher

  • Action View

  • Active Model

  • Active Record

  • Active Resource

  • Active Support

  • Railties

Ruby on Rails features:

  • Model-View-Controller architecture.

  • Representational State Transfer (REST) for web services.

  • Supports the major databases (MySQL, Oracle, MS SQL Server, PostgreSQL, IBM DB2, and more).

  • Open-source server side scripting language.

  • Convention over configuration

  • Scripts generators to automate tasks.

  • Use of YAML machine, which is a human-readable data serialization format.

We have the capability to build Ruby on Rails technologies. However Ruby and Rails are just not the only technologies that are required many a times to build systems for our clients. We use a variety of technologies which are necessary from time to time and project to project. The following are some of the technologies that we use.

  • Language: Ruby (versions 1.8.X, 1.9.X)

  • Frameworks: Rails 2.X, 3.X, Sinatra, Rack

  • SQL Databases: Mysql, PostgresSQL, SqlServer, Oracle

  • NoSQL Datastores: MongoDB, Cassandra, Voldemort, Couch DB

  • Web2.0 / Javascripts: JQuery, Scriptaculous, Prototype, MooTools

  • Mark Ups: XHTML, HTML5, HAML, XML

  • Application Servers: Mongrel, Phusion Passenger(mod_rails)

  • Web Servers: Apache, Nginx

  • Test Methodology: Unit Tests, Shoulda, RSpec, Cucumber, Webrat, Capybara

  • Access & Security: Active Directory, LDAP, Role Management, Filters

  • Configuration Management: CVS, SubVersion(SVN), GIT

  • Performance Management Tools: Monit, NewRelic, Reek, Roodi, Metrics_fu, RCov, Flay, Flog, YSlow

  • Mobile framework: Rhodes

  • Desktop Framework: Shoes

  • Testing Tools: Selenium, Sahi

  • Issue Tracking Tools: LighthouseApp, Firebug

  • Project Management Tools: Basecamp, Agile, Scrum, XtremeProgramming

  • Payment Gateways: Paypal, Authorize.Net, Chargify, Bibit Payments, Anmed Payments, CCAvenue

  • Operating Systems: Linux, Windows, MAC

Solving Methods: We make a complex ROR project simple

No project is successful without defining processes to ensure all information is available between the stake holders. Even though we believe in a process does not mean that our clients also believe in the same. That’s why our first motto is to adhere to client's processes and implement them accordingly.

However given a chance to utilize our processes and methodologies, the following are the best in industry methodologies that we use.

Project Management Methodology

This relates to how we handle the project life cycle and identification & implementation of the features in a Ruby on Rails application. We follow Agile and Scrum Methodology for the projects where our clients want us to use our methodologies.

Agile Methodology

Agile Software Development Methodology is based on iterative and incremental development. Here the requirements and the solutions evolve through collaboration between self-organizing and cross-functional Teams. In this methodology unlike the earlier Waterfall model. The whole projects are divided into small iterations. In each iteration, a set of features are identified, analysed, built and published. The advantages of agile methodology are

  • Client has a satisfaction that some work is being done and delivered time to time

  • People welcome changes even if it is at last minute

  • Client can see their software shaping up in weeks/months’ time rather than years

  • Delivering a Working software is always the goal

  • Sustainable development at a constant pace

  • Discussions at short terms help in bringing the project on track.

  • Simplicity and Self organizing Teams. Everyone knows what to do.

Scrum Methodology

Scrum Methodology is a type of Agile Project Management Methodology identified as the best in class when building Products and Ideas. Scrum runs on a skeleton that contains a set of practices and predefined roles. The main roles of scrum are

  • Scrum Master: One who maintains the processes i.e. like a project manager ensures project is in line with time and execution

  • Product Owner: One who represents the stake holders and the business. One who knows the complete project from Domain point of view

  • Team: A group of cross-functional group who do the actual work i.e. analysis, design, implementation, testing, etc.,

Scrum is divided into interative elements called "SPRINT" which is typically a two to four week period. During this period the team creates a potentially shippable product increment. The features that go into a sprint come from a "PRODUCT BACKLOG" which is a document that maintains all the features to be implemented in the product.

A Scrum typically starts with a sprint planning meeting and the outcome of the planning meeting is the "SPRINT BACKLOG" and the Sprints. Once the Sprint has started on a daily basis a SPRINT MEETING is held to identify the work done and to be done for that day. This will help the Scrum Master to understand the current status of the project and any potential issues that could occur.

Testing Driven Programming

If a project has to be completely successful, then one of the most important factors for them is the Testing. Testing does not mean just that the features are working or the GUI looks correct. But it involves identifying if all the options / flows are taken into consideration and if the system can sustain necessary hits and loads from the users. In Ruby on Rails 2 types of Developments are utilized, one is Test Driven Development and the other is Behavioural Driven Development

Test Driven Development

Test Driven Development relies on the repetition of a very short development cycle. First the developer writes failing Tests for a particular feature, ensures they fail and then produces the code which will pass them. Once the test is passed, it is refactored to acceptable standards. A typical Test Driven Development Cycle is as follows

  • Add a Test

  • Run tests and see if they fail

  • Write Code

  • Run automated tests and see if they succeed

  • Run automated tests and see if they did not break any other feature

  • Refactor Code

  • Repeat the process for other features

Ruby on Rails prescribes Test Driven Development as the mandatory exercise as it imparts code management, code cleanliness and ensures everything is working in order. In Ruby on Rails we use the basic in built Unit Tests or use plugins such as Shoulda

Behavioural Driven Development

Behavior Driven Development (BDD) is similar to Test Driven Development; however it encourages more interaction and collaboration between Developers, QA/Testers and Non-Technical or Business Stake Holders. BDD focusses on obtaining clear understanding of desired software behaviour through discussion with stake holders. It extends TDD as in BDD you write tests in simple language rather than a pseudo methodology

Ruby On Rails in its latest version have been promoting Behaviour Driven Development by means of RSpec, Cucumber, Webrat, Capybara, etc., tools. These tools make excellent support in writing clean and easy understandable tests which at times even the non-programmer can write them.

Our Capability | Anything on Ruby on Rails

All we do is build Ruby on Rails. However it is not just Ruby on Rails that we build, using the base of Ruby, we can build many applications for you. In the last 5 years, we have built more than 25 websites / applications on Ruby / Ruby on Rails. Our experience in building web applications falls into the following categories.

Ruby and Rails based Applications

  • Content Management Systems

  • Ecommerce Websites

  • Social Networking Websites

  • High traffic, Scalable, Cloud Computing systems

  • Workflow Managment Systems

  • Internet Innovations (do you think your idea can be the next Facebook, Twitter?)

  • Exciting Web 2.0 based GUI Applications

  • Facebook / Twitter / LinkedIn / External API integration Systems

  • Mobile Optimized Websites

  • SQL and No SQL based systems

  • RESTful Systems

Ruby based Applications

  • Desktop Applications on Windows / Linux and Mac OS from just one code base

  • Mobile Applications for all types of mobiles i.e. IPhone, Android, Nokia, Symbian, etc.,

  • Crawlers, Spiders, Bots

Finally, it would be safe to say that the framework architecture meets most of its intended goals, but not without its caveats. The level and speed of adoption in industry and the open-source community could be used as validation of the potential the framework has, but at the same time we see limitations emerging when using the framework. Some of these limitations are part of the driven force behind the ongoing evolution of Ruby on Rails

EffOne’s RoR development team deploys Ruby on Rails using database servers such as Apache or MySQL. Our developer teams provide a faster development process using the latest version of Ruby on Rails. EffOne’s RoR development team deploys Ruby on Rails using database servers such as Apache or MySQL.