Project Link: teams-microsoft-ms.herokuapp.com/
Demo Video Link: https://www.youtube.com/watch?v=2KMvn1nJiW8
-
- JavaScript
-
- Node.js
- Express.js
- MongoDB (Database)
- Socket.io
-
- React.js
- Socket.io-client
- Simple-peer
-
- Two users in contact can connect with each other through video calling facility.
- This Video Calling feature is implemented using simple-peer webRTC technolgy and socket.io.
-
-
Real time chat between two users facility.
-
Previous messages are stored in the database and can be accessed afterwards.
-
This features is implemented using socket.io.
-
-
- Signup feature with encrypted password (hashed + salted)
- Implemented using bcrypt
-
- Login feature help to give access to the team and user can chat, video call, create and create and join teams and create notes
-
- Users can start a new chat with the existing contacts.
- Contacts here means all the users that exits in a team joined/created by the user
-
- All the teams which the user is memeber of are listed
-
- Users can create new teams and share the team code with the other users to join
- Users can create new teams and share the team code with the other users to join
-
- User can join an existing teams using team code.
-
- User can exit an joined team
-
- Users in the team can join a group video chat (maximum 4 members)
-
- Users can chat in the team (group)
- This is implemented using socket.io
-
- Users can switch on and off there video.
-
- Users can switch on and off there auido.
-
- Users can create new notes and view create by other users in the teams.
-
- User can search the contacts from the search bar
-
- All the contacts of the user are displayed here
- Contacts means all the users common to some of the teams in which the user(logged in) is the memeber
-
- The site has an UI similar to the Microsoft Teams
- The site has an UI similar to the Microsoft Teams
-
- The site is responsive
I managed work by making a list of tasks to be completed on a specified date, so that whole project could be successfully completed. I had to practice management from the beginning to achieve the result
In this process I separated the task into tiny subtasks.
- Starting with the project firstly, I added the video calling feature in the initial stage.
- Then I implemented the authentication task for signup and login
- After this I tried to move on to the group video calling feature (max. 4 users only) as well.
- I implemented real time chat feature for two users.
- Then I also implemented it for mutiple users as well (group chat).
- Later I came up with teams feature (creating/joining team)
- Then I added some more features to the video calling like audio and video toggle.
- I had to deal with some bugs. So they became my more priorty task to be solved.
- I've added a few additional feature of creating and viewing notes.
- Last but not the least, I added a leave team funtionality.
- Still there's so much to be worked upon and perhaps this journey won't end.