SNS (Social Network Service) Project: Twitter Clone

Please see features, functions detail and code in sections below


Important:

  • 🔴 Please note that this project is for the purpose of STUDY and CODE DEMO
  • 🟢 Any question and suggestions are welcomed! Please feel free to use "Issue" sections to do so.

Test Accounts:

user name: test2 to test10
password: same as user name

or use FakeMail to register



1. Skill Stacks for this project:

 1. JavaScript + jQuery
 2. HTML, CSS and Bootstrap
 3. Node.js
 4. MongoDB
 5. ✔️ Ubuntu & PM2 (for web hosting)


2. Features:

 1. Socket.IO
    Real-time, bidirectional and event-based communication

Demo

 2. Photo cropping & uploading
 3. ✔️ Sending e-mail notification for user's account activation & password resetting
 4. ✔️ Scheduled Jobs for fetching statistic data from database regularly
 5. ✔️ MVC design pattern for front-end functions



3. Functions:

1. User and account control
   1. ✔️ Account activation

Demo

  1. ✔️ Password reset with e-mail Demo

    1. ✔️ Identifying user with Cookie & JWT
    2. ✔️ Account role control
    3. Message Sending as chat room
    4. Real-time chat message and notification
    5. Post of text content, ✔️ photo and "like" , "retweet" and "reply" functions
    6. Post and User search
    7. ✔️ Code Testing with Jest (for API endpoints)
    8. ✔️ Code bundling & compression (front-end JavaScript files)
    9. ✔️ Some UI/UX tweaks: loading effect, responsive design, animation etc,.

    (note: ✔️ mark means the extra feature & function I've added to the original code from Udemy course)



4. To Do:

  1. Uploaded image resizing (with multer)
  2. Image uploading on S3 storage
  3. Admin page
  4. Captcha for requesting reset token for lost password




5. Links to code:

#### (Please see readMe file in each page for more detail)

6. Reference:

  1. Udemy Course: Create a Twitter Clone with Node.js, Socket.IO and MongoDB by Reece Kenney