You can check for live demo Here.
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.
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
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]
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
To get the latest updates, you run git pull origin master
- Emir Vatric -- User Github link
- Mohamed Abdellani -- User Github link
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