Understand using gems and their place in Rails development
Understand Relationships between models
Understand Personalization
Understand Authentication
Understand Pagination
Performance Objectives
After completing this assignment, you be able to effectively use
authentication, sessions, and current_user with Devise
Bootstrap
Pagination with kaminari
Validations
Controllers
Routes
Models with ActiveRecord
Details
[x] Users can signup, and sign in
[x] User can follow other users
[x] User can see posts from (themselves and people they follow) in their Timeline
[x] User can Post posts
[x] User can unfollow a person
[x] User can upload a profile picture (avatar)
[x] User's avatar should be desplayed everywhere that it makes sense
[x] Site should look nice
[x] Posts should be paginated
[x] Data should be seeded (look into faker and alternatives)
[x] Deploy to Heroku
[x] User can view a profile (/users/jwo)
Bonus
[ ] Search posts
[ ] Users can block other users
Notes
Call your app something other than "Twitter"
When logged in, the root URL should show the messages from all the people you follow.
People can post "messages," "cheeps," or whatever you want to call them. They're tweets, but please don't call them that.
Getting the list of messages for You + people you follow is tricky'ish. Think of it like this:
class Post
def self.timeline(user)
follower_ids = user.followers.map(&:id)
all_ids= follower_ids << user.id
Post.where(user_id: all_ids).order("created_at DESC")
end
end
...or perhaps a User automatically follows themeselves when creating their account?
Week 7 - Assignment 4
Microblogging Social Network (aka Twitter Clone)
Objectives
Learning Objectives
After completing this assignment, you should…
Performance Objectives
After completing this assignment, you be able to effectively use
current_user
with Devisekaminari
ActiveRecord
Details
faker
and alternatives)Notes
...or perhaps a User automatically follows themeselves when creating their account?