REQUIREMENTS FOR RUBY ON RAILS PROJECT
- Use the Ruby on Rails framework.
YOU MODELS MUST INCLUDE
-
Include at least one has_many, at least one belongs_to, and at least two has_many :through relationships
-
Include a many-to-many relationship implemented with has_many :through associations. The join table must include a user-submittable attribute — that is to say, some attribute other than its foreign keys that can be submitted by the app's user
-
Your models must include reasonable validations for the simple attributes. You don't need to add every possible validation or duplicates, such as presence and a minimum length, but the models should defend against invalid data.
-
You must include at least one class level ActiveRecord scope method. a. Your scope method must be chainable, meaning that you must use ActiveRecord Query methods within it (such as .where and .order) rather than native ruby methods (such as #find_all or #sort).
-
Your application must provide standard user authentication, including signup, login, logout, and passwords.
-
Your authentication system must also allow login from some other service. Facebook, Twitter, Foursquare, Github, etc...
You must include and make use of a nested resource with the appropriate RESTful URLs.
-
You must include a nested new route with form that relates to the parent resource
-
You must include a nested index or show route
Your forms should correctly display validation errors.
-
Your fields should be enclosed within a fields_with_errors class
-
Error messages describing the validation failures must be present within the view.
Your application must be, within reason, a DRY (Do-Not-Repeat-Yourself) rails app.
-
Logic present in your controllers should be encapsulated as methods in your models.
-
Your views should use helper methods and partials when appropriate.
-
Follow patterns in the Rails Style Guide and the Ruby Style Guide.
INSTRUCTIONS
- Create a new repository on GitHub for your Rails application.
- When you create the Rails app for your assessment, add the spec.md file from this repo to the root directory of the project, commit it to Git and push it up to GitHub. You will use this file as a personal checklist of requirements as you complete the project. Build your application. Make sure to commit early and commit often. Commit messages should be meaningful (clearly describe what you're doing in the commit) and accurate (there should be nothing in the commit that doesn't match the description in the commit message). Good rule of thumb is to commit every 3-7 mins of actual coding time. Most of your commits should have under 15 lines of code and a 2 line commit is perfectly acceptable. This is important and you'll be graded on this.
- Record at least a 30 min coding session. During the session, either think out loud or not. It's up to you. You don't need to submit it, but we may ask for it at a later time.
- Make sure to check each box in your spec.md (replace the space between the square braces with an x) and explain next to each one how you've met the requirement before you submit your project.
- Write a README.md.
- Submit a video of how a user would interact with your working web application.
- Write a blog post about the project and process.
- When done, submit your GitHub repo's url, a link to your video demo, and a link to your blog post in the corresponding text boxes in the right rail. Hit "I'm done" to wrap it up.