{"id":16641451,"url":"https://github.com/alexdor/regtic","last_synced_at":"2026-01-17T18:38:22.488Z","repository":{"id":37875640,"uuid":"208270739","full_name":"alexdor/regtic","owner":"alexdor","description":null,"archived":false,"fork":false,"pushed_at":"2023-01-11T03:29:59.000Z","size":65394,"stargazers_count":0,"open_issues_count":54,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-02T23:16:50.661Z","etag":null,"topics":["dtu","golang","nodejs","python","serverless","serverless-framework","vue","vuex"],"latest_commit_sha":null,"homepage":"","language":"Vue","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/alexdor.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}},"created_at":"2019-09-13T13:30:54.000Z","updated_at":"2021-11-11T14:23:37.000Z","dependencies_parsed_at":"2023-02-09T00:46:39.289Z","dependency_job_id":null,"html_url":"https://github.com/alexdor/regtic","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/alexdor/regtic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdor%2Fregtic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdor%2Fregtic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdor%2Fregtic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdor%2Fregtic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexdor","download_url":"https://codeload.github.com/alexdor/regtic/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexdor%2Fregtic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28516195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:28:00.501Z","status":"ssl_error","status_checked_at":"2026-01-17T18:28:00.150Z","response_time":85,"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":["dtu","golang","nodejs","python","serverless","serverless-framework","vue","vuex"],"created_at":"2024-10-12T07:46:41.123Z","updated_at":"2026-01-17T18:38:22.459Z","avatar_url":"https://github.com/alexdor.png","language":"Vue","readme":"# Regtic\n\nThis is the base repo for the anti-money laundering project which is/was a part of the HardTech Entrepreneurship course at the Technical University of Denmark anno 2019.\n\n[![Netlify Status](https://api.netlify.com/api/v1/badges/bdb923b9-fd7d-46f0-91b5-796690da8448/deploy-status)](https://app.netlify.com/sites/affectionate-swartz-baae10/deploys)\n\n## Structure\n\nThe system is using the serverless framework, and has the following structure\n\n```md\n└── regtic\n├── api\n├── app\n├── database\n└── workers\n```\n\n### Api\n\nServerless functions (mainly written in [Go](https://golang.org/)) in order to facilitate the requirements of the web app.\n\n### App\n\nThe app directory includes a Vue based web app that communicates with the API in order to search for companies and display their structure (while checking every person across/company with the sanctions list and with the \"Politically Exposed Persons\" list).\n\n### Database\n\nPostgres migrations and helper scripts, using the knex.js library\n\n### Workers\n\nThis directory includes serverless functions that can parse and aggregate data. Namely this projects uses the following workers:\n\n- `pepworker` retrieves the excel file from the [Danish \"Politically Exposed Persons\" list](https://www.finanstilsynet.dk), processes/cleanup the data and inserts the people to the database (or updates the existing records if the person is already in the database). Written in [Python](https://www.python.org).\n- `sanctionworker` retrieves the xml file from [EU's sanction list](webgate.ec.europa.eu/europeaid/fsd/fsf/public/files/xmlFullSanctionsList_1_1/), processes/cleanup the data and inserts the people to the database (or updates the existing records if the person is already in the database). Written in [Python](https://www.python.org).\n- `vat-dk` scraps the entire [Danish VAT registry](http://distribution.virk.dk/cvr-permanent) using elasticsearch, cleans up the data and inserts them to the database. This activity is done sequential instead of in parallel in order to minimize the load on the cvr registry, unfortunately this also means that the worker requires multiple hours to complete it's task. Written in [Node.js](https://nodejs.org/).\n\n## Initial setup\n\n1. Install [Docker](https://www.docker.com/), [Docker Compose](https://docs.docker.com/compose/install/), [NodeJS 12.x](https://nodejs.org/en/download/), [Serverless](https://serverless.com/), [Sam local](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) and [Go](https://golang.org/dl/)\n\n2. `$ git clone git@github.com:alexdor/regtic.git`\n\n3. `$ npm i`\n\n4. `$ cd database \u0026\u0026 npm i`\n\n5. In base repo run `$ npm run start`\n\n6. Then to get the databse structure `$ cd database \u0026\u0026 npm run migrate-latest`\n\n7. To stop the app press `ctrl+c`\n\n## Formats\n\n- Country codes [ISO 3166-1](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), e.g. DK for Denmark\n- Use the full VAT number, for each company, as specified [here](https://en.wikipedia.org/wiki/VAT_identification_number)\n\n## Linters\n\nPlease install the [black](https://pypi.org/project/black/) linter for python.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdor%2Fregtic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexdor%2Fregtic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexdor%2Fregtic/lists"}