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 installin the /colabnote directory - run
npm installin the /server directory - Add a
.envfile containing the environment variables for your MongoDB cluster in the following formatMONGOURL=<yoururl> - start server by running
node src/index.jsin the /server directory - run
npm startin 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.
