This project is a clone of the popular social media platform, Facebook, built using the MERN stack (MongoDB, Express.js, React.js, Node.js, and Socket.io) With real time Messages and notifications 🔥.
https://github.com/msobkyy/backbook
- ReactJS, NodeJS, ExpressJS, MongoDB.
- Redux toolkit store to setup a global store.
- Fully responsive design with all devices.
- Strong authentication system, Register, login, reset password.
- Cookies and JSON web tokens (JWT).
- Real time notifications
- Notification history
- Browser notifications
- Real time Messages between users
- Online status
- Typing indicator
- Customize chat themes and name
- Group chats
- Add and Remove group members by admin only
- Email verification by sending mail to users using gmail smtp.
- Search by email and send code to email to change the password.
- Form validations using Formik, Yup, error massages.
- Browser notification using firebase cloud messaging.
- infinite posts scroll.
- Create posts : normal text, background, photos.
- React system on posts : (like, love, wow, sad, angry).
- Post Comments with text and upload photos and comment likes.
- Comments replies.
- Share posts with caption or without.
- Delete posts.
- Friendship system with send, cancel ,accept friend requests.
- Following system with follow, unfollow another users.
- Friends page to see the sent and recived friend requests.
- Search functionality to another users.
- Search history by date.
- Upload profile picture, cover and ability to Crop, zoom the photo.
- Photo Gallery with old photos to change pfp and cover.
- Profile details and bio.
- Light/dark mode toggle.
- Skeleton loaders while page loads.
- Clone the repository
git clone https://github.com/msobkyy/backbook-server.git
- Install the dependencies
npm install
- Start the server
npm start
To deploy this project run
npm run build
To run this project, you will need to add the following environment variables to your .env file
REACT_APP_BACKEND_URL=
APP_NAME=
FRONTEND_URL=
NODE_ENV=
PORT=
USER=
DATABASE_PASSWORD=
DATABASE=
JWT_SECRET=
JWT_EXPIRES_IN=
JWT_COOKIE_EXPIRES_IN=
EMAIL_TYPE=
GMAIL_APP_PASSWORD=
EMAIL_ID=
MAILLING_ID=
MAILLING_SECRET=
MAILLING_REFRESH_TOKEN=
CLOUDINARY_NAME=
CLOUDINARY_API_KEY=
CLOUDINARY_API_SECRET=
FCM_SERVER_KEY=
I'm a MERN Stack Developer
Client: React, Redux
Server: Node, Express, mongoose