{"id":21574892,"url":"https://github.com/jonathanlb/cat-wrangler-v2","last_synced_at":"2025-06-19T07:09:13.489Z","repository":{"id":166130852,"uuid":"469208372","full_name":"jonathanlb/cat-wrangler-v2","owner":"jonathanlb","description":"reworking of cat-wrangler rsvp system backend","archived":false,"fork":false,"pushed_at":"2024-10-15T14:46:12.000Z","size":632,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T06:48:11.472Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/jonathanlb.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":"2022-03-12T21:52:04.000Z","updated_at":"2024-10-15T14:48:39.000Z","dependencies_parsed_at":"2024-05-06T17:29:21.125Z","dependency_job_id":"6be9c779-3964-4403-ae69-8cf63a36fd28","html_url":"https://github.com/jonathanlb/cat-wrangler-v2","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/jonathanlb/cat-wrangler-v2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanlb%2Fcat-wrangler-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanlb%2Fcat-wrangler-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanlb%2Fcat-wrangler-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanlb%2Fcat-wrangler-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonathanlb","download_url":"https://codeload.github.com/jonathanlb/cat-wrangler-v2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanlb%2Fcat-wrangler-v2/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260705893,"owners_count":23049494,"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","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-24T12:11:34.556Z","updated_at":"2025-06-19T07:09:08.479Z","avatar_url":"https://github.com/jonathanlb.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Installation\n\n### Node dependencies\n\nRunning `npm i` will download and nominally install all the dependencies.\n[sqlite3](https://www.npmjs.com/package/sqlite3) installation can be tricky.\nRunning the unit tests with `npm t` will trigger a failure with sqlite3 if there is a problem.\n\nYou can build sqlite3 from source with\n\n```\nnpm --build-from-source install sqlite3\n```\n\n### .env file\nCreate and edit an `.env` file to load server environment variables.\nThe `sample.env` file serves as a template.\n\n### Certificates\nCopy your CA, certificate, and key pem files the location specified in `.env`.\n\n### Start the server\n\n```\nnpm run build\nDEBUG='rsvp:*' nohup npm run start \u0026\n```\n\n## Administration\n\n### Creating an Event\n\nThe `npm run build` script compiles a `dist/createEvent.js` node script that\ncan insert a new event from a JSON file into the database with usage:\n\n```\nDEBUG='*' node dist/createEvent data/sample-event.json data/rsvps.sqlite\n```\n\nWhere the event configuration is JSON in the form of\n```\n{\n   \"name\": \"Extravaganza\",\n   \"venue\": 37,\n   \"description\": \"# Best Test Event Evuh\\nRSVP or ....\",\n   \"dateTimes\": [\n     { \"yyyymmdd\": \"2018-12-01\", \"hhmm\": \"8:39\", \"duration\": \"45m\" },\n     { \"yyyymmdd\": \"2018-12-01\", \"hhmm\": \"9:06\", \"duration\": \"45m\" }\n   ]\n}\n```\nYou can optionally specify a `dateTime` field in the form of the index of the\npossible `dateTimes` to limit users' choices to one.\nThe JSON configuration is only lightly typechecked.\n\nYou may omit the SQLite file option and use the configuration from [`.env`](sample.env), the `RSVPS_SQLITE` environment varibale, or the default\n`data/rsvps.sqlite`.\n\n### Deleting an Event\n\n```\nDEBUG='*' node dist/deleteEvent \u003cevent-id\u003e data/rsvps.sqlite\n```\n\nTODO: fuzzy select by event title string\n\n## Updates to V2\n- Move to Typescript.\n- Intercept (clean up) authentication with `Express.Application.use()`.\n- Use Cognito authentication.\n- Update SQLite access to supported Promise wrapper.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanlb%2Fcat-wrangler-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanlb%2Fcat-wrangler-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanlb%2Fcat-wrangler-v2/lists"}