{"id":19031063,"url":"https://github.com/hackclub/apac_certificate_generator","last_synced_at":"2025-09-09T05:43:19.349Z","repository":{"id":48260275,"uuid":"382298767","full_name":"hackclub/apac_certificate_generator","owner":"hackclub","description":null,"archived":false,"fork":false,"pushed_at":"2022-04-06T18:13:57.000Z","size":1363,"stargazers_count":32,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-28T02:03:23.705Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/hackclub.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":"2021-07-02T09:36:48.000Z","updated_at":"2025-05-24T04:27:17.000Z","dependencies_parsed_at":"2022-08-30T02:31:59.895Z","dependency_job_id":null,"html_url":"https://github.com/hackclub/apac_certificate_generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hackclub/apac_certificate_generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fapac_certificate_generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fapac_certificate_generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fapac_certificate_generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fapac_certificate_generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackclub","download_url":"https://codeload.github.com/hackclub/apac_certificate_generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackclub%2Fapac_certificate_generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274250460,"owners_count":25249396,"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","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-11-08T21:21:15.914Z","updated_at":"2025-09-09T05:43:19.323Z","avatar_url":"https://github.com/hackclub.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A modern document generator and verifier!\n\n## The Saga\n\nIn the Asia Pacific region of Hack Club’s operations, there are a lot of High Schools/Institutions that require a digital document stating that they are officially recognized as a Hack Club and as a lead by Hack Club.\n\nSo, we regularly get requests from leaders that they want this certificate to be able to start their Hack Clubs.\n\n\nSo, this is what the flow looks like:\n1. Harsh makes the certificate\n2. sends it to Athul\n3. Athul signs it and sends it back to Harsh\n4. Harsh sends it back to the lead \n5. If a need for verification arrives, then Harsh has to do it.\n\n\u003cimg src=\"https://cloud-hucstbalj-hack-club-bot.vercel.app/0image.png\" alt=\"workflow images\" /\u003e\n\n\nMost of you can already see how long this chain is and it requires a lot of work to be done manually like:\n\n1. creating the certificate\n2. placing the sign { Athul has to do that } for each certificate\n3. sending it back to the Harsh\n4. then for Harsh to send it back the leader\n5, The whole verification has to be done manually.\n \nNow, we were earlier using a tool named [Hellosign](https://www.hellosign.com/), but it has certain issues:\n1. You have to get a paid subscription if you go above 3 documents a month!\n2. We have to manually sign, download, and send it to the Leader.\n3. Verification of documents is not bulletproof, and we needed this verification to be done via our slack.\n3. We couldn’t find a slack integration that could just get it all done via slack.\n\nClearly, this is causing issues when applied at scale { as we have a lot of Hack Clubs under the APAC region!  }.\n\nSo, we made our own service that can solve all of these issues and can do everything via our slack.\n\nWe call it **Certificate Human!**\n\nSo, here is what the flow looks like with it:\n1. Harsh enters a slack command, he gets a form that he fills out.\n\n\u003cimg src=\"https://cloud-64mh6luqy-hack-club-bot.vercel.app/0image.png\" alt=\"slack command image\" width=\"500x\" /\u003e\n\n2. Certificate Human makes a certificate from this data and sends it to Athul.\n\n\u003cimg src=\"https://cloud-dc7ilwb0c-hack-club-bot.vercel.app/0image.png\" alt=\"sign/decline image\" width=\"500px\" /\u003e\n \n3. Athul accepts it and then it directly goes back to the leader.\n\n\u003cimg src=\"https://cloud-f6escsqhj-hack-club-bot.vercel.app/0image.png\" alt=\"certificate image\" width=\"500px\" /\u003e\n\nHere is a visual representation of this process.\n\n\u003cimg src=\"https://cloud-3noc54n39-hack-club-bot.vercel.app/0image.png\" alt=\"new process image\" width=\"500px\" /\u003e\n\nCertificate Human, here does all the heavy lifting by acting as central entity around which the whole operation relies upon!\n\nIt also keeps participants in this operation in sync, like:\n1. It tells Harsh when Athul has signed/declined an Application\n2. It tells Harsh and Athul, that the certificate is now shipped to the recipient (i.e the Leader).\n\n## Verification\n\nA big part of us is to make sure that the documents that we issue can be verified in the future.\n\nSo, we are using basic cryptography, to verify our document. So, any type of modification done to these documents will be detectable from our side.\n\nYou simply have to put your pdf file in [#certificate_check channel](https://hackclub.slack.com/archives/C029YASFA5T/p1628001365003900), and our bot will tell you whether it is a legit copy or not.\n\n\u003cimg src=\"https://cloud-8f1py9d69-hack-club-bot.vercel.app/0image.png\" alt=\"verification image\" width=\"500px\" /\u003e\n\n\n## The Memer\n\nIt does proper Authentication to make sure that only authorized people can create certificates via it!\n\nSo,  if you are not from the APAC team and try to mention Certificate Human in a channel, then it will send you a Husky joke! ( so nice of it ).\n\n\u003cimg src=\"https://cloud-24kg85e96-hack-club-bot.vercel.app/0image.png\" alt=\"husky joke image\" width=\"200px\"  /\u003e\n\nIf you face any problem or have any queries regarding this package, you can reach out to the Author: Harsh Bajpai via Hack Club’s Slack.\n\nSlack Handle: Harsh Bajpai\n\n\u003cimg src=\"https://cloud-19c4bmt00-hack-club-bot.vercel.app/0image.png\" alt=\"harsh's image\" width=\"250px\" /\u003e \n\nThanks for reading this document, till then keep hacking and keep the hacker spirit alive!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackclub%2Fapac_certificate_generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackclub%2Fapac_certificate_generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackclub%2Fapac_certificate_generator/lists"}