{"id":19805523,"url":"https://github.com/marinajcs/brushnbid","last_synced_at":"2026-02-16T18:33:05.220Z","repository":{"id":259719813,"uuid":"867616503","full_name":"marinajcs/BrushNBid","owner":"marinajcs","description":"Aplicación desplegada en la nube, que permite a artistas noveles darse a conocer y poder subastar sus obras. Cloud Computing (UGR, 24-25).","archived":false,"fork":false,"pushed_at":"2025-02-19T19:08:57.000Z","size":2214,"stargazers_count":1,"open_issues_count":9,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-05T20:44:18.080Z","etag":null,"topics":["api","cloud-computing","continuous-integration","deployment","docker-compose","dockerfile","elasticsearch","kibana","logstash","microservices","nodejs","npm","render","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marinajcs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-10-04T11:58:50.000Z","updated_at":"2025-02-18T16:24:40.000Z","dependencies_parsed_at":"2024-10-27T15:25:02.271Z","dependency_job_id":"0be7a8c2-e3a5-457f-a7aa-ce66f1d91b2f","html_url":"https://github.com/marinajcs/BrushNBid","commit_stats":{"total_commits":26,"total_committers":2,"mean_commits":13.0,"dds":0.07692307692307687,"last_synced_commit":"aceb40fe4bf97f748dbd5ed1f38453def7ee29e7"},"previous_names":["marinajcs/brushnbid"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marinajcs/BrushNBid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinajcs%2FBrushNBid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinajcs%2FBrushNBid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinajcs%2FBrushNBid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinajcs%2FBrushNBid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marinajcs","download_url":"https://codeload.github.com/marinajcs/BrushNBid/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marinajcs%2FBrushNBid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29514703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T17:46:34.542Z","status":"ssl_error","status_checked_at":"2026-02-16T17:46:30.907Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","cloud-computing","continuous-integration","deployment","docker-compose","dockerfile","elasticsearch","kibana","logstash","microservices","nodejs","npm","render","typescript"],"created_at":"2024-11-12T09:04:15.243Z","updated_at":"2026-02-16T18:33:05.198Z","avatar_url":"https://github.com/marinajcs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# BrushNBid\n\nRepositorio del proyecto de prácticas de la asignatura de Cloud Computing (CC) en el Máster\nUniversitario en Ingeniería Informática de la Universidad de Granada (UGR), curso 24-25.\n\n## Hito 1: Repositorio de pácticas y definición del proyecto\n\nEn el primer hito se ha configurado el entorno, creado el repositorio y definido la idea de la\naplicación, partiendo de un problema que podría abordarse con una solución desplegada en\nla nube. Enlace al documento: [hito 1](docs/hito1.md).\n\n## Hito 2: Integración continua\n\nEn el segundo hito se va a proceder a la elección, justificación y uso de las siguientes\nherramientas: el gestor de dependencias y de tareas, la biblioteca de aserciones, el framework\npara testing y el mecanismo de integración continua. Enlace al documento: [hito 2-1](docs/hito2-1.md).\n\nMás información acerca de los test, incluidas capturas, en el siguiente documento: [hito 2-2](docs/hito2-2.md).\n\n## Hito 3: Diseño de microservicios\n\nEn el tercer hito se va a implementar la API, hacer tests para la integración continua de la misma\ne incluir los logs para el registro de acciones en la API en un fichero. Enlace al documento con la\njustificación de herramientas: [hito 3-1](docs/hito3-1.md).\n\nMás información acerca de los test, incluidas capturas, en el siguiente documento: [hito 3-2](docs/hito3-2.md).\n\n## Hito 4: Composición de servicios\n\nEn el cuarto hito se ha realizado la composición de servicios a través de un archivo `compose.yaml`,\nque permite desplegar un clúster de contenedores mediante la conexión de puertos, uso de redes y\nvolúmenes de datos. Para los servicios, se han utilizado imágenes base de Docker para la base de datos\ny el monitoreo de logs, y se ha creado una propia a partir de un Dockerfile (que más tarde ha sido\npublicado en Docker Hub) para la aplicación. La justificación de las imágenes y explicación de la estructura\ndel clúster vienen descritas en el documento: [hito 4-1](./docs/hito4-1.md).\n\nAdemás, se han implementado tests de integración continua tanto para las pruebas de la API como para la\npublicación y actualización automática de la imagen docker publicada. Finalmente, se ha incluido un test\npara la construcción del clúster y la ejecución de algunas solicitudes a la API (ya conectada con la base\nde datos). Se pueden consultar las capturas de tests, CI y visualización de logs en el fichero: [hito 4-2](./docs/hito4-2.md).\n\n## Hito 5: Despliegue de la aplicación en un PaaS\n\nEn el quinto y último hito, se tiene como objetivo familiarizarse con las técnicas usadas para desplegar\naplicaciones desde un repositorio web a una Plataforma como Servicio (PaaS). En primer lugar, se ha llevado\na cabo una justificación detallada para la elección del PaaS utilizado en el proyecto. Esto incluye los\ncriterios establecidos, las opciones valoradas durante el análisis y la elección final, que pueden\nconsultarse en el documento: [hito 5-1](./docs/hito5-1.md).\n\nAsimismo, se detalla la configuración completa realizada en Render, el PaaS elegido para el despliegue.\nSe incluye una explicación paso a paso sobre cómo se configuraron los diferentes servicios, así como las\npruebas realizadas para verificar el correcto funcionamiento de la app, incluyendo despliegues automáticos\ndesde GitHub, integración con la base de datos, y validación de acceso a través de la URL pública.\nEstos aspectos vienen recogidos en el documento: [hito 5-2](./docs/hito5-2.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarinajcs%2Fbrushnbid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarinajcs%2Fbrushnbid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarinajcs%2Fbrushnbid/lists"}