{"id":15069027,"url":"https://github.com/vinnilmg/ms-course","last_synced_at":"2026-02-17T13:02:53.467Z","repository":{"id":190064632,"uuid":"681872126","full_name":"vinnilmg/ms-course","owner":"vinnilmg","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-20T01:18:15.000Z","size":148,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-18T17:09:18.738Z","etag":null,"topics":["java","java-11"],"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/vinnilmg.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":"2023-08-23T00:19:55.000Z","updated_at":"2023-09-29T00:56:51.000Z","dependencies_parsed_at":"2023-08-23T04:38:49.752Z","dependency_job_id":"49640467-3559-49a8-ba58-be335d37a7dc","html_url":"https://github.com/vinnilmg/ms-course","commit_stats":null,"previous_names":["vinnilmg/ms-course"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vinnilmg/ms-course","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinnilmg%2Fms-course","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinnilmg%2Fms-course/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinnilmg%2Fms-course/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinnilmg%2Fms-course/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vinnilmg","download_url":"https://codeload.github.com/vinnilmg/ms-course/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vinnilmg%2Fms-course/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29545295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T13:00:00.370Z","status":"ssl_error","status_checked_at":"2026-02-17T12:57:14.072Z","response_time":100,"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":["java","java-11"],"created_at":"2024-09-25T01:40:05.367Z","updated_at":"2026-02-17T13:02:53.446Z","avatar_url":"https://github.com/vinnilmg.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MS-COURSE\n\n### Curso\nhttps://www.udemy.com/share/103FNT3@-30JpKbA1NX-PT3aw6c82DDMSEztllLcUilEWFLgCQ8Re1OUA5zt-56brk6xVgPz/\n\n### Descrição dos microsserviços\n\u003ch4\u003ehr-api-gateway-zuul\u003c/h4\u003e\n\u003cp\u003eCentraliza as chamadas aos serviços hr-user, hr-payroll, hr-worker e hr-oauth.\u003c/p\u003e\n\n\u003ch4\u003ehr-config-server\u003c/h4\u003e\n\u003cp\u003eBusca as propriedades de configuração dos projetos, todas estão armazenadas no github.\u003c/p\u003e\n\n\u003ch4\u003ehr-eureka-server\u003c/h4\u003e\n\u003cp\u003eGerencia o status, localização e balanceamento de carga dos serviços clientes.\u003c/p\u003e\n\n\u003ch4\u003ehr-oauth\u003c/h4\u003e\n\u003cp\u003eMicrosserviço responsável pela autenticação do usuário e gerar o JWT.\u003c/p\u003e\n\n\u003ch4\u003ehr-payroll\u003c/h4\u003e\n\u003cp\u003eMicrosserviço responsável por gerenciar a folha de pagamento.\u003c/p\u003e\n\n\u003ch4\u003ehr-user\u003c/h4\u003e\n\u003cp\u003eMicrosserviço responsável por gerenciar os usuários.\u003c/p\u003e\n\n\u003ch4\u003ehr-worker\u003c/h4\u003e\n\u003cp\u003eMicrosserviço responsável por gerenciar os trabalhadores.\u003c/p\u003e\n\n### Versões utilizadas\n- Java 11\n- Spring Boot 2.3.4.RELEASE\n\n### SQL\n\u003ch4\u003eInsert de trabalhadores:\u003c/h4\u003e\n\n```sql\nINSERT INTO tb_worker(name, daily_income) VALUES('Maria', 4500.0);\nINSERT INTO tb_worker(name, daily_income) VALUES('Marcio', 15000.0);\nINSERT INTO tb_worker(name, daily_income) VALUES('Vini', 10000.0);\n```\n\n\u003ch4\u003eInsert de usuários, funcões e many to many:\u003c/h4\u003e\n\n```sql\nINSERT INTO tb_user (name, email, password) VALUES ('Jon Snow', 'jonsnow@email.com', '$2a$12$5WriKe32Ben26zZADrFp8.t7lXfI5Qgh13yYtaDHODWA.Lfl/fU5S');\nINSERT INTO tb_user (name, email, password) VALUES ('Luffy', 'pirateking@email.com', '$2a$12$wixBYwic3YTQE7I9kY6dJOxeQkJNQ7C9CiwZSIqSdjK7AIITQwAlm');\n\nINSERT INTO tb_role (role_name) VALUES ('OPERATOR');\nINSERT INTO tb_role (role_name) VALUES ('ADMIN');\n\nINSERT INTO tb_user_role (user_id, role_id) VALUES (1, 1);\nINSERT INTO tb_user_role (user_id, role_id) VALUES (2, 1);\nINSERT INTO tb_user_role (user_id, role_id) VALUES (2, 2);\n```\n\n### Eureka Server\nDashboard: http://localhost:8761/\n\n### Rota de autenticação\nEndpoint: /hr-oauth/oauth/token\n\n### Variáveis de ambiente\nCriar:\n```\nsetx {VARIAVEL} {VALOR}\n``` \n\nExibir:\n```\necho %{VARIAVEL}%\n```\n\n### Testando o CORS\n```\nfetch(\"http://localhost:8765/hr-worker/workers\", {\n  \"headers\": {\n    \"accept\": \"*/*\",\n    \"accept-language\": \"en-US,en;q=0.9,pt-BR;q=0.8,pt;q=0.7\",\n    \"sec-fetch-dest\": \"empty\",\n    \"sec-fetch-mode\": \"cors\",\n    \"sec-fetch-site\": \"cross-site\"\n  },\n  \"referrer\": \"http://localhost:3000\",\n  \"referrerPolicy\": \"no-referrer-when-downgrade\",\n  \"body\": null,\n  \"method\": \"GET\",\n  \"mode\": \"cors\",\n  \"credentials\": \"omit\"\n});\n```\n\n### Docker\nBuildar os projetos:\n```\nmvnw clean package\nmvnw clean package -DskipTests\n```\n\nComandos utilizados:\n- Criar rede \"hr-net\":\n```\ndocker network create hr-net\n```\n\n- Rodar o container com a imagem do banco:\n```\ndocker run -p 5432:5432 --name hr-worker-pg12 --network hr-net -e POSTGRES_PASSWORD={PASSW} -e POSTGRES_DB=db_hr_worker postgres:12-alpine\ndocker run -p 5433:5432 --name hr-user-pg12 --network hr-net -e POSTGRES_PASSWORD={PASSW} -e POSTGRES_DB=db_hr_user postgres:12-alpine\n```\n\n- Gerar as imagens dos projetos:\n```\ndocker build -t hr-config-server:v1 . \ndocker build -t hr-eureka-server:v1 . \ndocker build -t hr-worker:v1 . \ndocker build -t hr-user:v1 .\ndocker build -t hr-payroll:v1 .\ndocker build -t hr-oauth:v1 .\ndocker build -t hr-api-gateway-zuul:v1 .\n```\n\n- Rodar o container com cada imagem criada:\n```\ndocker run -p 8888:8888 --name hr-config-server --network hr-net -e GIT_USERNAME={USER} -e GIT_ACCESS_TOKEN={TOKEN} hr-config-server:v1\ndocker run -p 8761:8761 --name hr-eureka-server --network hr-net hr-eureka-server:v1\ndocker run -P --network hr-net hr-worker:v1\ndocker run -P --network hr-net hr-user:v1\ndocker run -P --network hr-net hr-payroll:v1\ndocker run -P --network hr-net hr-oauth:v1\ndocker run -p 8765:8765 --name hr-api-gateway-zuul --network hr-net hr-api-gateway-zuul:v1\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinnilmg%2Fms-course","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvinnilmg%2Fms-course","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvinnilmg%2Fms-course/lists"}