{"id":21097349,"url":"https://github.com/dl-nft-books/generator-svc","last_synced_at":"2026-05-12T16:09:44.064Z","repository":{"id":148774034,"uuid":"608579952","full_name":"dl-nft-books/generator-svc","owner":"dl-nft-books","description":"The core service responsible for generating NFTs","archived":false,"fork":false,"pushed_at":"2023-03-31T08:39:06.000Z","size":13896,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-14T07:25:39.879Z","etag":null,"topics":["backend","golang","psql"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dl-nft-books.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-03-02T10:07:32.000Z","updated_at":"2023-03-03T08:16:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"155b5863-7333-4ecf-956b-ae3002403e56","html_url":"https://github.com/dl-nft-books/generator-svc","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/dl-nft-books/generator-svc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dl-nft-books%2Fgenerator-svc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dl-nft-books%2Fgenerator-svc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dl-nft-books%2Fgenerator-svc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dl-nft-books%2Fgenerator-svc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dl-nft-books","download_url":"https://codeload.github.com/dl-nft-books/generator-svc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dl-nft-books%2Fgenerator-svc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32946589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["backend","golang","psql"],"created_at":"2024-11-19T22:47:24.546Z","updated_at":"2026-05-12T16:09:44.013Z","avatar_url":"https://github.com/dl-nft-books.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# generator-svc\n\n## Description\n\nThe core service responsible for generating NFTs.\n\nService includes API endpoints for tasks – small state machines, where the first step is to prepare a book with user's custom signature and load it to the S3 bucket. The frontend side waits till the task receives `finished_generation` status. After that, the frontend gets an EIP712 Mint signature needed to send a transaction to mint token. For EIP712, we use a `price-svc` connector to get the proper amount of tokens per 1$ (NOT per book price in USD).\n\nWhen the token is minted, `contract-tracker` updates the task info (e.g., `status` and `token_id`) and creates a token object which contains an info such as book id, signature, owner, IPFS hash, etc.\n\nPDF params (`pdf_signature_params` in the `config.yaml`) explanation:\n\n![alt text](./docs/images/book_params.jpg)\n\n## Install\n\n  ```bash\n  git clone generator-svc\n  cd generator-svc\n  go build main.go\n  export KV_VIPER_FILE=./config.yaml\n  ./main migrate up\n  ./main run service\n  ```\n\n## Documentation\n\nWe do use openapi:json standard for API. We use swagger for documenting our API.\n\nTo open online documentation, go to [swagger editor](http://localhost:8080/swagger-editor/) here is how you can start it\n```bash\n  cd docs\n  npm install\n  npm start\n```\nTo build documentation use `npm run build` command,\nthat will create open-api documentation in `web_deploy` folder.\n\nTo generate resources for Go models run `./generate.sh` script in root folder.\nuse `./generate.sh --help` to see all available options.\n\n\n## Running from docker\n\nMake sure that docker is installed. Use `docker run ` with `-p 8080:80` to expose port 80 to 8080\n\n```bash\ndocker build -t generator-svc .\ndocker run -e KV_VIPER_FILE=/config.yaml generator-svc\n```\n\n## Running from Source\n\n* Set up environment value with config file path `KV_VIPER_FILE=./config.yaml`\n* Provide valid config file\n* Launch the service with `migrate up` command to create database schema\n* Launch the service with `run service` command\n\n\n### Database\nFor services, we do use ***PostgresSQL*** database.\nYou can [install it locally](https://www.postgresql.org/download/) or use [docker image](https://hub.docker.com/_/postgres/).\n\n\n### Third-party services\n- [UniPDF](https://github.com/unidoc/unipdf): service for modifying PDFs\n\n## Contact\n\nThe primary contact for this project is `@slbmax` (_Telegram_) and Dmytro Zakharov `@ZamDimon` (_Telegram_ as well)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdl-nft-books%2Fgenerator-svc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdl-nft-books%2Fgenerator-svc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdl-nft-books%2Fgenerator-svc/lists"}