Skip to content

Latest commit

 

History

History
31 lines (26 loc) · 2.23 KB

spec.md

File metadata and controls

31 lines (26 loc) · 2.23 KB

Specs:

  • Using Ruby on Rails for the project (generated new Rails app via terminal)
  • Include at least one has_many relationship (x has_many y; e.g. User has_many Routines)
  • Include at least one belongs_to relationship (x belongs_to y; e.g. RoutineExercise belongs_to Exercise)
  • Include at least two has_many through relationships (x has_many y through z; e.g. Routine has_many Exercise through RoutineExercise)
  • Include at least one many-to-many relationship (x has_many y through z, y has_many x through z; e.g. Routine has_many Exercises through RoutineExercise, Exercise has_many Routines through RoutineExercise)
  • The "through" part of the has_many through includes at least one user submittable attribute, that is to say, some attribute other than its foreign keys that can be submitted by the app's user (attribute_name e.g. routine_exercise.reps)
  • Include reasonable validations for simple model objects (list of model objects with validations e.g. User, Recipe, Ingredient, Item)
  • Include a class level ActiveRecord scope method (model object & class method name and URL to see the working feature e.g. User.most_recipes URL: /users/most_recipes)
  • Include signup (through devise gem)
  • Include login (through devise gem)
  • Include logout (through devise gem)
  • Include third party signup/login (how e.g. Devise/OmniAuth)
  • Include nested resource show or index (URL e.g. routines/2/routine_exercises (index) or routines/2/routine_exercises/5 (show))
  • Include nested resource "new" form (URL e.g. routines/1/routine_exercises/new) --> Went with "edit", instead
  • Include form display of validation errors (form URL e.g. /recipes/new)

Confirm:

  • The application is pretty DRY
  • Limited logic in controllers
  • Views use helper methods if appropriate
  • Views use partials if appropriate --> Partials for app/views/routines and app/views/exercises

Post-work Goals:

  • Restyle each page to (responsively) take up a larger portion of whatever screen it's rendered on
  • Try to incorporate 1 or 2 new gems
  • Write a new blog about the experience of refactoring this project past MVP
  • Deploy to Heroku (include links and demos in portfolio and resume)