{"id":16225892,"url":"https://github.com/bryanmylee/meetwhen-store","last_synced_at":"2026-05-01T23:38:03.325Z","repository":{"id":108419049,"uuid":"379662002","full_name":"bryanmylee/meetwhen-store","owner":"bryanmylee","description":"The data store for all meetwhen.io events.","archived":false,"fork":false,"pushed_at":"2021-12-06T09:35:53.000Z","size":276,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-28T18:41:16.420Z","etag":null,"topics":["firebase","graphql","meetings","meetups","scheduler"],"latest_commit_sha":null,"homepage":"https://meetwhen.io","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/bryanmylee.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":"2021-06-23T16:13:35.000Z","updated_at":"2021-12-06T09:38:19.000Z","dependencies_parsed_at":"2023-05-31T04:45:31.947Z","dependency_job_id":null,"html_url":"https://github.com/bryanmylee/meetwhen-store","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bryanmylee/meetwhen-store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanmylee%2Fmeetwhen-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanmylee%2Fmeetwhen-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanmylee%2Fmeetwhen-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanmylee%2Fmeetwhen-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bryanmylee","download_url":"https://codeload.github.com/bryanmylee/meetwhen-store/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bryanmylee%2Fmeetwhen-store/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32517230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["firebase","graphql","meetings","meetups","scheduler"],"created_at":"2024-10-10T12:46:48.991Z","updated_at":"2026-05-01T23:38:03.310Z","avatar_url":"https://github.com/bryanmylee.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# meetwhen-store\n\n![deploy](https://github.com/bryanmylee/meetwhen-store/actions/workflows/deploy.yml/badge.svg)\n\nThe data store for all [meetwhen.io](https://meetwhen.io) events.\n\n## Developing\n\nInstall `firebase-tools` with:\n\n```bash\nnpm i -g firebase-tools\n```\n\nThen, the local emulator can be started with `firebase emulators:start`. For continuous development, use `npm run dev` from within `functions/`.\n\nThe local endpoint is available at `http://localhost:5001/meetwhen-store/asia-east2/api/graphql`.\n\n## Deploying\n\nTo deploy, use `npm run deploy` from within `functions/` or run the Github action.\n\nThe deployed endpoint is available at `https://asia-east2-meetwhen-store.cloudfunctions.net/api/graphql`.\n\n## Organization\n\n### Project structure\n\n`functions/src/index.ts` serves as the entrypoint for the application.\n\nSource files are grouped by concerns e.g. for the `User` concern, the type definitions, service, repository, and resolver are stored together under `functions/src/user/`.\n\n### Types\n\nClass and interface names follow a certain convention for readability. Given the `Meeting` concern:\n\n- `Meeting` defines the GraphQL schema type.\n- `MeetingEntry` defines the Firestore document type.\n  - Although each entry does not canonically have an `id` field in the database, we assign the document ID as `id`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryanmylee%2Fmeetwhen-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbryanmylee%2Fmeetwhen-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbryanmylee%2Fmeetwhen-store/lists"}