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.
- Post status
- Like and comment
- Private Chat
- Group Chat
- Notification
- Friend list
- Video call
- Audio call
- Mobile version
- Sending and receiving message with image(s)
- 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)
- 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