Rails Case Study: Frontier And Outpost

950 views

Published on

This talk was part of the Silicon Valley Ruby on Rails meetup on Mar 11, 2010.

It describes some of the techniques used by Lakeway Technologies in the development of Lakeway Frontier, a project management automation tool.

Lakeway Frontier is deployed as a virtual appliance running Ubuntu. Here are some of the technical features.

* A data warehouse architecture is used instead of the typical rails ORM approach. This enables efficient analytic queries slicing across the data in different ways.

* Frontier uses a Flash viewer that rails can interact with via javascript and the DOM to render some neat graphical views (workflow, task graph, effort distribution, schedule). This interaction is bi-directional.

* Partials are leveraged quite a bit in a number of novel ways. Ajax is used to make the app very dynamic.

* Frontier employs a gem-wrapped graphviz library to enable the app to lay out task graphs dynamically.

Lakeway Outpost is a tool for doing high level resource planning. It is deployed on heroku and is available at outpost.heroku.com.

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
950
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Rails Case Study: Frontier And Outpost

  1. 1. Lakeway T E C H N O L O G I E S Rails in the Wild: Frontier and Outpost Rino Jose, Ph.D. COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  2. 2. About Frontier COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  3. 3. About Frontier COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  4. 4. About Frontier COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  5. 5. About Frontier COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  6. 6. Deployed as VM + 50 STEPS COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  7. 7. Deployed as VM + 50 STEPS COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  8. 8. Deployed as VM + 50 STEPS VMWare Converter COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  9. 9. Deployed as VM monit + nginx + mongrel + cron + Hyper-V + 50 STEPS = >1 year at customer site without issue VMWare Converter COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  10. 10. Data Warehouse Architecture users User id name email task_key User name email task_key tasks Task id name effort_left project_key Task name effort left project_key projects id name target date Project Project name target date COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  11. 11. Data Warehouse Architecture users id name email task_key tasks id name effort_left project_key projects id name target date COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  12. 12. Data Warehouse Architecture users id name email Dimension task_status_facts task_key project_key assigned_to_key effort_left Fact tasks projects id name id name Dimension Dimension COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  13. 13. Data Warehouse Architecture users id name email Dimension task_status_facts task_key project_key assigned_to_key effort_left Fact tasks projects id name id name Dimension Dimension COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  14. 14. Graphviz gem COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  15. 15. Graphviz gem ./configure --enable-shared make; sudo make install config.gem ‘graphviz’, :version => ‘1.0’ Add wrapper classes & Package as graphviz.gem COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  16. 16. Flash + Rails <div id=“viewer”> </div> COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  17. 17. Flash + Rails <div id=“viewer”> Data rendered in HTML </div> COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  18. 18. Flash + Rails <div id=“viewer”> Data rendered in HTML </div> ExternalInterface.call COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  19. 19. Flash + Rails <div id=“viewer”> Data rendered in HTML </div> ExternalInterface.call COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  20. 20. Flash + Rails <div id=“viewer”> </div> ExternalInterface.call COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  21. 21. Flash + Rails <div id=“viewer”> document[“viewer”].doSomething() </div> ExternalInterface.call COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  22. 22. Partial to Partials <%= render(:partial => “partial”)%> Markup + Javascript = Frontend Snippets COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  23. 23. Partial to Partials <%= render(:partial => “partial”)%> Markup + Javascript = Frontend Snippets <%= render(:partial => “partial”, :locals => {:key => 12} + :locals ) %> Frontend Objects COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  24. 24. Partial to Partials <%= render(:partial => “partial”)%> Markup + Javascript = Frontend Snippets <%= render(:partial => “partial”, :locals => {:key => 12} + :locals ) %> Frontend Objects params = {}; params["project_key"] = "<%= project_key %>"; new Ajax.Request('/projects/show_loading', + Ajax { asynchronous:false, method:'post', Dynamic Frontend Objects parameters: params }); COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  25. 25. Partial to Partials COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  26. 26. Partial to Partials projects/hoverbox_content.html.erb COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  27. 27. Using Heroku Easily scalable MySQL gotchas Nice selection N o direct of a dd-ons d atabase access Friend lier than Ch anges to ca pistrano how you troub leshoot p tpost.he roku.com E asy setu h ttp://ou using git COPYRIGHT © 2010, LAKEWAY TECHNOLOGIES LLC
  28. 28. Lakeway T E C H N O L O G I E S Rino Jose r.jose@lakeway-tech.com (408) 518-0489 www.lakeway-tech.com

×