Skip to content

A Collaborative Text Editor built with Draftjs built on top of Electron.

Notifications You must be signed in to change notification settings

thejameswang/collab-me

Repository files navigation

Collab Me

A Collaborative Text Editor built with Draftjs built on top of Electron.

draftjs electron-forge npm socket.io dependencies completion license

Key FeaturesHow To UseProject GoalsCreditsContributing


Key Features

  • User authentication using Passport
    • Hash protected passwords
    • A user can login and register
  • Real-time text collaboration using Socket.io
    • While you type, socket connection allows for live text sync
    • Multiple users can edit a document at the same time
  • Search for words in document
    • Similar to Ctrl + F
    • A user can find a given word in the document via the search bar
  • Toolbar for basic markdown formatting using Draft.js
    • A user can bold, italicize, underline, strikethrough, align, etc.
  • Cross platform via Electron
    • Windows, Mac and Linux ready

How To Use

To clone and run this application, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line:

# Clone this repository
$ git clone https://github.com/thejameswang/collab-me.git

# Go into the repository
$ cd collab-me

# Install dependencies
$ npm install

# Run the app
$ npm start

# For multiple development environment
# Create another terminal and repeat
$ npm start

This will get your development environment started

Project Goals

  1. Create an application using Electron
  2. Create a platform that allows multiple users to collaborate on the go
  3. Use packages and frameworks such as, Socket.io, Draft.js, Express.js, Node.js, React.js, Redux.js, and Mongoose, to develop an MVP.

Display

Login page

More screenshots

Credits

With these goals in mind, under the hood this project uses, among others:

  • Node.js: an open-source, cross-platform JavaScript run-time environment that executes JavaScript code server-side.
  • socket.io: JavaScript library for realtime web applications. It enables realtime, bi-directional communication between web clients and servers.
  • draft-js: a JavaScript rich text editor framework, built for React and backed by an immutable model.
  • express: A web application framework for Node.js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.
  • react: A JavaScript library for building user interfaces. It is maintained by Facebook, Instagram and a community of individual developers and corporations.
  • redux: A predictable state container for JavaScript apps. Allows writing applications that behave consistently, run in different environments (client, server, and native), and are easy to test.
  • electron-forge: A complete tool for building modern Electron applications.
  • electron-compile: a tool that lets you use modern and futuristic languages inside Electron without worrying about transpiling or build tooling.
  • electron-rebuild: Automatically recompiles native Node.js modules against the correct Electron version.
  • Electron Packager: Customizes and bundles your Electron app to get it ready for distribution.

Contributing

Pull requests are welcome. It may take time for the changes to be implemented, but any contributions are appreciated.

Please make sure contributions are up to date with packages.

About

A Collaborative Text Editor built with Draftjs built on top of Electron.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published