https://github.com/bryanmylee/meetwhen-store
The data store for all meetwhen.io events.
https://github.com/bryanmylee/meetwhen-store
firebase graphql meetings meetups scheduler
Last synced: 6 months ago
JSON representation
The data store for all meetwhen.io events.
- Host: GitHub
- URL: https://github.com/bryanmylee/meetwhen-store
- Owner: bryanmylee
- Created: 2021-06-23T16:13:35.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2021-12-06T09:35:53.000Z (almost 4 years ago)
- Last Synced: 2025-04-05T01:33:47.525Z (6 months ago)
- Topics: firebase, graphql, meetings, meetups, scheduler
- Language: TypeScript
- Homepage: https://meetwhen.io
- Size: 270 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# meetwhen-store

The data store for all [meetwhen.io](https://meetwhen.io) events.
## Developing
Install `firebase-tools` with:
```bash
npm i -g firebase-tools
```Then, the local emulator can be started with `firebase emulators:start`. For continuous development, use `npm run dev` from within `functions/`.
The local endpoint is available at `http://localhost:5001/meetwhen-store/asia-east2/api/graphql`.
## Deploying
To deploy, use `npm run deploy` from within `functions/` or run the Github action.
The deployed endpoint is available at `https://asia-east2-meetwhen-store.cloudfunctions.net/api/graphql`.
## Organization
### Project structure
`functions/src/index.ts` serves as the entrypoint for the application.
Source 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/`.
### Types
Class and interface names follow a certain convention for readability. Given the `Meeting` concern:
- `Meeting` defines the GraphQL schema type.
- `MeetingEntry` defines the Firestore document type.
- Although each entry does not canonically have an `id` field in the database, we assign the document ID as `id`.