Giter Site home page Giter Site logo

brentbarnes / chipper-social Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.16 MB

A Ruby-on-Rails Facebook clone that has posts, comments, likes, and friendships!

Ruby 64.94% JavaScript 0.98% HTML 32.14% SCSS 0.06% Shell 0.11% CSS 1.73% Procfile 0.03%
capybara-rspec facebook-clone ruby-on-rails

chipper-social's People

Contributors

brentbarnes avatar brentbarnes-di avatar

Stargazers

 avatar

Watchers

 avatar

chipper-social's Issues

1. Use PostgreSQL to set up project

See the Heroku Docs for setup info.

Also

"Build the new PostgreSQL Rails app $ rails new odin-facebook --database=postgresql, initialize the Git repo and update the README to link back to this page."

7. Users can create Posts (text only to start)

  • Create post model
  • New post can be created on the home/index page
  • It automatically gets pushed to the news feed (using turbo streams?)
  • When user creates post, it posts to the home/index page news feed
  • Posts should display with author and post content (to start)
  • User can delete a post if it is theirs

5. A User must accept the Friend Request to become friends & 6. Friend Requests appear in notification section

  • Create a nav bar with a notifications link
  • Set up associations for notification model. User has_many notifications and notification belongs_to user?
  • Create a notifications view #index should work
  • Test this view. It should contain text "Notification Center"
  • Display all notifications
  • Option to accept or delete friend request
  • Test to make sure that once a friend_request is accepted, User.friends returns that friend

2. Users must sign in to see anything except the sign in page.

  • Generate the static controller for logging in (Maybe check how you did this in the members only project)
  • Create Routes.
  • Default route should be this sign in page, Unless user is signed in (can add that complexity later?)
  • Create the sign in view
  • Install and use bootstrap for styling

8. Users can like posts

  • Create a button with an icon on each post
  • It should have a hover effect
  • It should have a click effect
  • I don't think I need a likes model
  • Maybe I need a likes controller that handles the state?
  • Or I could add a likes method in the post controller or model to keep count
  • When user likes a post, the button stays the hover color
  • It displays how many users like this post
  • User can unlike a post by clicking the like button again

4. Users can send Friend Requests to other Users

  • Set up associations on the User model
  • This is a has many and belongs to many association. However, we will probably want to use a has_many through association like we did in the private events project The same way you can send invites and you must be invited and accept to attend.
  • Something like User.friend_requests should work
  • Left sidebar links for now
  • Timeline: post#index
  • Profile: user#show
  • Friend Requests: invitation#index
  • Find Friends: user#index

9. Users can comment on posts

  • Add comments model
  • Set up comment associations
  • A post has many comments and a comment belongs to a post
  • The micro reddit project will be a good reference
  • There may be some nested routes involved here
  • User can delete their own comments
  • EXTRA
  • User can like comments

3. User sign-in should use Devise gem & 15. Sign in should use OmniAuth

  • Install Devise
  • User can sign in without OmniAuth
  • Create a nav bar
  • User can sign out
  • Research OmniAuth again to make sure you know how it works.
  • See: "See the RailsCast on FB authentication with Devise"
  • And see: TOP Omni Auth
  • If user signs in, flash notice a success message. Test that that message shows up
  • Install RSpec and Capybara and Faker and Factory Bot
  • Test that it won't work if it's broken
  • Push and publish to heroku early

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.