Repositorio Desarrollo de Software en la nube - MISW 4204 del equipo 5 conformado por:
- Maria del Mar Alas Escalante
- Jhon Puentes
- Robert Castro
- Daniel Gamez
- backend: contenedor donde se implementan los servicios con flask
- broker: contenedor con servicio de broker de mensajes para manejar la cola de tareas
- database: contenedor con base de datos postgreSQL
- worker: contenedor de codigo que escucha las tareas y ejecuta el trabajo de procesamiento de video
- nginx: api gateway de los microservicios anteriores
Para clonar el repositorio:
- Abra una terminal en un directorio de su preferencia.
- Ejecute el siguiente comando:
git clone https://github.com/soyrobert/MISW-DesarrolloNube.git
La aplicación está principalmente diseñada para correr en Docker por lo que debe tener instalada esta herramienta en su equipo. Para ejecutar toda la plataforma, corra Docker en el aplicativo de escritorio o en la línea de comandos. Una vez Docker esté corriendo ubiquese en la raiz del proyecto/repositorio donde se encuentra el archivo "docker-compose.yaml" y ejecute los siguientes comandos:
docker-compose down --rmi all
docker-compose up -d
Lo anterior, levantará todos los servicios (Backend API, BD, Cola de mensajeria, Workers) necesarios para empezar a consumnirlos. Por ejemplo en el aplicativo de escritorio en windows se ve de la siguiente forma una vez corre:
Si necesita por alguna razon volver a correr la plataforma. Lo recomendado es borrar los contenidos de la carpeta "postgres-data" en la carpeta database y volver a correr los comandos:
docker-compose down --rmi all
docker-compose up -d
Para ejecutar el backend API siga las siguientes instrucciones:
- Abra una terminal bash.
- Ubiquese en la ruta del backend que es la siguiente: "/MISW-DesarrolloNube/src/backend"
- Ejecute el comando:
python3 app.py
Para levantar el servicio de BD, siga las instruicciones ubicadas en el readme:
src/database/README.md
Si desea conectarse a la BD para realizar consultas directamente lo puede hacer con los siguientes comandos:
Conectarse al contenedor donde corre la BD con dockder exec
docker exec -it idlr_db bash
Una vez dentro del container conectarse a la BD
psql -U admin -d idlr_db
Realizar las consultas necesarias, por ejemplo ver la tabla de tasks
idlr_db=# select * from tasks;
id | user_id | file_path | timestamp | status
----+---------+---------------------------+----------------------------+-----------
1 | 2 | 2024/04/14/videotest2.mp4 | 2024-04-14 01:37:00.114754 | processed
2 | 2 | 2024/04/14/videotest2.mp4 | 2024-04-14 01:38:58.510803 | processed
3 | 2 | 2024/04/14/videotest2.mp4 | 2024-04-14 01:43:35.416322 | processed
4 | 2 | 2024/04/14/videotest2.mp4 | 2024-04-14 01:44:29.038956 | processed
El consumo de servicios se encuntra documentado en postman:
igualmente a continuación los explicamos.
Para registrarse como usuario, importe el siguiente request (Curl) en su cliente HTTP preferido:
curl --location 'http://localhost:8000/api/auth/signup' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "jpuentes",
"password1": "123abc456",
"password2": "123abc456",
"email": "jpuentes@gmail.com"
}'
Deberá una respuesta como esta:
{
"message": "Usuario creado"
}
Para loguerse como usuario, importe el siguiente request (Curl) en su cliente HTTP preferido:
curl --location 'http://localhost:8000/api/auth/login' \
--header 'Content-Type: application/json' \
--data '{
"username": "jpuentes",
"password": "123abc456"
}'
Para consultar las tareas de procesamientos, importe el siguiente request (Curl) en su cliente HTTP preferido:
Nota: Debe estar logueado para consumir este servicio.
curl --location --request GET 'http://localhost:8000/api/tasks' \
--header 'Authorization: Bearer {TOKEN}' \
--header 'Content-Type: application/json' \
--data-raw '{
"username": "jpuentes",
"password1": "123abc456",
"password2": "123abc456",
"email": "jpuentes@gmail.com"
}'