Cloud Conversion Tool App es una aplicación web que ofrece a los usuarios la posibilidad de subir y transformar diversos formatos multimedia de archivos, así como llevar a cabo procesos de compresión de manera gratuita.
Los formatos de conversión que maneja la aplicación son:
- MP4
- WEBM
- AVI
- MPEG
- WMV
Funcionamiento de la Aplicación El funcionamiento general de la aplicación se basa en la creación de una cuenta en el portal web y el acceso al administrador de archivos. Una vez se ha creado la cuenta, los usuarios pueden cargar archivos y solicitar la conversión de formato de estos para su posterior descarga. La aplicación web permite a los usuarios convertir archivos multimedia en línea de un formato a otro, seleccionando el formato de destino.
Componente | Descripcion |
---|---|
conversion_app |
Aplicacion receptora de tareas para convertir archivos. |
worker |
Procesador de tareas asincrono de los archivos del usuario pentiendes por atender. |
Redis |
Servidor de encolamiento. |
Postgres |
Motor de base de datos. |
La interacción de los componentes se presenta en el siguiente modelo, si desea revisar más documentación sobre la arquitectura de software lo invitamos a revisar la wiki del proyecto
![Modelo de despliegue](https://private-user-images.githubusercontent.com/20799651/277195616-ad400dd2-5950-4511-8399-b687ee68acb1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkzMTA5NDEsIm5iZiI6MTcxOTMxMDY0MSwicGF0aCI6Ii8yMDc5OTY1MS8yNzcxOTU2MTYtYWQ0MDBkZDItNTk1MC00NTExLTgzOTktYjY4N2VlNjhhY2IxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI1VDEwMTcyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM2MzRlOTUzN2U0YTk4YjUwYjhlODQzMjIzY2M0ZTE4N2FiZWYzYzk3ODc3NDQ2YzlhMjM4MjVjMTNiYTVkMjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.8jhgSUwbBosWXENwFjY-u48QmJuUZQsCslSzucuauJ8)
-
Descargar o clonar el repositorio
-
Abrir una terminal de comandos y dirigir el apuntamiento a la carpeta del proyecto
cd cloud_conversion_tool
-
Crear un nuevo ambiente virtual
python3 -m venv nuevo_ambiente
, activarlosource nuevo_ambiente/bin/activate
. -
Instalar dependencias
pip install flask
,pip install flask-restful
,pip install flask-marshmallow
-
Configurar variables de entorno
export FLASK_APP=app.py
,export FLASK_DEBUG=1
,export FLASK_ENV=development
-
Localizar el archivo que tiene por nombre
docker-compose.yml
y ejecutar el comandodocker-compose up
y esperar mientras se descargan las imagenes de los recursos y se construyen los contenedores. -
Visualizar la creación y ejecución activa de 4 contenedores.
-
En el folder
/collections
se encuentrar dos archivos.json
que puede importar directamente en la aplicación Postman.También, tiene a disposición la documentación de la Api en el siguiente link.
Colección importada en Postman:
Recomendamos el siguiente orden de ejecución, para probar el sistema:
Paso Descripcion Nombre Request 1 Crear el usuario. signup
2 Realizar login. login
3 Crear tarea. task
4 Listar tareas del usuario. tasks
5 Buscar tarea por id del usuario. task by id
6 Eliminar tarea. delete
Disponibilizamos un servicio de registro de 🐞
Bugs
o ✨Features
del cual estaremos dispuestos a atender.
![image](https://private-user-images.githubusercontent.com/20799651/277195432-2543836c-5ae2-4bb7-996b-824f098266e1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTkzMTA5NDEsIm5iZiI6MTcxOTMxMDY0MSwicGF0aCI6Ii8yMDc5OTY1MS8yNzcxOTU0MzItMjU0MzgzNmMtNWFlMi00YmI3LTk5NmItODI0ZjA5ODI2NmUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjI1VDEwMTcyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThmOGRkMmU1NTFlOWVlYTBlNzY0ZDNmYzEwMzJlZDNjMGJhZWVlMzc1YTlmZmE2YjJhN2ZlNzUxMDlhYmIwMTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.FHBsSq88FhhP-ta4YXKAQrH-mYE0X8CTfv0JiotmK9s)