The goal of the project is to build a real-time document editor app. Users who visit the site should be able to type text messages on the whiteboard, and other users will be able to see what has been written immediately.
Due to pandemic, everything moves online, and many people find it difficult to collaborate with classmates, colleagues, or team members efficiently. Even though some online meeting platforms, like zoom, have the in-built whiteboard, it is found to have unexpected latency or strokes detected in the wrong position from time to time. As a result, having a separate real-time communication app would be beneficial for every online collaborator to communicate directly on board and quickly get other attention for feedback and approval - even though you are working in a different time zone, which is our prime intention, to provide persistent real-time communication between the client and server over a single TCP socket connection. And with the help of real-time collaborating, it can help users jot down and organize ideas faster. Also we would get a chance to get hands on the real experience of P2P networking project, to learn more about web socket, load balancer with nginx, and other networking tools, which are extremely common in any professional setting.
cd /path/to/downloaded/folder
nvm install 14.15.1
or if you already have installed this version of node, nvm use 14.15.1
(this is assuming you have install nvm, if you haven't then you can download the 14.15.1 version in step 1).yarn start
or npm run start
to start both the backend server as well as the frontend. yarn start-server
or npm run start-server
for the backend, and in the second call yarn start-app
or npm run start-app
for the frontend. localhost:3000
or 127.0.0.1:3000
in your browser to view the frontend (the backend is likewise found at port 8000, so replace 3000 with 8000 to find that endpoint but it is essentially empty!).Reference:
Week 1 ( 2/8 - 2/14 )
Week 2 ( 2/15 - 2/21) & Week 3 ( 2/22 - 2/28)
Week 4 ( 3/1 - 3/7 ) & Week 5 ( 3/8 - 3/14 )
Week 6 ( 3/15 - 3/21 )
Week 7 ( 3/22 - 3/28 ) & Week 8 ( 3/29 - 4/4 )
Week 9 ( 4/5 - 4/11 )
Week 10 ( 4/12 - 4/18) & Week 11 ( 4/18 - 4/25)
Week 12 and later (TBD)
Node.js
Web Canvas API (for advanced features)
Simple-peer(library) (for advanced features)
ws(websocket for Node.js)
WebTorrent (for advanced features)
React.js
LogRocket
Nginx
Authorization tools such as Cognito for User Accounts
Cloud computer services such as AWS for deployment