NodeBook is a desktop app that allows for sharing documents and live collaboration. We challenged ourselves by creating an app that mimics the functionality of Google Docs by providing revision history, live editing and highlighting across users, and document sharing.
Created July, 2017 during Horizons Summer Program 2017
Github: See the repository
Login and Register Page
When you first open the app you will be prompted with a login screen. For first time users, navigate to the register page and input your creditials before logging in!
Your account will open to a preview of all your existing documents which are stored in MongoDB between sessions.
To search through the documents by title or content, type into the search bar on the upper right hand corner.
To navigate to a specific document, simply click the document’s preview.
We built our editor component on top of the Draft.js library. The document editor allows for typing and text decoration, including font size, color, and alignment, all of which are accessible from the top toolbar. There are keyboard shortcuts built in for common commands such as bolding (⌘B), italicizing (⌘I), and saving the document (⌘S). Some of the available effects are demoed in the picture below. The document will also autosave every 30 seconds so users don’t lose their work!
There is a search bar on the top right of the screen that allows users to search through their documents, highlighting the matching words and phrases.
We also implemented live collaboration for shared documents using sockets. A preview of the collaborative features is shown below, to see more navigate to Installation Instructions and download the repo!
To see all of your past versions of a given document, navigate to the revision history page. There will be list of every saved version, sorted by date, on the right side of the screen. Click on one of the dates to see the old state of your document as well as add and remove differences between your old and current document.
- Download the repository
npm installto download the node modules
npm run webpackto bundle the code
npm run serverto run the server
npm startto launch a new window
- You can launch multiple windows to test the collaborative functionality