نبذة مختصرة : En el presente trabajo se ha desarrollado un gestor de tareas autoalojado y distribuido. Este se compone de un servidor web desarrollado sobre Django; una API, construida con Django REST Framework, y un cliente CLI, implementado con Python. Este último permite el trabajo desconectado y la posterior sincronización mediante una llamada a la API. En el centro del desarrollo se encuentra el protocolo de sincronización, que adopta una estrategia híbrida entre la sincronización de estados y la de operaciones. Así, en cada sincronización, el cliente envía las operaciones que ha registrado localmente y el servidor responde haciéndole llegar todos aquellos objetos que hayan sido actualizados desde la última sincronización de dicho cliente, incluyendo aquellos fruto de la aplicación de las operaciones enviadas. Para el despliegue del servidor se ha realizado mediante contenedores Docker. Con ello, se facilita la orquestación automática del servidor web, así como el proxy inverso Nginx y la instancia PostgreSQL que le dan servicio. Por su parte, para la distribución del cliente se ha utilizado pip, setuptools y venv. ; A self-hosted and distributed task manager has been developed in the present work. This consists of a web server developed on Django; an API, built with Django REST Framework, and a CLI client, implemented with Python. The latter allows disconnected work and subsequent synchronization via an API call. At the heart of development is the synchronization protocol, which adopts a hybrid strategy between state and operations synchronization. Thus, in each synchronization, the client sends the operations it has registered locally and the server responds by sending all those objects that have been updated since the last synchronization of the client, including those resulting from the application of the operations sent. The server was deployed using Docker containers. This facilitates the automatic orchestration of the web server, as well as the Nginx reverse proxy and the PostgreSQL instance that serve it. pip, ...
No Comments.