This project is a sophisticated emulation of the renowned social media platform, Facebook, constructed utilizing the MERN stack - MongoDB, Express.js, React.js, and Node.js - and enhanced with the real-time capabilities of Socket.io. It delivers dynamic and interactive user experiences, including real-time messaging and notifications, mirroring the functionality of its mainstream counterpart 🔥.
https://github.com/jeffjiang13/fb-server
- Powered by the MERN stack (ReactJS, NodeJS, ExpressJS, MongoDB), complemented by the Redux toolkit to facilitate a global store.
- Adaptive design ensuring fluid responsiveness across all devices.
- Comprehensive authentication system, including registration, login, and password reset features.
- Security enhanced through Cookies and JSON Web Tokens (JWT).
- Real-time notification system with notification history and browser notifications.
- Engaging real-time messaging between users featuring online statuses and typing indicators.
- Personalized chat experiences with customizable themes and names.
- Facilitates group chats with administrative control for member addition and removal.
- Email verification implemented through Gmail SMTP.
- Forgotten password support with code sent via email for secure password reset.
- Thorough form validations using Formik and Yup, including user-friendly error messages.
- Firebase cloud messaging enables browser notifications.
- Infinite scroll for seamless post browsing.
- Diverse post creation options: simple text, colorful backgrounds, photos, and videos.
- Interactive react system for posts, including like, love, wow, sad, and angry reactions.
- Encourages user interaction with post comments, photo uploads, and comment likes.
- Supports comment replies and post sharing with or without captions.
- Comprehensive post management with delete function.
- Friendship system with features to send, cancel, and accept friend requests.
- Following system allowing users to follow or unfollow other users.
- Dedicated Friends page to track sent and received friend requests.
- Robust search functionality for finding other users.
- Search history organized by date.
- User-friendly profile management with photo upload, cropping, and zooming capabilities.
- Photo Gallery for easy access to previous photos for profile and cover updates.
- Profile customization options including user details and bio.
- Profile About page showcasing user details.
- Profile Photo Gallery page, displaying all of the user's image uploads.
- Profile Friends List page with a comprehensive list of the user's friends.
- User preference accommodation with light/dark mode toggle.
- Enhanced loading experience with skeleton loaders.
- Clone the repository
git clone https://github.com/jeffjiang13/fb.git
- Install the dependencies
npm install
- Start the server
npm start
To deploy this project run
npm run build
I'm a Full Stack Developer
Client: React, Redux
Server: Node, Express, mongoose