Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ReviewRamp Technical Presentation


Published on

A technical introduction to ReviewRamp, an application for collecting and reviewing on-line submissions.

Published in: Technology
  • Login to see the comments

  • Be the first to like this

ReviewRamp Technical Presentation

  1. 1. ReviewRamp Submit it... Review it... Decide! Jonathan Linowes Parkerhill Technology Group NH Ruby Group, January 15, 2009
  2. 3. ReviewRamp <ul><li>SAAS application for collecting and reviewing on-line submissions </li></ul><ul><li>e.g. business plans, conference paper proposals, grant applications </li></ul><ul><li>Owners create projects with unique submission forms, review scoresheets, and summary reports </li></ul><ul><li>Each account like its own website: private users, database, pages, etc. </li></ul>
  3. 5. ReviewRamp: Usability Objectives <ul><li>Look and feel like a desktop app </li></ul><ul><li>“ No brainer” simple to use </li></ul><ul><li>Visually uncluttered </li></ul><ul><li>From signup-to-live in a few clicks, via built-in templates and wizards </li></ul><ul><li>Extremely customizable, with reasonable constraints and intelligent conventions </li></ul><ul><li>Complexity hidden under-the-hood </li></ul><ul><li>Accessibility-ready </li></ul>
  4. 6. ReviewRamp: Implementation Objectives <ul><li>RESTful protocols (with exceptions/extensions) </li></ul><ul><li>Scales to thousands of projects, hundreds of submissions, handful of reviewers (i.e. not massive scale) </li></ul><ul><li>Works well with javascript disabled; sweetened with javascript enabled </li></ul><ul><li>Full test coverage with rspecs and stories </li></ul><ul><li>First, get it to work. Then, get it to work better, faster </li></ul>
  5. 7. ReviewRamp Resources Membership Review Submission User Account Project Page Field Fieldset Dynamic Model
  6. 8. Account <ul><li>has many users </li></ul><ul><li>has many projects </li></ul><ul><li>has one owner, and billing </li></ul>
  7. 9. Project <ul><li>has many pages </li></ul><ul><li>has many members </li></ul><ul><li>has many submissions </li></ul><ul><li>has many reviews </li></ul><ul><li>has configuration options </li></ul><ul><li>has notification options </li></ul><ul><li>has layout, display options </li></ul>
  8. 10. Membership <ul><li>Users unique to each account </li></ul><ul><li>Memberships associate users with projects </li></ul><ul><li>Roles == authorization </li></ul>
  9. 12. Page <ul><li>Static content </li></ul><ul><ul><ul><li>text, image, download, fieldset </li></ul></ul></ul><ul><li>Navigation (hierarchy) </li></ul><ul><li>Composited (tabbed nav) </li></ul><ul><li>Authorization (permissions) </li></ul><ul><li>Data container </li></ul><ul><ul><ul><li>fieldset, RESTful, resource, nested </li></ul></ul></ul><ul><li>Data filters </li></ul><ul><li>Page builder GUI </li></ul>
  10. 14. Fieldset <ul><li>Sets of fields <=> dynamic_attributes </li></ul><ul><li>View types: form, show, list </li></ul><ul><li>implemented as </li></ul><ul><ul><ul><li>has many fields </li></ul></ul></ul><ul><ul><ul><li>view partials and helpers </li></ul></ul></ul><ul><ul><ul><li>advanced FormBuilder helper </li></ul></ul></ul><ul><ul><ul><li>other helpers </li></ul></ul></ul><ul><li>Supports nested references, n deep </li></ul><ul><li>Fieldset builder GUI </li></ul>
  11. 16. Routes RESTful but unconventional <ul><li>subdomain as account </li></ul><ul><ul><li> </li></ul></ul><ul><li>project by name implied </li></ul><ul><ul><li> </li></ul></ul><ul><li>page by name implied </li></ul><ul><ul><li> </li></ul></ul><ul><li>resources under page </li></ul><ul><ul><li> </li></ul></ul><ul><ul><li> </li></ul></ul>
  12. 17. poems_reviewer-my_scoresheet/submissions/62/reviews/my/edit
  13. 18. Demos <ul><li>Project settings </li></ul><ul><li>Page builder </li></ul><ul><li>Fieldset builder </li></ul><ul><li>Submitter </li></ul><ul><li>Reviewer </li></ul>