Homework for 12

Note: There are TWO parts to this exercise, and both are extremely important. Start early!

Part I: The Pinteresting Bru

Description

Every bru needs a place to keep track of all his or her favorite things. Today we'll be recreating Pinterest! First, git clone the PinterestingBru repository from Github to get started. A few things are already filled in for you.

MVP

Create an app using authentication with either Devise and/or Omniauth Facebook, that will allow a user to log in to their account and add pins to boards.

Models

Think carefully about the relationship between a user, board, and pin. What is the relationship between a user and a board? A board and a pin? A user and a pin? A user should have many boards, and should have many pins through a board. A board should have and belong to many pins. Play around with Pinterest or ask a friend if you're not sure how Pinterest works. Think about what attributes each of these models will need.

Some suggestions, but feel free to come up with your own:

Views/Controllers

In addition to the login/signup views, make sure the user can CRUD boards and CRUD pins. Allow any logged in user to view all public boards. Note that it is important that users should not be able to CRUD other user's boards and pins. To do this, you will need to first check if the current user is the same as a board's user. Think about where and how you want to do this.

Lastly, install Bootstrap into the app, and play around with how it looks.

Hints

Bonuses

The following features are completely optional, and should be implemented if you've finished both parts early.

Features

Heroku: The Bru in the Real World

We're live folks! Make sure to seed your database with values (at least 3 Users, 3 boards per User, 3 pins per board). Then push the Pinteresting Bru to Heroku.

Part II: Final Project

We're officially starting final projects! A week and a half from now, you will be presenting these. Exciting right?

Pick a partner and go through the ideation process Aaron introduced last week. Groups of 3 are ok, but we believe that a group of 2 is the most ideal. If you really want to work in a group of 3, you will need to get your group approved by Brian.

In your group, come up with ideas for web apps that have the potential to make a real impact on social issues in South Africa. Generate at least 7 ideas for tomorrow. Use yesterday's trip to the township as inspiration.