Giter Site home page Giter Site logo

final-project's Introduction

Live demo

You can check for live demo Here.

About the program

This project is a facebook clone web application, where a user can share content, build relationships with other users, and express his points of view.

Installation

This project is based on ruby on rails framework. RSpec and Cabypara have been used to implement the different unit and integration tests. To install this project, you'll need to have a running Postgres server in you local computer or network. After cloning the project, you have to run bundle install followed by rails db:migrate

Configuration

You'll need to configure the application to connect to the database. The configuration file can be found at config/database.yml, you'll need to fill the different field with data from your environment.

development:
  adapter: postgresql
  encoding: unicode
  database: [DATABASE_NAME]
  username: [USERNAME]
  password: [PASSWORD]
  host: [IP]

Run the code

To run the application in you development environment, you need to run rails s. To deploy it in heroku, you need first to run git push heroku master followed by heroku run rails db:migrate

Get Update

To get the latest updates, you run git pull origin master

Authors

Run Tests

Authentication

  • Login with valid email/password
  • Login with invalid email
  • Login with invalid password
  • Log out after login
  • Login using facebook account

Users management

  • Account creation
    • user can create an account using the signup form
    • user can't create an account without a name
    • user can't create an account with invalid email
    • user can't create an account with used email
    • user can't create an account with weak password
  • As authenticated user
    • user can't access the login form
    • user see his profile
    • user see other user's profiles
    • user can update his own profile information
    • user can delete his own account [TODO]
  • As unautenticated user
    • guest can only access login and signup paths

Posts management

  • As Authenticated user
    • User can create post
    • User can update his posts
    • User can delete his posts
    • User can't update other's posts
    • User can't delete other's posts
  • As Unauthenticated user
    • Guests can't create new posts
    • Guests can't update any posts
    • Guest can't check the index of posts

Comments management

  • Authenticated User
    • User can comment posts
    • User can remove his comments
    • User can update his comments
    • User can't edit other user's comments
    • User can't remove other user's comments

Likes management

  • Authenticated User
    • User can like his posts
    • User can like other's posts
    • User can't like a post more than two times
    • User can revoke a like from a post that his liked

Friends management

  • Authenticated User
    • User can add friend
    • User can unfriend a friend
    • User can accept friendship request
    • User can decline friendship request
    • User gets notifiation about friendship requrest
    • User can see if request is pending
    • User can see a list of friends

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.