Skip to content

MostafaHeshamETCH/Multi-User-Distributed-Text-Editor

Repository files navigation

Multi-User Text Editor - Distributed Computing Final Project

This project is a multi-user distributed text editor to design and implement a distributed system. The text editor should allow multiple users to create real-time edits to the document. The text editor allows a single document to be distributed across several nodes for editing and viewing.

GIF of the multi-user text editor

Demo Video

Click here to open

View Hosted Client and Server

  1. Client hosted through Firebase Hosting on the following link.
  2. Server hosted through DigitalOcean on the following link.

Installation (Compile and Run Code Locally)

  1. Go to Flutter Website to install Flutter.
  2. Then download the project from Github Link or get it from the provided .zip folder.
  3. Open the folder on VS Code or Android Studio and write the following command to run the client-side.
    flutter run -d chrome
  4. Download and install Docker.
  5. Run the following command to run the needed AppWrite Containers.
    docker run -it --rm \
    --volume /var/run/docker.sock:/var/run/docker.sock \
    --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
    --entrypoint="install" \
    appwrite/appwrite:0.14.2
  6. Or manually using Docker compose
    docker-compose up -d --remove-orphans
  7. Create a new project from the locally hosted dashboard
  8. Create two collections
    • delta with attributes delta, userId, and device all as strings.
    • pages with attributes title, content, and owner all as strings.
  9. Click open document, and a new document with a unique id will be created for you, share the link with other contributors and enjoy collaborative text editing.

Built with

  1. AppWrite for both MariaDB and real-time database capabilities.
  2. Flutter QuillEditor as a UI for the text editor.
  3. Riverpod for full state management and local caching.
  4. Routemaster for proper routing.

Contributors

  1. Maryam Ahmed Nouh
  2. Youssef Sherif Mohamed
  3. Mostafa Hesham Abd El Raouf

About

A collaborative multi-user distributed text editor.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published