/ColabNote

This is a collaborative text editor made using the MERN stack. It allows real-time text editing among users. User account creation, note sharing, autosaving of notes and real-time editing are the core features.

Primary LanguageJavaScript

ColabNote

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

Table Of Contents

Features

  1. User account creation
  2. Create, edit and delete notes
  3. Sharing notes with other users
  4. Real-time editing
  5. Notes are autosaved after every typed letter

Instructions To Run

  1. run npm install in the /colabnote directory
  2. run npm install in the /server directory
  3. Add a .env file containing the environment variables for your MongoDB cluster in the following format MONGOURL=<yoururl>
  4. start server by running node src/index.js in the /server directory
  5. run npm start in the /colabnote directory to start the frontend

Demo

Possible Improvements

  1. Implementing OT or CRDT to synchronise changes between users to account for network latency.
  2. Showing history of note changes / implementing something like version control.
  3. Adding support for rich text notes, currently only plain text notes can be created.
  4. Implementing OAuth for authentication.
  5. Token based authorisation using JWTs, currently a very bare-bones approach has been followed.
  6. Creating API keys for the note and user APIs.