Module 2 Sucess

Graduation Requirements

In order to graduate from Module 2, students must complete each of the following:

Follow the Guidelines and Expectations.

Final Assessment

Students must earn a score of 3 or greater in each category of the final assessment rubric.

Group Work

Students are expected to be a contributing team member in both of their group project in module 2, and receive 3s or upward sloping trend in a lower score on the first project.

Blog Post

Write a minimum of 1 technical blog post about a topic of your choice and post it to Medium or your personal blog site.

Community Involvement

In addition to Gear Up and Posses, there are various way to contribute to the community. Students are expected to contribute in a way that most suites themselves and relay the contribution to Instructors during their portfolio review.

Professional Development

Students are expected to contribute during the Professional Development session and deliver deliverables from that session.

Skills and Topics

Skill Proficiencies

Academic success in B4 means that students demonstrate proficiency and comfort with the concepts below. The expected mastery level can be understood with the following scale:

  • Mastery: student is able to explain and implement the concept independently or with light reference
  • Functional: student recognizes when to use the concept and can implement it with the support of documentation and/or a collaborator
  • Familiarity: student can recognize and describe the concept when needed/appropriate, but is not able to implement the technology/technique

The following list includes everything you will see throughout the module. You should be familiar enough with the following list to at least speak about and identify each of the following in a project codebase:

Project Management & Professional Skills

  • Career Development Curriculum
  • Employ effective communication in order to facilitate collaboration. (Functional)
  • Apply best practices in project management and Git workflow. (Functional)
  • Effectively contribute to group projects (Functional)
  • Apply good communication practices with pairs, groups, teams etc (Functional)
  • Consistent punctuality to all obligations, meetings, check-ins etc (Mastery)
  • Wireframe project ideas (Functional)
  • Write detailed user stories using the Gherkin Model(Mastery)

Understanding and interpreting errors and error messages

  • Where in your code is there error? (Functional)
  • What was the code trying to accomplish when it failed? (Functional)
  • What caused it to fail? (Functional)
  • Using a debugging tool like pry or byebug to sort through the error vs puts driven development” (Functional)

Diagram and explain the MVC model

HTTP Fundamentals

  • Request (Functional)
  • URI/URL (Functional)
  • Headers (Familiarity)
  • Body (Familiarity)
  • Response (Functional)
  • Redirect / Render (Mastery)
  • HTTP Status Codes (Functional)
  • State Transfer (Familiarity)
  • Sessions (Functional)
  • Cookies (Functional)
  • Flashes (Mastery)
  • 7 HTTP Verbs (Mastery)
  • Describe the HTTP request/response cycle (Mastery)
  • Explain what happens when a client visits a website (Functional)

HTML/CSS

  • Understand basic HTML tags/elements/nodes including but not limited to:
    • Forms <forms></forms>
    • Divs <div></div> (Mastery)
    • Paragraphs <p></p> (Mastery)
    • Headers <h1></h1><h6></h6> (Mastery)
    • Lists <ul></ul>, <ol></ol>, <li></li> (Mastery)
    • Tables <table></table>, <tr></tr>, <th></th>, <td></td> (Mastery)
  • The innate verbs associated with specific tags. link: get (Mastery), button: post (Mastery), form: put (Mastery)
  • Add classes and ids to HTML elements (Mastery)
  • Send params through URL: http://example.com/things?param1=valueOfP1&param2[nested1]=value-of-nested1&param2[nested2]=nested-value-2 (Mastery)
  • Target specific HMTL content with CSS selectors (Mastery)
  • Explain hierarchy/ancestry of HTML (Functional)

Model Testing

  • Basic RSpec syntax (Mastery)
  • data preparation/manipulation (Mastery)
  • validation testing (Mastery)
  • relationship testing (Mastery)

Feature Testing

  • Basic RSpec syntax (Mastery)
  • Capybara methods (Functional)
    • within, find, visit, page, current_path, have_content, click_on and more (Mastery)

SQL

  • Writing basic SQL select statements (Mastery)
    • Inserts (Functional)
    • Calculation statements (Functional)
    • Joins (Functional)
    • Order (Functional)
    • Group (Familiarity)
    • .schema (Familiarity)

Database Planning, Migrations and Relationships

  • Design database schemas to represent relationships between objects (Functional)
  • Clearly articulate a relational database structure (Functional)
  • one-to-one, one-to-many, many-to-many relationships (Mastery)
  • Rails CLI generator commands (Functional)
  • What methods do we get when we set up relationships? (Mastery)
  • Presence and Uniqueness Validations (Mastery)

Views

  • Template a view (Mastery)
  • Craft wireframes (Functional)
  • How to iterate over a collection of ActiveRecord objects in a view (Mastery)
  • How to use erb tags in a view to display information. (Mastery)
  • Difference between <%= %> and <% %> (Mastery)
  • How to create a form in a view using Rails, including a form using nested resources. (Mastery / Functional)
  • Make a partial (Functional)

Controllers

  • Inheritance (Functional)
  • ApplicationController (Functional)
  • helper_method (Mastery)
  • CRUD actions: index, show, new, create, edit, update, destroy (Mastery)
  • Custom actions from routes (Functional)
  • Inspect and understand params and strong params (Mastery)
  • How to prepare data for your views. (Mastery)
  • Refactoring best practice for MVC. Fat models, skinny controllers (Mastery)

Models

  • ActiveRecord Model vs PORO (Functional)
  • Inheritance (Mastery)
  • Class Methods (Mastery)
  • Instance Methods (Mastery)
  • Scopes (Functional)
  • Refactoring best practice for MVC. Fat models, skinny controllers (Mastery)

Routes

  • 7 Restful routes - verb path combinations - for a resource (Mastery)
  • How to create routes using resources (Mastery)
  • How to handwrite a route (Mastery)
  • route_helpers ex. edit_item_path(item) (Mastery)
  • Explain what each column of the rake routes output represents and allows the developer to do. (Mastery)
  • :only :except (Mastery)
  • Route modifiers: :module, :path, :scope (Functional)
  • namespace and nested resources (Highly Functional)

ActiveRecord

  • ActiveRecord query methods. Differences between find find_by and where (Mastery)
  • Understand how AR create and a new instance + save are related (Mastery)
  • Methods associated with AR relationships (Mastery)
  • Validations - Presence, Uniqueness (Mastery)

Authentication

  • BCrypt (Functional)
  • Hashing Algorithms (Familiarity)
  • has_secure_password (Functional)

Authorization

  • before_action (Mastery)
  • Roles (Functional)
  • Controller Inheritance (Functional)