facebook-clone
Building facebook application clone using React and express . This build covers the core functionality (uploading normal text, images & videos....etc) of original facebook application. It is fully responsive and looks better in most of the devices. It includes dark/light theme toggle feature as well
Table of Contents
Demo
Key Features
API Usage
Deployment
Build With
Run app
Verify the newly created account via sending mail
Reset password by sending verification code to the corresponding email address to this account
Upload posts and reacts to them
Edit personal info in your profile page, upload (profile image & cover page)
Live Search for other user in the system, view their profile, reacts to their post, and sending friend request or just following them
View your friends and accept or reject friend request
Authentication
Login
SignUp
Logout
Tokens
Password Management
Change Password
Forgot Password
Reset Password
Email Management
Send Email Verification
Send reset password code
User
Update personal info, upload profile image, upload cover page
Create, remove posts, and reacts on posts
Search for friends, Send friend requests, accept/reject friend requests, view current friends
View friends posts in the home page
Change from light mode to the dark one
Methods
Endpoints
POST
/register
POST
/activate
POST
/login
POST
/sendVerification
POST
/findUser
POST
/sendResetPasswordCode
POST
/validateResetCode
POST
/changePassword
GET
/getProfile/:username
PUT
/updateProfilePicture
PUT
/updateCover
PUT
/updateDetails
PUT
/addFriend/:id
PUT
/cancelRequest/:id
PUT
/follow/:id
PUT
/unfollow/:id
PUT
/acceptRequest/:id
PUT
/unfriend/:id
PUT
/deleteRequest/:id
POST
/search/:searchTerm
PUT
/addToSearchHistory
GET
/getSearchHistory
PUT
/removeFromSearch
GET
/getFriendsPageInfos
Methods
Endpoints
POST
/createPost
GET
/getAllPosts
PUT
/comment
PUT
/savePost/:id
DELETE
/deletePost/:id
Methods
Endpoints
PUT
/reactPost
GET
/getReacts/:id
Methods
Endpoints
POST
/uploadImages
POST
/listImages
React
React hooks
Redux
Material UI
Flexbox
Express
Nodejs
JWT
β
How to make use of this build?
Clone the repository
git clone https://github.com/phanison898/facebook-clone.git
Navigate to the cloned directory
cd path/to/cloned/directory
Create .env file in the backend folder with following properties and paste them
DATABASE_URL=
TOKEN_SECRET=
BASE_URL=
EMAIL=
MAILING_ID=
MAILING_SECRET=
MAILING_REFRESH=
MAILING_ACCESS=
CLOUD_NAME=
CLOUD_API_KEY=
CLOUD_API_SECRET=
Create .env file in the frontend folder
Install node packages
Start the development server
Happy learning π
Please consider to star ( β ) this repo. It'll boost my confidence