GithubHelp home page GithubHelp logo

andywynkoop / spacebook Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 1.0 3.91 MB

A Facebook clone build with React, Redux, and Ruby on Rails

Home Page: http://spacebook.andywynkoop.com

Ruby 1.82% JavaScript 97.32% CSS 0.71% HTML 0.15%

spacebook's People

Contributors

andywynkoop avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

spacebook's Issues

Wiki Feedback

Design Docs Feedback

Looks great! Once you've read through and determined your final set of
MVPs, let me know! Remember that this wiki has to be complete before you
are allowed to start coding on Tuesday. Let me know if you have any
questions!

MVP List

  • Don't forget the 3 required MVPs! (Production README, Heroku, Auth).
    You'll probably have to scale down some of the others.
  • I'd like for messaging to not be a main MVP. It can totally be your
    first bonus and something you end up completing by the end, but I don't
    want to hold you accountable to it

Wireframes & Component Hierarchy

Wireframes

  • Looks good!

Component Hierarchy

  • Will Friends need a container? What about ProfileBio?

State Shape

  • Other than replacing chat stuff with your final MVPs, looks good!

Routes

Frontend

  • /:userId - user's profile page would be /users/:userId to match
    restful routes
  • Routes for signup/login?

API Endpoints

  • GET /api/:userId/posts would probably be GET /api/users/:userId/posts.
    And more, you could send all the post information along with the single
    user when you hit GET /api/users/:id, so you wouldn't need this route
    at all
  • PATCH /api/posts/:post_id/comments will need a comment id and
    wouldn't need to be nested under posts since the post_id isn't needed
    for updating, just creating

Schema

  • Won't be able to store arrays in the DB (friend_ids, chat_ids).
    Will need to have a joins table for these!
  • Won't need chat or messages! Maybe later
  • should there just be likes or should there be comment and post likes as separate models? You can do either! If you do the same table,
    you can use polymorphic associations!
    Which you covered at one point during rails
  • Facebook may only allow you to create an account with all of that
    info, but you may want to make it easier on people who are testing your
    site and only require a username/email and password. Leave the others
    optional. Or even better, fill them in with Faker!

PA Review: Friendships

Friendships MVP

Users Controller

  • method for requested friends (to disable button)
  • method for friend requests
  • method for all friends (including both approved requests from others and requests to others that have been approved)

Friendships Controller

  • method for approving a request - in model
  • method for denying a request - via destroy route
  • Data from current_user and page load should determine how a page is displayed (friends/ add friend/ requested versions of button)
  • Friend requests should trigger a one-time notification on the target user (in main nav - save for notifications bonus?)
  • Add data about requests to current_user on the window and include with user data on get requests

Friendship routes

  • GET requests for user data include friend request data - key value pairs instead of array O(1)
  • POST a friendship request, return the updated user with new friendship data /api/friendships
  • PATCH an approval of a request, return the updated user data /api/friendships/:id
  • DELETE a rejection of a request, return the updated user data /api/friendships/:id

Frontend

  • User can send a friend request from a different user's profile page
  • User can click a button in their friend requests dropdown to approve or deny
  • User can approve a friend request from the requesting user's profile page
  • Friend button will display 'friends' if users are already friends
  • Refactor to put friends as key value pairs instead of as an array

PA Review: User Profiles

  • Different Navbar when signed in
  • Custom, color-changing Icons
  • Redux Loop: ajax, actions, reducer - Fetch user data and display on page
  • Presentational Components and Containers
  • Styling
  • Smooth, bug-free navigation
  • Adequate and appropriate seeds - just one demo user for now, will add more with Friends MVP

PA Review: User Authentication

  • Backend: DB, model, controller, views
  • Redux Loop: ajax, actions, reducer
  • Presentational Components and Containers
  • Styling
  • Smooth, bug-free navigation
  • Adequate and appropriate seeds

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.