{"id":18312386,"url":"https://github.com/dsha256/plfa","last_synced_at":"2025-04-05T18:32:03.586Z","repository":{"id":65712033,"uuid":"587874080","full_name":"dsha256/plfa","owner":"dsha256","description":"Pragmatic Live Feed Aggregator aggregates all available live tables and delivers to web clients on demand in one big batch.","archived":false,"fork":false,"pushed_at":"2025-03-26T19:59:27.000Z","size":129,"stargazers_count":9,"open_issues_count":13,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-26T20:48:29.567Z","etag":null,"topics":["docker","docker-compose","go","golang","gorilla-websocket","goroutines","mock","mockgen","pusher","swagger-ui","swagger2","unittesting","websocket"],"latest_commit_sha":null,"homepage":"","language":"Go","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/dsha256.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-11T19:41:30.000Z","updated_at":"2025-03-15T20:55:23.000Z","dependencies_parsed_at":"2024-06-14T06:27:16.189Z","dependency_job_id":"9f4e7cdf-2f3a-4513-9728-38a50f7b8763","html_url":"https://github.com/dsha256/plfa","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsha256%2Fplfa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsha256%2Fplfa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsha256%2Fplfa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dsha256%2Fplfa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dsha256","download_url":"https://codeload.github.com/dsha256/plfa/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247384001,"owners_count":20930392,"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":["docker","docker-compose","go","golang","gorilla-websocket","goroutines","mock","mockgen","pusher","swagger-ui","swagger2","unittesting","websocket"],"created_at":"2024-11-05T16:23:56.685Z","updated_at":"2025-04-05T18:32:00.651Z","avatar_url":"https://github.com/dsha256.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pragmatic Live Feed Aggregator\r\n## The Problem\r\n###  Traffic consumption is very high and non-friendly to mobile and web clients during using Pragmatic Play's live data Socket API.\r\n## How the app solves the problem?\r\n### Pragmatic Live Feed Aggregator aggregates all available live tables and delivers to web clients on demand in one big batch.\r\n\r\n---\r\n\r\n# RUN in Docker Compose - Locally\r\n### For running the app locally you just need to create `.env` file in the project root directory with the following environment variables in it:\r\n```dotenv\r\nPRAGMATIC_FEED_WS_URL= The vendor WS URL\r\nCASINO_ID= Casino's ID\r\nTABLE_IDS= Comma-seperated tables IDs\r\nCURRENCY_IDS= Comma-seperated Currency IDs\r\nREDIS_PORT= Port to run and connect to Redis DB\r\nSERVER_PORT= Port to run the HTTP server on\r\nPUSHER_CHANNEL_ID= Pusher.com's channel ID\r\nPUSHER_PERIOD_MINUTES= Period to push data into the pusher channel\r\nPUSHER_APP_ID= Pusher.com's app ID\r\nPUSHER_KEY= Pusher.com's app key\r\nPUSHER_SECRET= Pusher.com's app secret\r\nPUSHER_CLUSTER= Pusher.com's app cluster\r\n```\r\n### And run the following command in the project's root directory:\r\n```shell\r\ndocker-compose up\r\n```\r\n\r\n---\r\n\r\n# See the result in your favorite Web Browser\r\n### After running the app in Docker Compose, you need to open your favorite web browser and go to the following links:\r\n\r\n1. All endpoints - SWAGGER UI\r\n   ``http://localhost:[PORT]/v1/swagger``\r\n\r\n2. Get the Pragmatic Live Feed aggregated data as a one big batch: \\\r\n   ```http://localhost:[PORT]/v1/tables``` \\\r\n   Where `PORT` is `SERVER_PORT` from the `.env` file. \\\r\n   API success response:\r\n   ```json\r\n   {\r\n     \"data\": [\r\n       {\r\n         \"tableAndCurrencyID\": \"100:200\",\r\n         \"pragmaticTable\": {\r\n           \"totalSeatedPlayers\": 0,\r\n           \"last20Results\": [\r\n             {\r\n               \"time\": \"\",\r\n               \"result\": 0,\r\n               \"color\": \"\",\r\n               \"gameId\": \"\",\r\n               \"powerUpList\": [],\r\n               \"powerUpMultipliers\": []\r\n             }\r\n           ],\r\n           \"tableId\": \"\",\r\n           \"tableName\": \"\",\r\n           \"newTable\": false,\r\n           \"languageSpecificTableInfo\": \"\",\r\n           \"tableImage\": \"\",\r\n           \"tableLimits\": {\r\n             \"ranges\": [],\r\n             \"minBet\": 0,\r\n             \"maxBet\": 0,\r\n             \"maxPlayers\": 0\r\n           },\r\n           \"dealer\": {\r\n             \"name\": \"\"\r\n           },\r\n           \"tableOpen\": false,\r\n           \"tableType\": \"\",\r\n           \"tableSubtype\": \"\",\r\n           \"currency\": \"\"\r\n         }\r\n       }\r\n     ]\r\n   }\r\n   ```\r\n\r\n3. Check the previous endpoint health: \\\r\n   ```http://localhost:[PORT]/v1/healthcheck``` \\\r\n   Where `PORT` is `SERVER_PORT` from the `.env` file. \\\r\n   API success response:\r\n    ```json\r\n    {\r\n       \"status\": \"available\",\r\n       \"system_info\": {\r\n       \"version\": \"1.0.0\"\r\n       }\r\n    }\r\n    ```\r\n\r\n---\r\n\r\n## Sponsors\r\n\u003e [Gaembla](https://gaembla.com/)\r\n\u003cdiv align='left'\u003e\r\n  \u003ca href=\"https://gaembla.com/\"\u003e\r\n    \u003cimg src=\"/.github/imgs/Gaembla.jpg\" alt=\"Gaembla\" width=\"200px\" /\u003e\r\n  \u003c/a\u003e\r\n\u003c/div\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsha256%2Fplfa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdsha256%2Fplfa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdsha256%2Fplfa/lists"}