CoWork

Inspiration

Our main inspiration behind this project was to help students like us to collaborate and work easily on projects together without hassle with features like screen- share, collaborative whiteboard, collaborative notes, chats, video calling and multiple group features. The app is designed to help students interact better and facilitate better and more productive teamwork.

Learnings

To use node.js, express.js , socket.io, peerjs, mongodb and eventually build a full -stack website.

Challenges

Difficult to use peer.js with mongodb and node.js Use of timeout function while using peer.js for video calls.

CoWork is a platform for students and teachers to collaborate and learn together. With lots of amazing features, the web application provides one-on-one interaction or an option to create classrooms and have online video call classes and peer meetings, thus enhacning virtual education. Not only this, the platform can also be used to hold online parent-teacher interactions and parents can also be the part of classrooms to keep a track.

  1. The video-calling and chat features help students to interact better.
  2. The app aids teacher to teach the concepts in a better way, with the in-built whiteboard, without requiring the use of multiple apps.
  3. The whiteboard feature is useful for students and peers, to interact and create prototypes and drawings easily.
  4. The notes features is useful in keeping a track of the important points of the meeting, which can be downloaded also.
  5. The screen share feature helps the group to browse ideas collaboratively.

Working prototype- https://mycoworkapp.herokuapp.com/

Features

Authentication

  1. Signup option for new users
  2. Login for Existing users
  3. Logout from account for logged in users

Chats

  1. Create or be part of multiple chat-groups
  2. Add Members to groups
  3. Leave Groups
  4. Start calls or send messages with groups
  5. Easy Navigation (jumping from one group to another)
  6. Incoming call popup when a user starts a call
  7. View Call-logs and members of the group

Video Call

  1. Start video call with a group
  2. Video toggle (ON/OFF)
  3. Audio toggle (MUTE/UNMUTE)
  4. View Participants
  5. Chat in video-call
  6. Meeting chat can later be accessed within the group chat
  7. Screen-share
  8. Collaborative Whiteboard
  9. Draw on whiteboard using touch/mouse
  10. Whiteboard changes transmitted to entire meeting in real-time
  11. Change brush color or use eraser in whiteboard
  12. Meeting Notes
  13. Notes shared to entire meeting on every keypress
  14. Make text Bold/Italic/Underline in Notes
  15. Change font-color and text-alignment in notes
  16. Download Notes as .txt file
  17. Captions on speaking during the meeting
  18. End meeting option

Technology Stack

Backend

NodeJs, ExpressJS, PassportJs, Mongoose, Socket.io

Frontend

HTML, CSS, JavaScript, EJS, Bootstrap

Database

MongoDB

Getting Started

  1. Clone the repository in your local directory.
  2. Run npm install
  3. Run node server.js
  4. Web application will be serving on localhost 5000.

Future Scope

  1. Fun games to be played between the meetings can be added
  2. Screen recording to watch the video lectures later can be added
+ 15 more
Share this project:

Updates