Giter VIP home page Giter VIP logo

facialbook's Introduction

Facialbook

standard-readme compliant

Facebook clone created using Ruby On Rails. Live Demo

Table of Contents

Motivation

This project is our implementation of Facebook - the world's biggest social network.

We wanted to showcase our Ruby on Rails skills with this project. Soon, we intend to also incorporate React and NextJS to deal with the frontend (and server side rendering) while converting our backend to a simple API.

Minimum features

  1. User signup and signin (with Remember Me) and creation of Profile (with Profile picture uploading)
  2. Sending, Accepting, Cancelling and Deleting (Rejecting) Friend Requests
  3. Removing Friends
  4. Showing a user's friends and mutual friends with other users
  5. Newsfeed and Timeline
  6. Posting on the newsfeed, on one's own timeline and on a friend's timeline (allows image uploading)
  7. Editing and Deleting authored posts
  8. Commenting on posts or other comments
  9. Editing and deleting comments
  10. Liking and Unliking posts and comments
  11. Showing Like count

Installation

System Requirements

  • Ruby version of at least 2.5.3
  • Rails version of at least 5.2.3
  • PostgreSQL version 9 above

After cloning:

In Gemfile change ruby '2.6.3' to correspond to your system's ruby version. For rbenv users, run the command in the terminal: rbenv local <your system's ruby version>.

Run bundle update to install the latest version of the gems in the Gemfile.

Run in the terminal:

EDITOR="<your default code editor> --wait" rails credentials:edit

This will fire up a `XYZ.credentials.yml file. In this file edit the following:

pg_credentials:
  username: <your local postgreSQL username>
  password: <corresponding password>

fb_api:
  app_id: <your FB APP ID>
  app_secret: <your FB APP SECRET>

Then save and close this file. It will generate a master.key file.

Configure database by running rails db:setup -> creates the development and test databases and seeds the application.

Usage

Development Server

rails server

Then goto http:\\localhost:3000

Testing

Simply run

rspec

Production

If using Heroku, make sure you have an existing heroku app for this or run:

heroku create <app name>

to create an app in Heroku and add heroku as a remote.

In Heroku app settings click on Reveal Config Vars then add the following fields (along with their values in your credentials):

FB_APP_ID
FB_APP_SECRET
RAILS_MASTER_KEY

Then in your local terminal run:

heroku run rails db:migrate && heroku run rails db:seed

Maintainers

@Ryan and @Dipto

Contributing

Contact maintainers for contribution instructions.

Small note: If editing the README, please conform to the standard-readme specification.

License

ryto © 2019 Ryan and Dipto

facialbook's People

Contributors

dependabot[bot] avatar dipto0321 avatar rvvergara avatar

Stargazers

 avatar

Watchers

 avatar  avatar

facialbook's Issues

Polymorphic associations are not being used right

You define three polymorphic associations: commentable, postable and likable. Yet, you only have one model that uses comments, one model that uses posts and one model that uses likes. So, what's the point?

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.