{"id":23769569,"url":"https://github.com/cholnhial/hobbymate","last_synced_at":"2026-04-11T06:04:02.389Z","repository":{"id":71072476,"uuid":"551704846","full_name":"cholnhial/hobbymate","owner":"cholnhial","description":"UQ Cloud Computing Course Final Project: A web application that allows users to find projects to collaborate on and also sell their artifacts","archived":false,"fork":false,"pushed_at":"2022-10-21T14:20:42.000Z","size":30019,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-01T02:29:30.422Z","etag":null,"topics":["cloud-computing","docker","docker-compose","docker-swarm","microservices","spring","spring-boot"],"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/cholnhial.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}},"created_at":"2022-10-14T23:33:55.000Z","updated_at":"2022-11-17T03:11:18.000Z","dependencies_parsed_at":null,"dependency_job_id":"a8fbf5fa-ea8e-43b4-b567-1ce947096ad3","html_url":"https://github.com/cholnhial/hobbymate","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cholnhial%2Fhobbymate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cholnhial%2Fhobbymate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cholnhial%2Fhobbymate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cholnhial%2Fhobbymate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cholnhial","download_url":"https://codeload.github.com/cholnhial/hobbymate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239951737,"owners_count":19723915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cloud-computing","docker","docker-compose","docker-swarm","microservices","spring","spring-boot"],"created_at":"2025-01-01T02:28:24.218Z","updated_at":"2025-12-30T22:58:06.021Z","avatar_url":"https://github.com/cholnhial.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HobbyMate\nHobbyMate is a web application that lets you find projects to work on and also lets you advertise your projects to others.\nOnce you complete your project you can list your artefact in the shop.\nThe audience are hobbyist and anyone interested in collaborating with others on projects.\n\n## Technologies\n* Spring Boot\n* Angular\n* Netflix Eureka (Service Discovery)\n* Netflix Ribbon (Clientside LoadBalancing) - Eureka runs at http://localhost:8761/\n\n### Firewall\n* Port 9797 (Web Application)\n* Port 8095 (API Server - Gateway)\n\nMake sure you allow these ports through your GCP firewall settings.\n\n### Load Balancing\nWhen deployed to docker swarm project-service is run as two replicas. The instances\nwill register with discovery-service (Eureka). The microservices can easilly scale.\n\n## Important NOTE\nPlease allow time for all the microservices to start as they may fail due to databases not being ready.\nThey'll reconnect on reboot. \n\n## Database Issues!\ncleans all the volumes for mysql\n```bash\ndocker-compose rm -v -f\ndocker volume prune -f\n```\n\n# Where is the app?\nAfter running with docker compose or deploying to swarm the app will be available at http://localhost:9797 or `http://\u003cyour gcp external ip\u003e:9797/`\n\n# Building \u0026 Running\nThe jar files have been included so that they can be put into docker images.\n\n## 1. Easy option\nThis option will use the jarfiles in the project to build the images.\n## Run with compose\n```bash\ndocker-compose up --build --force-recreate\n```\nWhen fully ready go to: `http://\u003cyour gcp external ip\u003e:9797/`\n## Deploy to swarm\n```bash\ndocker-compose build  --force-rm\ndocker swarm init\ndocker stack deploy --compose-file=docker-compose.yml hobbymate\n```\nWhen fully ready go to: `http://\u003cyour gcp external ip\u003e:9797/`\n\n## 2. Recompiling Java and building images\nThis option requires that you have Java 17.0.4 installed to build the project.\n**This is in case there's an issue running the jars I've provided**.\n\n### Build\n```bash\n./mvnw clean package -DskipTests=true\n```\n### Then deploy to swarm or;\nGive the services sometime to start they will take a while as some will be attempting to connect to the DB while it's still being launched.\n```bash\ndocker-compose build  --force-rm\ndocker swarm init\ndocker stack deploy --compose-file=docker-compose.yml hobbymate\n```\n\n### Run with docker-compose\nGive the services sometime to start they will take a while as some will be attempting to connect to the DB while it's still being launched.\n```bash\ndocker-compose up --build --force-recreate\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcholnhial%2Fhobbymate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcholnhial%2Fhobbymate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcholnhial%2Fhobbymate/lists"}