https://github.com/mariam-elsarag/zoom-integration
A meeting website that integrates Zoom and allows users to log in either with a regular account or via Google.
https://github.com/mariam-elsarag/zoom-integration
agenda authentication express jwt meeting mongodb nodejs nodemailer nodemon oauth2 react tailwindcss typescript zoom-meetings
Last synced: 24 days ago
JSON representation
A meeting website that integrates Zoom and allows users to log in either with a regular account or via Google.
- Host: GitHub
- URL: https://github.com/mariam-elsarag/zoom-integration
- Owner: mariam-elsarag
- Created: 2025-04-04T07:14:06.000Z (29 days ago)
- Default Branch: main
- Last Pushed: 2025-04-08T06:08:00.000Z (25 days ago)
- Last Synced: 2025-04-09T17:16:09.890Z (24 days ago)
- Topics: agenda, authentication, express, jwt, meeting, mongodb, nodejs, nodemailer, nodemon, oauth2, react, tailwindcss, typescript, zoom-meetings
- Language: TypeScript
- Homepage:
- Size: 32 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
Awesome Lists containing this project
README
# Zoom Integration
## ๐ Overview
**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.
This project contains both the **backend** and **frontend** components:
- **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.
- **Backend**: A robust Express server using MongoDB (Mongoose), JWT authentication, and Zoom OAuth integration.## โจ Features
- **User Authentication**: Log in via a regular account or using Google OAuth.
- **Zoom Integration**: Create and manage Zoom meetings directly from the app.
- **Responsive Design**: Tailored for both desktop and mobile views.
- **Notifications**: Real-time feedback to the users with React-Toastify.## ๐ Tech Stack
### ๐ Frontend:
- **React**
- **TypeScript**
- **Tailwind CSS**
- **React-Toastify**### ๐ป Backend:
- **Express.js**
- **MongoDB & Mongoose**
- **Passport.js & Google OAuth2**
- **JWT**
- **Multer**
- **Zoom API Integration**## ๐ API Documentation
You can access the full API documentation via Postman using the link below ๐:
๐ [View API Docs on Postman](https://documenter.getpostman.com/view/39898064/2sB2cU9hVn)
## ๐งช Environment Variables
The backend application requires the following environment variables to be set in your `.env` file:
```env
NODE_ENV="production"
PORT=8000# Database Configuration
DATABASE=""
DATABASE_PASSWORD=""# Google OAuth Configuration
GOOGLE_CLIENT_ID=""
GOOGLE_CLIENT_SECRET_KEY=""
GOOGLE_CALLBACK_URL="http://localhost:8000/api/auth/google/callback"# Frontend Server URL
FRONT_SERVER_URL="http://localhost:5173"# Zoom API Integration
ZOOM_ACCOUNT_ID=""
ZOOM_CLIENT_ID=""
ZOOM_CLIENT_SECRET=""
ZOOM_REDIRECT_URI="http://localhost:8000/api/zoom/callback"# JWT Configuration
JWT_SECRET_KEY=""
JWT_EXPIRE_IN="15d"
```## ๐ Tech Setup
### ๐ Running the Backend
To 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.
In the `package.json`, the following script is used:
```json
"scripts": {
"start": "nodemon --env-file .env ./server/server.js"
}
```### ๐ง Installing **nodemon** Globally
If **nodemon** is not installed globally on your machine, you can install it using the following command:
```bash
npm install -g nodemon
```