Skip to content

vominhtrieu/SocialNetwork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SocialNetwork

A social network with basic features. Current version is not responsive on mobile devices and may not implement this feature in future. Instead, a mobile version will be created.

Implemented features

  • Post status
  • Like and comment
  • Private Chat
  • Group Chat
  • Notification
  • Friend list
  • Video call

Upcoming features

  • Audio call
  • Mobile version
  • Sending and receiving message with image(s)

Tech stack

  • Frontend: ReactJs, Redux, Ant Design(Replace Material UI), Socket.IO Client, PeerJs
  • Backend: NodeJs, Express, Mongoose, Socket.IO, Peer
  • Database: MongoDB, Redis(For storing user infomation when onlining)

Usage

  • Install Nodejs at https://nodejs.org/en/
  • Install MongoDB at https://www.mongodb.com/
  • Install Redis at https://redis.io/
  • Clone this repository
  • Open CMD/Terminal, change directory to repository's location
  • cd to src/client and src/server, in each folder, type npm install to install all necessary package
  • On Client, type npm start to run React server(Debug mode)
  • Create .env file with these infomation:
      PORT=4000 #Server Port
      DB_HOST=mongodb://localhost:27017/SocialNetwork #MongoDB Url
      CLIENT_BUILD_DIRECTORY=../client/build/ #Optional: specify url to client build directory after running <code>npm run build</code>
      ORIGIN=http://localhost:3000 #React server host
      JWT_TOKEN_SECRET=WriteSomethingHere #Secret for JWT, must be keep secure
    
  • Type peer --port 5000 to start WebRTC server
  • Type node app.js to start NodeJs server
  • Visit localhost:3000

Demo

New feed
Comments
Friend requests
Message list
Private chat
Notification
Profile