/FacebookClone

Facebook clone created with React JS, Apache Spark, and Express

Primary LanguageJavaScript

Facebook Clone

Features Implemented

Accounts, walls, and home pages:

  1. User registration, Login, Logout
  2. Account changes
  3. Walls
  4. Home page
  5. Commenting on posts
  6. Search with auto complete reccomendations
  7. Friends
  8. Friend Visualizer
  9. Dynamic content

Chat:

  1. Chat invites
  2. Chat Session Persistent
  3. Group chat
  4. Ordering

News feeds :

  1. Feed Updates
  2. News recommendation
  3. News search
  4. Spark interfaces with the Web Application

Extra Credit Claimed

  1. LikedIn-style friend requests with confirmation (i.e., users can accept or deny friend requests)
  2. Notifications (e.g., users are notified of a friend request or chat invite)
  3. Profile pictures that can be modified
  4. Cover photos that can be modified
  5. Pictures in posts
  6. Web Scraping for news preview images. Used regex to scrape relevant images off of Huffington post.
  7. Search chats and all the chats with matching names or with members with matching names will be suggested.
  8. Chat previews: The chat sidebar shows the last sent message in a chat, the sender, and the timestamp.
  9. Pagination for posts and news articles, so load times are faster.
  10. Infinite scrolling for news feed i.e., when you run out of articles, the algorithm will render random ones to improve recommendations
  11. Emoji reactions to messages in chats.
  12. Typing indicator animations in chat.
  13. Like posts and comments and hover to see who liked them
  14. Nested comments
  15. Edit and delete your own comments
  16. 2-Factor authentication when registering
  17. Dark Mode/Light Mode

Next steps:

  1. Video chat
  2. Sending media in chat
  3. Groups
  4. Hashtag Support
  5. Privacy Control - limiting who can see a particular post

Instructions

Upgrade your node version to >= 16.0.0

To install dependencies, go in /client and run npm install and go in /server and run npm install.

Run the following commands:

npm install -g concurrently
cd server
npm run dev