RustyDocs es una plataforma de aplicaciones de ofimática que permite la edición colaborativa en tiempo real. Actualmente ofrece soporte para documentos de texto enriquecidos con asistencia de nuestra inteligencia artificial MutodiniAI (Gemini AI).
## DependenciasToda la infraestructura de RustyDocs se ejecuta dentro de contenedores, por lo que es requisito tener Docker instalado, ya sea en su versión Desktop o Engine:
Además, asegurate de tener docker-compose instalado. Podés verificarlo con:
docker-compose -vEn caso de que no esté instalado, podés hacerlo con:
sudo apt-get install docker-composeLa interfaz gráfica fue desarrollada con la librería egui. Para ejecutarla correctamente, se requieren algunas dependencias del sistema operativo.
En Ubuntu:
sudo apt-get install -y libclang-dev libgtk-3-dev \
libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev \
libxkbcommon-dev libssl-devEn Fedora Rawhide:
dnf install clang clang-devel clang-tools-extra \
libxkbcommon-devel pkg-config openssl-devel \
libxcb-devel gtk3-devel atk fontconfig-develEn caso de no utilizar Docker, simplemente instalá Rust en su versión más reciente para compilar y ejecutar los componentes de manera manual.
El sistema está compuesto por cuatro componentes principales:
- Cluster de Redis
- Microservicio de Control y Persistencia
- Microservicio de AI
- Interfaz Gráfica
Para compilar todos los componentes y generar la imagen rusty_docs:latest, ejecutar:
make build_docker_imageUna vez creada la imagen, se puede levantar el cluster completo con:
make run_docker_clusterEn caso de querer levantar un nodo de forma individual:
NODE_ID=$NODE_ID NODE_PORT=$NODE_PORT CLUSTER_PORT=$CLUSTER_PORT make run_docker_single_nodeNODE_ID: número de ID según la configuración endistributed_configs/NODE_PORT: puerto donde los clientes se conectarán al nodoCLUSTER_PORT: puerto utilizado para comunicación entre nodos
Los microservicios de AI y Persistencia son esenciales para el funcionamiento de la aplicación, ya que brindan funcionalidades clave a la interfaz gráfica.
Para levantarlos, ejecutar:
make run_docker_microservicesAclaracion, antes de realizar levantar los microservicios, asegurarse de que la API_KEY de Gemini este seteada en /microservice_llm.sh.
La interfaz gráfica se inicia con el siguiente comando:
make run_uiDurante el inicio se pedirá al usuario iniciar sesión. Los usuarios válidos están definidos en el archivo de usuarios utilizado por el cluster.
En caso de querer eliminar los contenedores, ejecutar
make kill_docker_clusterTaller de Programación — Cátedra Deymonnaz — Facultad de Ingeniería, Universidad de Buenos Aires
- Anibal Fu — 111206
- Camila Figueroa — 111204
- Giuliana Pazos — 111268
- Tomás Villegas — 106456




