This FastAPI server provides endpoints to manage and track participants of a Zoom meeting. It offers functionalities to monitor participants who are waiting to join the meeting and those who have already joined.
- Python 3.8 or newer
- FastAPI
- Uvicorn
-
Clone the repository:
git clone https://github.com/ksylvan/Zoom_OPM cd Zoom_OPM
-
Create a virtual environment
On the Mac, the easiest way to do thi is using the
uv
tool.curl -LsSf https://astral.sh/uv/install.sh | sh uv venv .venv
The output will look like this:
Using Python 3.12.3 interpreter at: /opt/homebrew/opt/[email protected]/bin/python3.12 Creating virtualenv at: .venv/zoom Activate with: source .venv/zoom/bin/activate
-
Install the required packages
source .venv/zoom/bin/activate uv pip install -r backend/requirements.txt
-
Activate the virtual environment
source .venv/zoom/bin/activate
-
Run the FastAPI server:
python3 backend/server.py
The server will start on http://localhost:5000
You can also see the auto-generated Swagger style interactive documentation at http://localhost:5000/doc or ReDoc style page at http://localhost:5000/redoc. See the Fast API Documentation for more information.
- URL:
/waiting
- Method:
GET
- Response: Dictionary of participants waiting to join with their first and last seen timestamps.
- URL:
/waiting
- Method:
PUT
- Request Body:
name
of the participant (as JSON) - Response: Updated participant details with their first and last seen timestamps.
- URL:
/joined
- Method:
GET
- Response: Dictionary of participants who have joined the meeting with their first and last seen timestamps.
-
URL:
/joined
-
Method:
PUT
-
Request Body:
name
of the participant (as JSON) -
Response: Updated participant details with their first and last seen timestamps.
-
URL:
/joined_list
-
Method:
PUT
-
Request Body:
names
of the participant (as JSON) -
Response: Updated participant details with their first and last seen timestamps.
-
URL:
/waiting
-
Method:
PUT
-
Request Body:
name
of the participant (as JSON) -
Response: Updated participant details with their first and last seen timestamps.
-
URL:
/waiting_list
-
Method:
PUT
-
Request Body:
names
of the participant (as JSON) -
Response: Updated participant details with their first and last seen timestamps.
- URL:
/reset
- Method:
POST
- Response: Confirmation message indicating the database has been reset.
Note: This method also copies the zoom_meeting.db
file to zoom_meeting-YYYYMMDD-HHMMSS.db
before resetting the database.
- URL:
/cmd_roster
- Method:
POST
- Response: Run the
zoom-manager roster
command.
- URL:
/cmd_hands
- Method:
POST
- Response: Run the
zoom-manager hands
command.
- URL:
/cmd_admit
- Method:
POST
- Response: Run the
zoom-manager admit
command.
- URL:
/health
- Method:
GET
- Response: Returns a JSON object containing python version, fastpai version, and the current datetime.
- URL:
/env
- Method:
GET
- Response: Returns a JSON object containing all the environment variables. This is useful for seeing if
the
ZOOM_RENAME_FILE
environment variable is set up (so auto-renaming of participants will work).
This software is provided under the MIT License. See the provided LICENSE file for details.