{"id":22514082,"url":"https://github.com/oislen/randomtelecompayments","last_synced_at":"2026-04-15T18:31:36.691Z","repository":{"id":170394548,"uuid":"646505874","full_name":"oislen/RandomTelecomPayments","owner":"oislen","description":"An application for randomly generating telecommunication payment data.","archived":false,"fork":false,"pushed_at":"2026-02-16T09:31:21.000Z","size":3741,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-16T16:28:18.821Z","etag":null,"topics":["data-simulation","multiprocessing","numpy","pandas","payments","python","qmarkdown","random-number-generation","telecommunications","unittests"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oislen.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-05-28T16:04:03.000Z","updated_at":"2026-02-15T23:17:30.000Z","dependencies_parsed_at":"2026-01-04T04:00:48.663Z","dependency_job_id":null,"html_url":"https://github.com/oislen/RandomTelecomPayments","commit_stats":null,"previous_names":["oislen/randomtelecomdata"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/oislen/RandomTelecomPayments","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oislen%2FRandomTelecomPayments","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oislen%2FRandomTelecomPayments/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oislen%2FRandomTelecomPayments/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oislen%2FRandomTelecomPayments/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oislen","download_url":"https://codeload.github.com/oislen/RandomTelecomPayments/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oislen%2FRandomTelecomPayments/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31854665,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: 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":["data-simulation","multiprocessing","numpy","pandas","payments","python","qmarkdown","random-number-generation","telecommunications","unittests"],"created_at":"2024-12-07T03:15:53.136Z","updated_at":"2026-04-15T18:31:36.683Z","avatar_url":"https://github.com/oislen.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Random Telecom Payments Generation\n\n## Overview\n\nRandomly simulated data is particularly useful when it's real world counterpart is hard access due to complexity, privacy and security reasons. Moreover, randomly simulated data has additional benefits including reproducibility, scalability and controllability.\n\nThis application aims to simulate telecommunication payments using random number generation. It includes typical transaction level relationships and behaviours amongst the user, device, ip, and card entities. It can be used in place of real world telecommunication payments for prototyping solutions and as an education tool.\n\nThe data generation algorithm works by first generating user level telecom payments data. Afterwards, the user level data is exploded to transaction level, and any inconsistencies within the data model are removed. Finally, the transaction status and error codes are generated using underlying features within the transaction level data.\n\n### Master File\n\nA stable master version of the Random Telecom Payments data can be found on Kaggle here:\n\n* https://www.kaggle.com/datasets/oislen/randomtelecompayments\n\n## Data Model\n\nThe underlying data model present in the simulated telecommunication payments is displayed below.\n\n![Entity Relationship Diagram](doc/entity_relationship_diagram.jpg)\n\nFor a more detailed account of each column in the dataset see the data dictionary:\n\n* https://github.com/oislen/RandomTelecomPayments/blob/main/doc/data_dictionary.csv\n\n## Running the Application (Windows)\n\n### Application Parameters\n\n* **n_users** - integer, the number of users to generate Random Telecom Payments data for, default is 100.\n* **use_random_seed** - integer, whether to run the Random Telecom Payments data generation with or without a random seed set for reproducible results; must be 0 or 1.\n* **n_itr** - integer, the number of Random Telecom Payments data batches to generate; must be at least 1. The python multiprocessing library is used to run each in parallel across all available cores.\n* **n_applications** - integer, the number of applications to generate, default is 20000\n* **registration_start_date** - string, the start date for user registrations, default is two years ago from today.\n* **registration_end_date** - string, the end date for user registrations, default is one year ago from today.\n* **transaction_start_date** - string, the start date for user transactions, default is one year ago from today.\n* **transaction_end_date** - string, the end date for user transactions, default is today.\n\n### Docker\n\nThe latest version of the Random Telecom Payments app can be found as a [docker](https://www.docker.com/) image on dockerhub here:\n\n* https://hub.docker.com/repository/docker/oislen/randomtelecompayments/general\n\nThe docker image can be pulled from dockerhub using the following command:\n\n```\ndocker pull oislen/randomtelecompayments:latest\n```\n\n#### Command Line Interface\n\nThe Random Telecom Payments app can then be executed to generate data for 2000 users using the following command and the docker image:\n\n```\ndocker run --name rtp oislen/randomtelecompayments:latest --n_users 1000 --use_random_seed 1 --n_itr 2\n```\n\nThe generated Random Telecom Payments data can then be extract from the docker image using the following command:\n\n```\ndocker cp rtp:/home/user/RandomTelecomPayments/data/RandomTelecomPayments.csv %userprofile%\\Downloads\\RandomTelecomPayments.csv\n```\n\n#### FastApi Interface\n\nAlternatively, a FastApi interface has been configured within the docker image to allow for interaction with the Random Telecom Payments app via REST API calls. The FastApi interface can be accessed by publishing port 8000 when running the docker image as follows:\n\n```\ndocker run --name rtp --publish 8000:8000 --entrypoint uv --rm oislen/randomtelecompayments:latest run fastapi run generator/api.py\n```\n\nOnce the web endpoint is running, navigate to localhost:8000/docs in your preferred browser to access the FastApi interface documentation and test the available API calls.\n\n* http://localhost:8000/docs\n\n\n![FastApi Endpoint](doc/fastapi_endpoint.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foislen%2Frandomtelecompayments","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foislen%2Frandomtelecompayments","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foislen%2Frandomtelecompayments/lists"}