BDD, Mocha, Chai, Branching, Looping, Callbacks, Basic Git, jQuery, Using objects to store info.
if/else if/elseforloopparseInt()forEach()split()join()push()pop()slice()concat()/+indexOf()some()
###jQuery:
- select elements on a page
- event listeners
- hide / show / toggle / append / prepend / text / first
preventDefault()this- manipulation & traversal
- simple effects
###Git:
git config/pairsgit remote(concept)git initgit add .git statusgit commit -m '...'git push
####Generic:
- Write a function using BDD. It should include looping (using
fororforEach()) and branching (if,else). - Create an HTML form that pops up an alert when submitted.
- Initialize, commit, and push a new Git repsitory.
####Specific:
- Create a webpage that allows a user to enter a paragraph of text to find out the word count.
- Add a second field that would allow users to enter a word and get the count of how many times that word appears in the provided paragraph.
- Make the word finding feature case-insensitive.
Object properties, Object methods, This, Prototypes & Instances
- properties vs methods
- prototype objects
- object instances
- this (!!!)
create()initialize()isPrototypeOf()
####Generic:
- Create two prototype objects that have
create()andinitialize()methods and anallproperty that holds all instances of that prototype. Create instances of each prototype and add properties to each. - Build a simple game using OO and BDD. Make a webpage so people can play!
####Specific
- Using BDD and objects, create the logic for a to-do list with support for multiple lists, and the ability to add/remove tasks from the list.
- Make a webpage that allows users to add new lists and add/remove tasks from lists. Spend some time making it look nice!
- Notify the user with an alert when there are no tasks left in a list.
- Display the total amount of tasks / lists in the top-right corner.
Rspec, Ruby Syntax, IRB, Gems, Cool Ruby methods
between?,even?to_s,to_iinjectany?,all?,include?,nil?select,reject,detect- ranges
(0..5) each,each_with_index,- not relying on
for/while/until - hashes
- (make a gem?)
###More Git:
git clonegit pullgit checkoutgit resetgit loggit diff
####Generic:
- Write some basic methods with Ruby Sytanx in IRB.
- Write a function that incorporates some of the newer methods available in Ruby.
- Using the command-line, create a basic interface to allow users to input data for your function and view the return.
- Git: Clone a repository to your local machine. Make changes then roll back to the last commit. Pull changes from your remote respository.
####Specifc:
- Create a command-line interface which allows users to input a string of text and returns a hash with the word as the key and its length as the value.
- Remove commas and periods using regex.
- Use the reject method to exclude words that have more than 1 vowel.
Classes, Ruby Objects, Instance Variables, Class Methods, Class Variables
- Ruby Objects vs JS Objects
.methods,.class,.newselfinitializeattr_reader,attr_accessor(don’t use)- shovel (
<<) - debugging:
p/puts,binding.pry - initializing with hashes
####Generic:
- Create a class that takes a hash to initialize and saves the values to properties. Create 2 additional methods and another class.
- Create a command-line interface that allows a user to interact (create new instances, list, etc.) with your classes.
####Specific:
- Create an app to manage the inventory of a car dealership. Using the command-line, users should be able to add a new car (brand, model, year, purchase price), list all cars, remove a car and search by make or model.
- Make a method that automatically sets a Sale Price by adding 20% to the purchase price.
- Add an option to sort inventory by year, make, model or sale price.
SQL, Database Relations, Postgres, Schema's, User Stories
- one-to-many
- many-to-many
- one-to-one
- join tables
- db's, tables, columns, entries (rows)
- SQL Commands
- Data types
- CRUD Methods (manual)
- spec_helper
###Advanced:
- join queries
####Generic:
- Write a command-line program that is backed by a database. Include a one-to-many relationship and a many-to-many relationship.
Inhertance, ActiveRecord, Rake, Migrations, Bundler
- ActiveRecord Associations
- ActiveRecord Queries
- AR Validations
- AR Callbacks
- Writing Migrations (clarify def up/down)
find/find_by- ActiveRecord shovel (
<<) - Gemfile
###Advanced:
- scopes
####Generic:
- Write a command-line program using ActiveRecord. Include has_many, belongs_to and has_many_through associations and validations. Use shoulda-matchers for testing.
- Make use of the find or find_by ActiveRecord methods.
HTTP, MVC, Rails, ERB
- HTTP Requests (methods, path, headers, body)
GET,POST,PUT/PATCH,DELETE- HTTP Responses (Status, headers, body)
- Routes, controllers, views
- Params
- Forms
- Heroku
- Redirecting
- Using dropdown menus
- Flash
- Partials
- Asset pipeline
- Nested routes
###Advanced:
- Sass
###General Exercise:
- Make a rails app with at least 3 models. Users should able to CRUD. Make sure to display error and success messages.
####Generic:
- Build a basic CRUD/L app that includes: flash messages, partials and some css styling.
####Specific:
- Create an app to keep track of the movies you've watched. Allow users to add a movie with a title, year and genre.
- Deploy it to Heroku.
Helper methods, Security in Rails, Integration testing, Images
- Resources (routes)
- Link helpers, Form helpers
- CSRF, Mass Assignment, Cross-site scripting, SQL Injection
- Using checkboxes for HABTM
- FactoryGirl
- CapyBara
- Authentication from scratch
- Upload images (Paperclip)
###Advanced:
- Polymorphism
- Parse CSV files
- PORO
- Nested Attributes
####Generic:
- Build a Rails app using strong params and conventional rails methods (helpers).
- Use Capybara and FactoryGirl for integration testing.
- Include User Authentication
####Specific:
-
Update your movie app to make use of rails helper methods (
link_to,form_for, route helpers). -
Add abiltiy to upload an image with your movie.
-
Add title search and soriting by genre or year.
-
Add integration tests using Capybara and FactoryGirl.
AJAX, Emails, Devise, CanCan, JS Testing
- AJAX with Rails
- Understanding asynchronous
- Exposure to popular gems
####Generic:
- Write a Rails app that uses AJAX for creating, updating, and destroying a model.
- Bonus points for using
accepts_nested_attributeswith AJAX.
- Connecting with 3rd party web service APIs
- Building a Rails API
- Build an app that uses a third-party API
- Create a Rails API app that responds with JSON
Not sure what to do about these weeks...
Ember flow, Connecting with rails backend
- Router and Routes
- Controllers and Templates
- ActiveModel adapter
Ember views, Standalone ember app, Connecting with 3rd party APIs
- Nested routes ...