This is a collaborative text editor that allows realtime text editing among users. The text editor is built using the MERN stack and on top of Slate.js. The collaborative editing part is implemented using web sockets with the help of Socket.io. Authentication using bcrypt and authorization using tokens.
The project is live here - ColabNote
- User account creation
- Create, edit and delete notes
- Sharing notes with other users
- Real-time editing
- Notes are autosaved after every typed letter
- run
npm install
in the /colabnote directory - run
npm install
in the /server directory - Add a
.env
file containing the environment variables for your MongoDB cluster in the following formatMONGOURL=<yoururl>
- start server by running
node src/index.js
in the /server directory - run
npm start
in the /colabnote directory to start the frontend
- Implementing OT or CRDT to synchronise changes between users to account for network latency.
- Showing history of note changes / implementing something like version control.
- Adding support for rich text notes, currently only plain text notes can be created.
- Implementing OAuth for authentication.
- Token based authorisation using JWTs, currently a very bare-bones approach has been followed.
- Creating API keys for the note and user APIs.