Skip to content

Latest commit

 

History

History
24 lines (22 loc) · 2.04 KB

File metadata and controls

24 lines (22 loc) · 2.04 KB

Specifications for the Rails Assessment

Specs:

  • Using Ruby on Rails for the project
  • Include at least one has_many relationship - a Venue and an Act has_many Performances; a Contract has_many Approvals and Documents
  • Include at least one belongs_to relationship- a Contract belongs_to a Performance; a Document belongs_to a Contract; an Approval belongs_to a Contract and a User
  • Include at least one has_many through relationship - a Venue and Act has_many Contracts through Performances
  • The "through" part of the has_many through includes at least one user submittable attribute - performance.name, performance.perf_date, performance.perf_time, performance.tkts_url, performance.description
  • Include reasonable validations for simple model objects - act.website format, contract.due_date not in the past, document.location format, uniqueness of identity.uid & identity.provider, performance.perf_date not in the past, performance.tkts_url format, user.email is unique, venue.email format
  • Include a class level ActiveRecord scope method - View Approval requests in "pending status" (/approvals/pending)
  • Include a nested form writing to an associated model using a custom attribute writer - addition of approvals are nested within contract form
  • Include signup implemented via Devise with customization to require approval before site use
  • Include login - implemented via Devise
  • Include logout- implemented via Devise
  • Include third party signup/login- implemented via Devise/Omniauth with Google and LinkedIn providers
  • Include nested resource show or index documents are nested under contracts (/contracts/7/documents/8)
  • Include nested resource "new" form - documents are nested under contracts (/contracts/7/documents/new)
  • Include form display of validation errors - included on all forms via partials

Confirm:

  • The application is pretty DRY
  • Limited logic in controllers
  • Views use helper methods if appropriate
  • Views use partials if appropriate