{"id":16233578,"url":"https://github.com/fre5h/rnokpp","last_synced_at":"2025-03-19T14:31:37.933Z","repository":{"id":50481156,"uuid":"518969347","full_name":"fre5h/rnokpp","owner":"fre5h","description":"🇺🇦 🆔 Helper functions to work with Ukrainian registration number of the taxpayer's account card (РНОКПП).","archived":false,"fork":false,"pushed_at":"2024-12-31T15:35:11.000Z","size":81,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T19:21:11.197Z","etag":null,"topics":["go","go-library","library","rnokpp","tax-number","ukraine"],"latest_commit_sha":null,"homepage":"https://github.com/fre5h/rnokpp","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/fre5h.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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":"2022-07-28T19:22:44.000Z","updated_at":"2024-12-31T15:35:15.000Z","dependencies_parsed_at":"2024-01-01T14:49:23.264Z","dependency_job_id":"f9ef8fd8-31cf-4242-ad12-2b208b7f7895","html_url":"https://github.com/fre5h/rnokpp","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fre5h%2Frnokpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fre5h%2Frnokpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fre5h%2Frnokpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fre5h%2Frnokpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fre5h","download_url":"https://codeload.github.com/fre5h/rnokpp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243997127,"owners_count":20380981,"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":["go","go-library","library","rnokpp","tax-number","ukraine"],"created_at":"2024-10-10T13:13:09.134Z","updated_at":"2025-03-19T14:31:37.588Z","avatar_url":"https://github.com/fre5h.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RNOKPP (РНОКПП)\n\nHelper functions to work with Ukrainian registration number of the taxpayer's account card (RNOKPP).  \nДопоміжні функції для роботи з реєстраційним номером облікової картки платника податків (РНОКПП).\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/fre5h/rnokpp/ci.yml?branch=main\u0026style=flat-square)](https://github.com/fre5h/rnokpp/actions?query=workflow%3ACI+branch%3Amain+)\n[![CodeCov](https://img.shields.io/codecov/c/github/fre5h/rnokpp.svg?style=flat-square)](https://codecov.io/github/fre5h/rnokpp)\n[![Go Report Card](https://goreportcard.com/badge/github.com/fre5h/rnokpp?style=flat-square)](https://goreportcard.com/report/github.com/fre5h/rnokpp)\n[![License](https://img.shields.io/github/license/fre5h/rnokpp?style=flat-square)](https://pkg.go.dev/github.com/fre5h/rnokpp)\n[![Gitter](https://img.shields.io/badge/gitter-join%20chat-brightgreen.svg?style=flat-square)](https://gitter.im/fre5h/rnokpp)\n[![GoDoc](https://pkg.go.dev/badge/github.com/fre5h/rnokpp)](https://pkg.go.dev/github.com/fre5h/rnokpp)\n\n## Demo ⚙️\n\nYou can test it with my [RNOKPP Telegram Bot](https://t.me/rnokpp_bot).\n\n## Requirements 🧐\n\n* GO \u003e= 1.20\n\n## Features 🎁\n\n- [x] Get details about RNOKPP\n- [x] Get gender\n- [x] Check gender\n- [x] Check validity\n- [x] Generate RNOKPP by date and gender\n- [x] Generate random RNOKPP\n\n## Using 👨‍🎓\n\n###### main.go\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"time\"\n\n    \"github.com/fre5h/rnokpp\"\n)\n\nfunc main() {\n    // Get details about RNOKPP\n    details, _ := rnokpp.GetDetails(\"3652504575\")\n    fmt.Println(\"details:\", details) // valid, male, 01.01.2000\n\n    // Get gender from RNOKPP\n    gender1, _ := rnokpp.GetGender(\"3652504575\")\n    fmt.Println(\"gender1:\", gender1) // male\n    gender2, _ := rnokpp.GetGender(\"3068208400\")\n    fmt.Println(\"gender2:\", gender2) // female\n\n    // Check gender\n    isMale, _ := rnokpp.IsMale(\"3652504575\")\n    fmt.Println(\"is male:\", isMale) // true\n    isFemale, _ := rnokpp.IsFemale(\"3652504575\")\n    fmt.Println(\"is female:\", isFemale) // false\n\n    // Check valid RNOKPP\n    validRnokpp := rnokpp.IsValid(\"3652504575\")\n    invalidRnokpp := rnokpp.IsValid(\"1234567890\")\n    fmt.Println(\"rnokpp valid:\", validRnokpp, invalidRnokpp) // true, false\n\n    // Generate RNOKPP by date and gender\n    birthday, _ := time.Parse(\"02.01.2006\", \"01.01.2000\")\n    generatedRnokppMale, _ := rnokpp.GenerateRnokpp(birthday, rnokpp.Male)\n    fmt.Println(\"valid RNOKPP for male with birthday on 01.01.2000:\", generatedRnokppMale) // valid RNOKPP for male with birthday on 01.01.2000, e.g. 3652322032\n    generatedRnokppFemale, _ := rnokpp.GenerateRnokpp(birthday, rnokpp.Female)\n    fmt.Println(\"valid RNOKPP for female with birthday on 01.01.2000:\", generatedRnokppFemale) // valid RNOKPP for female with birthday on 01.01.2000, e.g. 3652347000\n\n    // Generate a one random RNOKPP\n    generatedRandomRnokpp, _ := rnokpp.GenerateRandomRnokpp()\n    fmt.Println(\"random rnokpp:\", generatedRandomRnokpp) // e.g. random rnokpp: 3300507061\n    // Or generate some number of random RNOKPPs\n    generatedRandomRnokpps, _ := rnokpp.GenerateRandomRnokppN(3)\n    for i, generatedRandomRnokpp := range generatedRandomRnokpps {\n        fmt.Printf(\"random rnokpp #%d: %s\\n\", i, generatedRandomRnokpp)\n    }\n}\n```\n\n###### bash\n\n```text\n$ go get \"github.com/fre5h/rnokpp\"@v1.1.2\ngo: downloading github.com/fre5h/rnokpp v1.1.2\ngo: added github.com/fre5h/rnokpp v1.1.2\n\n$ go run main.go\ndetails: valid, male, 01.01.2000\ngender1: male\ngender2: female\nis male: true\nis female: false\nrnokpp valid: true false\nvalid RNOKPP for male with birthday on 01.01.2000: 3652322032\nvalid RNOKPP for female with birthday on 01.01.2000: 3652347000\nrandom rnokpp: 3300507061\nrandom rnokpp #0: 3946436021\nrandom rnokpp #1: 2642527503\nrandom rnokpp #2: 2620337525\n```\n\n## Contributing 🤝\n\nSee [CONTRIBUTING](https://github.com/fre5h/rnokpp/blob/master/.github/CONTRIBUTING.md) file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffre5h%2Frnokpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffre5h%2Frnokpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffre5h%2Frnokpp/lists"}