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:

PathDescription
server.jsThe 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.jsHandles incoming Zoom webhook events, such as messages, reactions, and slash commands. It verifies the webhook signature or token before processing the event.
routes/oauthRoutes.jsHandles OAuth flows and token exchanges for installing and authorizing the Zoom Chatbot or app.
routes/messageRoutes.jsProvides 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.jsIntegrates with the Anthropic API (Claude). It manages both non-streaming and streaming AI responses, conversation history, and message parsing.
utils/validation.jsProvides 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.jsHandles Zoom Chatbot authentication and token generation. It caches and refreshes tokens securely using either Chatbot or Server-to-Server OAuth.
utils/zoom-Api.jsProvides helper functions for interacting with Zoom APIs — sending, editing, deleting, or searching Chat messages. It encapsulates retry logic and error handling.
views/index.htmlThe 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.htmlA secondary landing page displayed after authentication or installation. It provides deep-link buttons or dashboards that connect back to the Zoom Chatbot.
.envStores environment variables such as Zoom credentials, Anthropic API keys, model names, and app configuration. Never commit this file to version control.
package.jsonDeclares Node.js dependencies, scripts, and project metadata. It is used by npm or yarn to install and run the application.
README.mdThe primary documentation for the tutorial. It explains setup instructions, environment configuration, and the learning objectives of each section.