{"id":27270297,"url":"https://github.com/elbowz/wyw","last_synced_at":"2026-04-16T08:31:31.396Z","repository":{"id":67974910,"uuid":"243536763","full_name":"elbowz/wyw","owner":"elbowz","description":"WhatYouWatched - Project for Service Oriented Software Engineering 2019/20 @univaq","archived":false,"fork":false,"pushed_at":"2020-06-08T08:55:29.000Z","size":5701,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-11T13:19:00.269Z","etag":null,"topics":["bootstrap-vue","cxf","docker-compose","eureka","java","microservices","spring-boot","vue","zuul"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elbowz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-02-27T14:16:46.000Z","updated_at":"2020-06-09T11:29:40.000Z","dependencies_parsed_at":"2023-05-13T15:45:25.479Z","dependency_job_id":null,"html_url":"https://github.com/elbowz/wyw","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/elbowz/wyw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbowz%2Fwyw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbowz%2Fwyw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbowz%2Fwyw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbowz%2Fwyw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elbowz","download_url":"https://codeload.github.com/elbowz/wyw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elbowz%2Fwyw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31877453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T07:36:03.521Z","status":"ssl_error","status_checked_at":"2026-04-16T07:35:53.576Z","response_time":69,"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":["bootstrap-vue","cxf","docker-compose","eureka","java","microservices","spring-boot","vue","zuul"],"created_at":"2025-04-11T12:50:52.758Z","updated_at":"2026-04-16T08:31:31.390Z","avatar_url":"https://github.com/elbowz.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WHATYOUWATCHED - SOSE 2019/20\n\n![WYW](./frontend-screenshot.png)\n\n## What it is\n\n*WYW* is a very simplified version of [trakt.tv](https://trakt.tv/).  \nIt's been written as a playground for a scalable microservices architecture, based on choreography communication pattern. \n\nThe stack:\n* **Backend:** Docker(-compose), SpringBoot, SpringCloud, Eureka, Zuul, Ribbon, Feign, Hystrix, Apache CXF and MariaDB\n* **Frontend:** Vue.js and Bootstrap(Vue)\n\n## Install\n\n```\n# install need build and deploy package\n$ apt-get install docker-compose maven npm\n# build backend\n$ mvn clean package\n# build frontend\n$ cd frontend\n$ npm install\n$ npm run build\n$ cd ..\n# run the containers\n$ docker-compose -f docker-compose.yml [-f docker-compose.prod.yml] up [-d]\n```\n\n## Documentation\n\n* [Slides](docs/slides.pdf)\n* [Architecture](docs/architecture.png)\n\n## Typically development flow\n\n### Start containers\n\n A key for [OMDB API](http://www.omdbapi.com/apikey.aspx) is required if you want to obtain film ratings.\n Before running, export the key with:\n \n `export OMDB_API_KEY=MY_KEY`\n \n* Normal:  \n    `docker-compose up (-d)`\n* Development (eg. JPDA):  \n    `docker-compose -f docker-compose.yml -f docker-compose.dev.yml up`\n    \n\u003e **note:** see `docker-compose.yml` for more information. Tomcat port change between `4000-4100`, use `docker ps` to spot it \n\n### Build and Deploy\n\n* Whole project:   \n    `mvn (clean) package` from the project root\n* Single microservices:  \n    * `mvn -pl microservices/person package` or \n    * `cd microservices/\u003cname\u003e \u0026\u0026 mvn package`\n\n\u003e **note**: tomacat auto-reload the new war after a `mvn package`...if doesn't happen restart it (`docker-compose restart \u003cservice-name\u003e`)  \n    \n### Container scaling\n\n * Scale on start:  \n    `docker-compose up --scale person-ws=3`\n * Scale after start:  \n    `docker-compose up`   \n    `docker-compose scale person-ws=3`\n    \n### Services\n\nAll microservices are visible by eureka [localhost:8761](http://localhost:8761) \nand [localhost:8761/eureka/apps](http://localhost:8761/eureka/apps) for display what others microservices can see (xml format). \n\n### Frontend\n\n * Deployment: [http://localhost:8080/](http://localhost:8080/)   \n    `cd frontend \u0026\u0026 npm run serve`\n * Deploy for distribution: [http://localhost:3000/](http://localhost:3000/)   \n    `cd frontend \u0026\u0026 npm run build`\n    \n### DB Web Client (Adminer)\n\nurl: [http://localhost:5000/](http://localhost:5000/)  \nserver: *eg. person-db*  \nuser: *sose*    \npwd: *sose*    \ndb: *sosedb*  \n    \n### Utils\n \n * Archetype (generate a new REST web service) ([readme.md](microservices/rest-ws-archetype/README.md))\n * Script for init the wyw DB scraping the IMDB website. ([readme.md](utils/imdb2sql/README.md))  \n    `utils/imdb2sql.py`  \n\n## Notes\n\nAll WYW users password is `qwerty`.  \nAdd needed dependencies to the root `pom.xml` or the children ones.  \nCreate needed services/networks to the `docker-compose.yml`.\n\n## Development Guidelines\n\n* [Commit Message Guidelines](https://gist.github.com/robertpainsi/b632364184e70900af4ab688decf6f53)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felbowz%2Fwyw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felbowz%2Fwyw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felbowz%2Fwyw/lists"}