A read-time, browser-based collaborative online editor. The project is online: https://sophons.herokuapp.com
This is the git repo for Microsoft Capstone Project: https://github.com/shunjizhan/Microsoft-Capstone
The final version is in folder Public/Chat_Monaco
Project name: Sophons
Team members: Shunji Zhan, Bo Luan, Chunqing Liu, Zixia Weng, Zehao Li
University of California, Santa Barbara
Mentor: Microsoft
Primary product features:
- Real-time collaboration and synchronization
- Save and upload files from/to local locations and Google Drive
- Handle multiple files in a project
- Auto-saving
- Chatting
Major technologies
Monaco Editor: https://microsoft.github.io/monaco-editor/index.html
Socket.io
Node.js
Microsoft Azure Table Storage
To host the server:
Set environment variables by running each line of readdddddd.sh in the terminal.
(Unfortunately, the current credential may be invalid. We are trying to switch to a new service.)
And then run node index
Major work is put in html and javascript code files in js folder
Webpage
index.html - entry page
indexx.html - main page
Server side
index.js - server setup: host socket.io session and interactions (receive and send); express.js routing; Microsoft Azure Storage interactions;
Client side
load_socket.js - loading socket.io and deal with user infomation and chatting messages
create_Monaco.js - core functions (everything about the editor)
gdrive.js - Google drive interactions
route.js - routing functions
themes.js - changing themes
left-bar.js - left-bar interactions
ping.js - socket.io latency measurement and dealing with disconnection
(socket.js) - a local version of socket.io in case it the online version is inaccessible
