{"id":27009605,"url":"https://github.com/mariam-elsarag/Node-zoom-integration","last_synced_at":"2025-12-30T20:02:51.262Z","repository":{"id":287036111,"uuid":"960289027","full_name":"mariam-elsarag/Zoom-integration","owner":"mariam-elsarag","description":"A meeting website that integrates Zoom and allows users to log in either with a regular account or via Google.","archived":false,"fork":false,"pushed_at":"2025-04-08T06:08:00.000Z","size":33589,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-09T17:16:09.890Z","etag":null,"topics":["agenda","authentication","express","jwt","meeting","mongodb","nodejs","nodemailer","nodemon","oauth2","react","tailwindcss","typescript","zoom-meetings"],"latest_commit_sha":null,"homepage":"","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/mariam-elsarag.png","metadata":{},"created_at":"2025-04-04T07:14:06.000Z","updated_at":"2025-04-08T06:08:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/mariam-elsarag/Zoom-integration","commit_stats":null,"previous_names":["mariam-elsarag/zoom-integration"],"tags_count":null,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariam-elsarag%2FZoom-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariam-elsarag%2FZoom-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariam-elsarag%2FZoom-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mariam-elsarag%2FZoom-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mariam-elsarag","download_url":"https://codeload.github.com/mariam-elsarag/Zoom-integration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248074921,"owners_count":21043490,"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":["agenda","authentication","express","jwt","meeting","mongodb","nodejs","nodemailer","nodemon","oauth2","react","tailwindcss","typescript","zoom-meetings"],"created_at":"2025-04-04T10:17:52.397Z","updated_at":"2025-12-30T20:02:51.225Z","avatar_url":"https://github.com/mariam-elsarag.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Zoom Integration\n\n## 📋 Overview\n\n**Zoom Integration** is a web application that seamlessly integrates Zoom, enabling users to log in either with a regular account or through Google OAuth. It offers functionalities for managing Zoom meetings, authenticating users, and creating a smooth user experience.\n\nThis project contains both the **backend** and **frontend** components:\n\n- **Frontend**: A modern React app built with TypeScript, styled using Tailwind CSS, and provides a seamless user experience with the help of React-Toastify for notifications.\n- **Backend**: A robust Express server using MongoDB (Mongoose), JWT authentication, and Zoom OAuth integration.\n\n## ✨ Features\n\n- **User Authentication**: Log in via a regular account or using Google OAuth.\n- **Zoom Integration**: Create and manage Zoom meetings directly from the app.\n- **Responsive Design**: Tailored for both desktop and mobile views.\n- **Notifications**: Real-time feedback to the users with React-Toastify.\n\n## 📌 Tech Stack\n\n### 🌐 Frontend:\n\n- **React**\n- **TypeScript**\n- **Tailwind CSS**\n- **React-Toastify**\n\n### 💻 Backend:\n\n- **Express.js**\n- **MongoDB \u0026 Mongoose**\n- **Passport.js \u0026 Google OAuth2**\n- **JWT**\n- **Multer**\n- **Zoom API Integration**\n\n## 📚 API Documentation\n\nYou can access the full API documentation via Postman using the link below 👇:\n\n🔗 [View API Docs on Postman](https://documenter.getpostman.com/view/39898064/2sB2cU9hVn)\n\n## 🧪 Environment Variables\n\nThe backend application requires the following environment variables to be set in your `.env` file:\n\n```env\nNODE_ENV=\"production\"\nPORT=8000\n\n# Database Configuration\nDATABASE=\"\"\nDATABASE_PASSWORD=\"\"\n\n# Google OAuth Configuration\nGOOGLE_CLIENT_ID=\"\"\nGOOGLE_CLIENT_SECRET_KEY=\"\"\nGOOGLE_CALLBACK_URL=\"http://localhost:8000/api/auth/google/callback\"\n\n# Frontend Server URL\nFRONT_SERVER_URL=\"http://localhost:5173\"\n\n# Zoom API Integration\nZOOM_ACCOUNT_ID=\"\"\nZOOM_CLIENT_ID=\"\"\nZOOM_CLIENT_SECRET=\"\"\nZOOM_REDIRECT_URI=\"http://localhost:8000/api/zoom/callback\"\n\n# JWT Configuration\nJWT_SECRET_KEY=\"\"\nJWT_EXPIRE_IN=\"15d\"\n```\n\n## 🛠 Tech Setup\n\n### 🚀 Running the Backend\n\nTo run the backend server, I used **nodemon** to automatically restart the server during development whenever file changes are made. Additionally, **nodemon** is configured to read environment variables from the `.env` file to manage different configurations for the backend.\n\nIn the `package.json`, the following script is used:\n\n```json\n\"scripts\": {\n  \"start\": \"nodemon --env-file .env ./server/server.js\"\n}\n```\n\n### 🔧 Installing **nodemon** Globally\n\nIf **nodemon** is not installed globally on your machine, you can install it using the following command:\n\n```bash\nnpm install -g nodemon\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariam-elsarag%2FNode-zoom-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmariam-elsarag%2FNode-zoom-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmariam-elsarag%2FNode-zoom-integration/lists"}