{"id":21319467,"url":"https://github.com/zoom/sample-registration-app","last_synced_at":"2025-07-12T04:31:52.050Z","repository":{"id":44711506,"uuid":"453315244","full_name":"zoom/sample-registration-app","owner":"zoom","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-15T21:04:33.000Z","size":436,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":9,"default_branch":"main","last_synced_at":"2024-10-17T07:49:40.077Z","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":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zoom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-29T06:23:40.000Z","updated_at":"2024-10-15T21:04:33.000Z","dependencies_parsed_at":"2022-09-12T09:41:02.266Z","dependency_job_id":null,"html_url":"https://github.com/zoom/sample-registration-app","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fsample-registration-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fsample-registration-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fsample-registration-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fsample-registration-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoom","download_url":"https://codeload.github.com/zoom/sample-registration-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225795415,"owners_count":17525316,"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-21T19:42:01.559Z","updated_at":"2024-11-21T19:42:02.224Z","avatar_url":"https://github.com/zoom.png","language":"JavaScript","readme":"# Zoom Webinar Registration Sample\n\nUse of this sample app is subject to our [Terms of Use](https://zoom.us/docs/en-us/zoom_api_license_and_tou.html)\n\nThis application is an example of how you can use\nthe [Zoom API](https://marketplace.zoom.us/docs/api-reference/zoom-api)\nto create your own webinar registration app that stays within the\nZoom [Rate Limits](https://marketplace.zoom.us/docs/api-reference/rate-limits).\n\nIt's built using mostly standard HTML, CSS and JS with familiar packages such as:\n\n1. [Expressjs](https://expressjs.com/)\n2. [Handlebars](https://handlebarsjs.com/)\n3. [Bulma](https://bulma.io/)\n4. [In-memory MongoDB Server](https://github.com/nodkz/mongodb-memory-server)\n\n## Prerequisites\n\n1. A Zoom Account\n    1. [Pro Plan or higher](https://support.zoom.us/hc/en-us/articles/207278726-Plan-Types-)\n    2. [Webinar Add-on](https://support.zoom.us/hc/en-us/articles/200917029)\n2. The API Key and Secret from a [Zoom JWT App](https://marketplace.zoom.us/docs/guides/auth/jwt/)\n\nYou can follow [this guide](https://marketplace.zoom.us/docs/guides/build/jwt-app/) to create a JWT app with\nthe [Zoom Marketplace](https://marketplace.zoom.us/).\n\n## Installation\n\nTo get started clone the repo:\n\n```shell\ngit clone https://github.com/zoom/sample-registration-app.git\n```\n\nOnce cloned navigate to the `sample-registration-app` directory:\n\n```\ncd sample-registration-app\n```\n\n## Setup\n\nInstall the dependencies\n\n```\nnpm install\n```\n\n### Add Your Credentials\n\n1. Open the [.env](.env) file in the project root \n2. Replace the fields with **your API Key and API Secret** from\nthe [Zoom Marketplace](https://marketplace.zoom.us/)\n\n```text\nZM_KEY={{ YOUR API KEY HERE }}\nZM_SECRET={{ YOUR API SECRET HERE }}\n```\n\n## Start the Server\n\nAs the default database for this project lives in-memory each time you restart the server the database will be cleared.\nSee our section on\n[Configuring MongoDB](#configuring-mongodb)\n\n#### Development\n\nTo start the server in development mode run the NPM `dev` script. This will do the following:\n\n1. Send detailed logs to the server console and error pages\n2. Restart the server on changes to server files - this will clear the in-memory DB\n    1. To change this use a standard mongodb instance\n    2. or use `node` instead of `nodemon` for the `dev` script in [package.json](package.json)\n    3. or start the server using the `start` NPM script (see next section)\n\n```shell\nnpm run dev\n```\n\n#### Production\n\nYou can use the `start` script to run the server in production mode. This allows the app to run faster but it does not\nlog by default and does not watch for files changes.\n\n```shell\nnpm run start\n```\n\n## Usage\n\nNavigate to http://localhost:3000 to view the home page or go to `/r/:webinar_id` and the app will guide you through the\nregistration process.\n\nYou can change the port the server uses in your .env file:\n\n```shell\nZM_KEY=...\nZM_SECRET=...\nPORT=8080\n```\n\n## Deployment\n\nYou can deploy this app on any service that allows you to host dynamic Node.js apps:\n\n1. [Heroku](https://devcenter.heroku.com/articles/deploying-nodejs)\n2. [Google Cloud](https://cloud.google.com/run/docs/quickstarts/build-and-deploy/nodejs)\n3. [AWS](https://aws.amazon.com/getting-started/hands-on/deploy-nodejs-web-app/)\n\n### Configuring MongoDB\n\nThis app uses an in-memory instance of MongoDB to ensure the project is easy to set up. Out of the box, you don't need\nto do anything.\n\nIf you want to use a real instance of MongoDB, all you need to do is:\n\n1. Remove the references to `mongo-memory-server` found in\n    1. The beginning of [server/index.js](server/index.js)\n    2. The dependencies in [package.json](package.json)\n2. Provide `mongoose.connect()` with your connection string in [server/index.js](server/index.js).\n\n## Contribution\n\nPlease send pull requests and issues to this project for any issues or suggestions that you have!\n\n### Code Style\n\nThis project uses eslint to protect against coding errors along with a pre-commit git hook to ensure files pass linting prior\nto commit. A code style isn't enforced but the project is compatible with [prettier](prettier.io).\n\nYou can run `npm run lint` to see the linter errors directly or your can use `npm run lint-fix` to have eslint try to\nfix the issues for you. Most IDEs can also automatically fix linter errors as you save.\n\n### Testing\n\nAt this time there are no e2e or unit tests. I encourage you to create a pull request adding tests! I\nhear [Cypress](https://www.cypress.io/) is a great project :)\n\n## Need help?\n\nIf you're looking for help, try [Developer Support](https://devsupport.zoom.us) or\nour [Developer Forum](https://devforum.zoom.us). Priority support is also available\nwith [Premier Developer Support](https://zoom.us/docs/en-us/developer-support-plans.html) plans.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoom%2Fsample-registration-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoom%2Fsample-registration-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoom%2Fsample-registration-app/lists"}