{"id":15101743,"url":"https://github.com/sandyjmacdonald/project-id-creator","last_synced_at":"2026-01-19T21:33:35.998Z","repository":{"id":255142857,"uuid":"848381124","full_name":"sandyjmacdonald/project-id-creator","owner":"sandyjmacdonald","description":"Bun/Hono/Cloudflare Workers app to generate project IDs","archived":false,"fork":false,"pushed_at":"2024-08-31T09:53:42.000Z","size":97,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T11:14:09.110Z","etag":null,"topics":["bun","cloudflare-workers","hono"],"latest_commit_sha":null,"homepage":"https://project-id-creator.sandyjmacdonald.workers.dev","language":"TypeScript","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/sandyjmacdonald.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}},"created_at":"2024-08-27T16:51:06.000Z","updated_at":"2024-08-31T09:53:45.000Z","dependencies_parsed_at":"2024-08-28T08:48:53.715Z","dependency_job_id":"63ef6567-cae2-42ad-a10e-66fa4a93fe3c","html_url":"https://github.com/sandyjmacdonald/project-id-creator","commit_stats":{"total_commits":10,"total_committers":1,"mean_commits":10.0,"dds":0.0,"last_synced_commit":"bcf73e6d01ac3f6cd8f6a7401c3efb5474de9f33"},"previous_names":["sandyjmacdonald/project-id-creator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sandyjmacdonald/project-id-creator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandyjmacdonald%2Fproject-id-creator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandyjmacdonald%2Fproject-id-creator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandyjmacdonald%2Fproject-id-creator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandyjmacdonald%2Fproject-id-creator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sandyjmacdonald","download_url":"https://codeload.github.com/sandyjmacdonald/project-id-creator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sandyjmacdonald%2Fproject-id-creator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28585518,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T20:45:59.482Z","status":"ssl_error","status_checked_at":"2026-01-19T20:45:41.500Z","response_time":67,"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":["bun","cloudflare-workers","hono"],"created_at":"2024-09-25T18:29:25.486Z","updated_at":"2026-01-19T21:33:35.979Z","avatar_url":"https://github.com/sandyjmacdonald.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"This simple web app generates project IDs that fit our University of York Bioscience TF Data Science Hub project ID schema, e.g. P2024-CRD-WXYZ for a 2024 project for someone with the initials CRD. The four-character alphabetical suffix is randomly generated to hopefully make each project ID unique.\n\nBoth a web UI and API endpoints are available.\n\nThe app is written with [Hono](https://hono.dev) and styled with [Tailwind CSS](https://tailwindcss.com) and deployed to [Cloudflare Workers](https://developers.cloudflare.com/workers/). My version can be accessed here - [https://project-id-creator.sandyjmacdonald.workers.dev](https://project-id-creator.sandyjmacdonald.workers.dev) - or you can follow the instructions below to deploy your own version.\n\n## How to deploy locally, or to Cloudflare Workers\n\n1. Set up a Cloudflare account: [https://dash.cloudflare.com/sign-up](https://dash.cloudflare.com/sign-up)\n2. Install node.js/npm\n3. `git clone https://github.com/sandyjmacdonald/project-id-creator`\n4. `cd project-id-creator`\n5. `npm install`\n6. Install Bun: `curl -fsSL https://bun.sh/install | bash`\n\nTo test locally:\n\n`bun run dev`\n\nTo deploy your own version to Cloudflare Workers:\n\n`bun run deploy`\n\n## Web UI usage\n\n![Web UI screenshot](web-ui.png)\n\nTo use the web UI, simply enter a valid three-character user ID into the form field and a PYYYY prefix and random four-letter suffix will be generated. \n\nThe user ID form field will turn green for a valid user ID or red for an invalid one.\n\nTo copy the generated project ID to your clipboard (if the project ID is valid), click the paste button on the far right.\n\nThe regenerate button to the right of the suffix regenerates the suffix.\n\n## API endpoints\n\nThree API endpoints are provided to allow project IDs, prefixes, and suffixes to be generated programmatically.\n\nThe base URL for all of the endpoints is `/api/v1/` and all (of the current routes) accept GET requests.\n\nValid API responses will have a `200` response code.\n\n### `/api/v1/prefix`\n\nTo generate a prefix:\n\n```bash\ncurl -s https://project-id-creator.sandyjmacdonald.workers.dev/api/v1/prefix\n\n{\"prefix\":\"P2024\"}\n```\n\n### `/api/v1/suffix`\n\nTo generate a suffix:\n\n```bash\ncurl -s https://project-id-creator.sandyjmacdonald.workers.dev/api/v1/suffix\n\n{\"suffix\":\"ADQX\"}\n```\n\n### `/api/v1/project-id/{UID}`\n\nTo generate a project ID, use the `/api/v1/project-id/` route and append a valid three-character user ID:\n\n```bash\ncurl -s https://project-id-creator.sandyjmacdonald.workers.dev/api/v1/project-id/CRD\n\n{\"project_id\":\"P2024-CRD-VTZB\"}\n```\n\nA `400` response will be returned if the user ID provided is not valid.\n\nA valid user ID is either three letters, or two letters followed by an integer number from 1 to 9.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandyjmacdonald%2Fproject-id-creator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsandyjmacdonald%2Fproject-id-creator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsandyjmacdonald%2Fproject-id-creator/lists"}