Review starter codebase
This is an overview of the starter codebase for the Zoom Chatbot application. You will explore the project's folder and file structure, including the main server entry point, route handlers for webhooks, OAuth, and messaging, as well as utility modules for Zoom API interactions, authentication, and AI integration with Anthropic's Claude.
Folder and file structure
The following table provides an overview of the app's folder and file structure:
| Path | Description |
|---|---|
server.js | The main entry point for the Express application. It loads environment variables, configures middleware (CORS, JSON parsing), mounts all routes, and starts the HTTP server. |
routes/webhookRoutes.js | Handles incoming Zoom webhook events, such as messages, reactions, and slash commands. It verifies the webhook signature or token before processing the event. |
routes/oauthRoutes.js | Handles OAuth flows and token exchanges for installing and authorizing the Zoom Chatbot or app. |
routes/messageRoutes.js | Provides REST API endpoints for sending or replying to Chat messages. This layer can be used by the frontend or API clients like Postman. |
utils/anthropic.js | Integrates with the Anthropic API (Claude). It manages both non-streaming and streaming AI responses, conversation history, and message parsing. |
utils/validation.js | Provides centralized input validation logic for incoming requests. It ensures that required parameters (such as to_jid and message) are present and correctly formatted. |
utils/zoom-chatbot-Auth.js | Handles Zoom Chatbot authentication and token generation. It caches and refreshes tokens securely using either Chatbot or Server-to-Server OAuth. |
utils/zoom-Api.js | Provides helper functions for interacting with Zoom APIs — sending, editing, deleting, or searching Chat messages. It encapsulates retry logic and error handling. |
views/index.html | The public landing page for the tutorial or demo application. It often includes a button to authenticate or deep-link into the Zoom client. |
views/dashboard.html | A secondary landing page displayed after authentication or installation. It provides deep-link buttons or dashboards that connect back to the Zoom Chatbot. |
.env | Stores environment variables such as Zoom credentials, Anthropic API keys, model names, and app configuration. Never commit this file to version control. |
package.json | Declares Node.js dependencies, scripts, and project metadata. It is used by npm or yarn to install and run the application. |
README.md | The primary documentation for the tutorial. It explains setup instructions, environment configuration, and the learning objectives of each section. |