/DoX

Real time collaborative document editing web application

Primary LanguageJavaScript

Table of Contents


Introduction

The DoX Editor aims to be a web text editor application that allows users to create, edit, store and share several documents.

DoX is clearly inspired to well known online word processors such as Google Docs


This project spans from 22 November 2021 to 20 December 2021 (28 days).
Developed as part of the final group project for Software Atelier 3: The Web SA 2020-2021, part of BSc INF at USI Lugano.


You can check out Dox at https://doxeditor.herokuapp.com

Features ⚡

Create and edit documents on a per-user basis.
Store documents on the servers database.
Real-time collaborative editing between users.
Document sharing through links and/or by granting permissions to individual users.
Email confirmations sent by the server through the DoX mailserver.

Technologies involved


Main server-side code


Used to store the document and user data.


Toolkit for building rich-text editors, easily scalable and extensible.


Allows the server to send email confirmations to the users that sign up on DoX.


HTTP server handling all the routes and traffic.


Authenticates users and makes the Express routes behave based on evaluating the user's status and permissions.


Tracks active users on the site. Relays important database change events and synchronization data between users. Shares session data with Passport.js for additional authentication. Fundamental for real-time collaborative editing.


Hashing of user passwords.


Responsive and pre-styled DOM elements.

Project videos

The DoX team 👨‍💻

Albert Cerfeda
Alessandro Gobbetti
Denis Karev
Bojan Lazarevski
Enrico Benedettini

Guide to compiling 🚀

1. Install dependencies

After cloning the repo install all the required NPM modules.

npm install

2. Build the application

In order for the application to run, we first need to build some required components, one of which is the editor itself.

npm run build

3. Run the application

Finally run the application locally with

npm run local


You should be good to go now 😈

InternalWiki

go to document