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.
- Client hosted through Firebase Hosting on the following link.
- Server hosted through DigitalOcean on the following link.
- Go to Flutter Website to install Flutter.
- Then download the project from Github Link or get it from the provided .zip folder.
- Open the folder on VS Code or Android Studio and write the following command to run the client-side.
flutter run -d chrome
- Download and install Docker.
- 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
- Or manually using Docker compose
docker-compose up -d --remove-orphans
- Create a new project from the locally hosted dashboard
- Create two collections
- delta with attributes delta, userId, and device all as strings.
- pages with attributes title, content, and owner all as strings.
- 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.
- AppWrite for both MariaDB and real-time database capabilities.
- Flutter QuillEditor as a UI for the text editor.
- Riverpod for full state management and local caching.
- Routemaster for proper routing.
- Maryam Ahmed Nouh
- Youssef Sherif Mohamed
- Mostafa Hesham Abd El Raouf