{"id":21917145,"url":"https://github.com/zsvoboda/olympics","last_synced_at":"2026-05-08T04:41:10.284Z","repository":{"id":112861577,"uuid":"459610733","full_name":"zsvoboda/olympics","owner":"zsvoboda","description":"Self service analytics of 120 years of Olympics data ","archived":false,"fork":false,"pushed_at":"2022-03-07T08:11:10.000Z","size":7531,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-27T09:41:25.293Z","etag":null,"topics":["analytics","dashboards","data","datavisualization","dataviz","olympics","open-data","open-datasets","opendata","reports"],"latest_commit_sha":null,"homepage":"","language":"Batchfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zsvoboda.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}},"created_at":"2022-02-15T14:21:49.000Z","updated_at":"2022-02-16T05:03:12.000Z","dependencies_parsed_at":null,"dependency_job_id":"a694256b-3470-45ea-a169-20152fe48f18","html_url":"https://github.com/zsvoboda/olympics","commit_stats":{"total_commits":6,"total_committers":1,"mean_commits":6.0,"dds":0.0,"last_synced_commit":"82f11aa81ed31d14783e00df356879f81824ad25"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsvoboda%2Folympics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsvoboda%2Folympics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsvoboda%2Folympics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zsvoboda%2Folympics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zsvoboda","download_url":"https://codeload.github.com/zsvoboda/olympics/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244937738,"owners_count":20535124,"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":["analytics","dashboards","data","datavisualization","dataviz","olympics","open-data","open-datasets","opendata","reports"],"created_at":"2024-11-28T19:24:02.370Z","updated_at":"2026-05-08T04:41:05.257Z","avatar_url":"https://github.com/zsvoboda.png","language":"Batchfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Olympics data \nThis project downloads 120 years of Olympics data from [this Kaggle dataset](https://www.kaggle.com/heesoo37/120-years-of-olympic-history-athletes-and-results) and transform it to a [GoodData.CN](https://www.gooddata.com/developers/cloud-native?utm_source=mediumcom\u0026utm_medium=referral\u0026utm_campaign=gdcn\u0026utm_content=zd-dbd) semantic data model.  \n\n![Olympics semantic data model](https://raw.githubusercontent.com/zsvoboda/olympics/main/img/pdm.png)\n\nData are loaded to Postgres database that is part of the GoodData.CN Docker image. This project contains declarative definitions of GoodData metrics, insights, and dashboards that you can import to your local GoodData.CN instance running in a local Docker container. \n\nYou'll get this initial Olympics dashboard out of the box: \n\n![Olympics dashboard](https://raw.githubusercontent.com/zsvoboda/olympics/main/img/olympics.dashboard.png)\n\nThen you can create your own data visualizations and interactive dashboards using the visual GoodData.CN analytics tools or APIs. You should be able to have everything up and running in less than 15 minutes. \n\n# Installation steps\n\n1. Install GoodData.CN Community Edition to your computer:\n\n`docker pull gooddata/gooddata-cn-ce`\n\n2. Install [dbd](https://github.com/zsvoboda/dbd) to your computer (make sure that you have Python 3.8+ installed)\n\n```shell\npython3 -m venv dbd-env\nsource dbd-env/bin/activate\npip3 install dbd\n```\n\n3. Install [Visual Studio Code](https://code.visualstudio.com) on your computer\n\nInstall [REST Client extension](https://marketplace.visualstudio.com/items?itemName=humao.rest-client). You'll use it for the GoodData.CN API invocation. \n\n4. Start GoodData.CN Community Edition\n\n`docker run -t -i -p 3000:3000 -p 5432:5432 --name gd gooddata/gooddata-cn-ce`\n\nAnswer 'yes' when prompted. \n\n5. Load the olympics data to the Postgres database that runs in the GoodData.CN container\n\n```shell\ncd elt/elt.postgres\ndbd run .\n```\n\n6. Open this project's files in the Visual Studio Code editor. Invoke the `code` command from the project root directory.\n\n`code .`\n\n7. Load `workspace.code-workspace` file in VSCode (press the blue button in the bottom right area of the file editor)\n\nVSCode should reload.\n\n8. Open the `api/api.postgres/rest.http`\n\nMake sure that your environment is set to `GoodData.CN CE` in the bottom right status bar listbox of the VSCode editor. \n\n9. Create database connection\n\nFind the `# @name createDataSource` on line 11 and click on the small link `Send Request` between line 2 and 3\n\nSometimes I must click the `Send Request` link twice. A new VSCode editor tab with a good HTTP result code (2xx) should open as result of the invocation.\n\n10. Create physical data model\n\nFind the `# @name storePhysicalModel` on line 31 and click on the small link `Send Request` between line 22 and 23\n\nAgain, you may need to `Send Request` link twice.\n\n11. Create workspace\n\nFind the `# @name createWorkspace` on line 36 and click on the small link `Send Request` between line 36 and 37\n\n12. Create semantic model \n\nFind the `# @name publishSemanticModel` on line 62 and click on the small link `Send Request` between line 62 and 63\n\n13. Create analytical objects (dashboards, insights, and metrics) \n\nFind the `# @name createAnalyticsModelObjects` on line 76 and click on the small link `Send Request` between line 76 and 77\n\n14. ENJOY the Olympics analytics at [localhost:3000](http://localhost:3000/)\n\nUsername is `demo@example.com`, password `demo123`.\n\nYou can reach GoodData support on their [Slack community channel](https://www.gooddata.com/slack/?utm_source=mediumcom\u0026utm_medium=referral\u0026utm_campaign=gdcn\u0026utm_content=zd-dbd) if you have a question or run into issues. \nThere are also useful GoodData University courses available on the [GoodData website](https://www.gooddata.com/learn/?utm_source=mediumcom\u0026utm_medium=referral\u0026utm_campaign=gdcn\u0026utm_content=zd-dbd). \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzsvoboda%2Folympics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzsvoboda%2Folympics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzsvoboda%2Folympics/lists"}