{"id":36750430,"url":"https://github.com/octodemo/msft-copilot-demo","last_synced_at":"2026-01-12T12:43:35.758Z","repository":{"id":227573607,"uuid":"770822150","full_name":"octodemo/msft-copilot-demo","owner":"octodemo","description":null,"archived":false,"fork":false,"pushed_at":"2024-03-13T14:50:16.000Z","size":194,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":7,"default_branch":"main","last_synced_at":"2024-03-14T03:27:17.181Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/octodemo.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}},"created_at":"2024-03-12T08:18:02.000Z","updated_at":"2024-03-14T03:27:33.997Z","dependencies_parsed_at":"2024-03-14T03:27:26.584Z","dependency_job_id":"c194c27b-c361-4def-9658-28103dbcc311","html_url":"https://github.com/octodemo/msft-copilot-demo","commit_stats":null,"previous_names":["octodemo/msft-copilot-demo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/octodemo/msft-copilot-demo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fmsft-copilot-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fmsft-copilot-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fmsft-copilot-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fmsft-copilot-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octodemo","download_url":"https://codeload.github.com/octodemo/msft-copilot-demo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octodemo%2Fmsft-copilot-demo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338983,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T12:22:26.515Z","status":"ssl_error","status_checked_at":"2026-01-12T12:22:10.856Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":[],"created_at":"2026-01-12T12:43:35.080Z","updated_at":"2026-01-12T12:43:35.754Z","avatar_url":"https://github.com/octodemo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub Copilot Use-Case Showcase\n\n## Developer Persona\n\n### Scenario\n\nI am an Intermediate Software Engineer joining a new team.\n\nMy team lead has assigned me the task of building a new backend microservice that should aggregate the Bitcoin price from different exchanges so that we can report select cross-exchange prices on our landing screen.\n\n### Pick up an existing project\n\n```\n@workspace how do I launch this microservice using npm?\n```\n\nFollow the recommendation to add a `start` script and launch and test the empty microservice.\n\n### Create Prices API\n\nChat prompt:\n\n```\nCreate a GET request handler at /crypto_price that takes a cryptocurrency symbol as input and returns a corresponding associative array mapping the symbol to the last sell price.  Use the CoinGecko API to retrieve the price and use Axios for HTTP requests.\n```\n\nApply the code as suggested\n\nSee if it works\n\n```\nnpm start\n\nGET http://localhost:3000/crypto_price?symbol=bitcoin\n```\n\nGet the price from a second exchange:\n\n```\nAdd logic to get the price from the Binance public API and put the prices from both CoinGecko and Binance into an associative map like this:\n\n{\n    \"coingecko\": 123,\n    \"binance\": \"432\n}\n```\n\nMake it less hardcoded:\n\n```\nWe need to clean this up by creating a map of symbols and exchanges to the argument that should be passed to the exchange API.  When BTC is supplied as the symbol, \"bitcoin\" should be passed to coingecko and BTCUSDT should be passed to Binance\n```\n\n### Front-End\n\n```\nUpdate this code to pull Bitcoin prices from the URL http://localhost:3000/crypto_price?symbol=BTC\n\nThis will provide a response like this:\n\n{\n    \"coingecko\": 72672,\n    \"binance\": 72355.99\n}\n\nDisplay the prices in a table\n```\n\nDeal with CORS - Copilot can help here! 😍\n\n\n\n### Unit Testing\n\n```\nWrite a succes case unit test for this code.  Mock the HTTP requests\n```\n\n### TDD\n\n```\nThis code should yield an \"Unsupported symbol\" HTTP 400 error if anything other than \"BTC\" is supplied for the symbol.  Create a fail unit test case for this situation\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctodemo%2Fmsft-copilot-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctodemo%2Fmsft-copilot-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctodemo%2Fmsft-copilot-demo/lists"}