GithubHelp home page GithubHelp logo

mlh-fellowship / zoomcord Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 1.0 828 KB

A bot to schedule Zoom meetings through Discord written in Julia.

License: MIT License

Dockerfile 1.03% Shell 5.23% Batchfile 6.92% Julia 86.81%
julia zoom discord bot

zoomcord's Introduction

Idea

Streamline your entire workflow through Discord. Easily start a meeting and share the link with every using the "/zoom" slash command. Schedule meetings and view your upcoming meetings directly in the Discord channel. Additionally get a meeting summary and know exactly when someone joined or left the meeting.

  • Start or join Zoom Meetings with one command.
  • See real-time how long the Zoom Meeting has been running and its current status right in Discord.
  • Keep an eye on who joins or leaves your Zoom Meeting.
  • See the meeting and participant summary for your Zoom Meeting after it ends.

Example Command

Getting started

Prerequisites

  • Julia
  • Git

Clone

  • Clone this repo to your local machine.
$> git clone https://github.com/MLH-Fellowship/ZoomCord.git

Setup Genie server

  • Setup Julia environment. This will install all required dependencies and exit.
$> julia
julia> ]activate .
julia> exit()
  • Generate a secrets file for signing and encrypting sensitive Genie data.
julia> Genie.REPL.write_secrets_file()
  • Start Genie server
$> bin/server
  • Visit HOST:PORT/start/ URL on your browser to start Discord bot.

Access the app on http://localhost:8000

OAuth Workflow

The first time you use the Zoom slash command in Discord, you will be asked to login to Zoom (if you are not already logged in) and approve the app's access to Zoom.

Zoom uses OAuth to allow an application to access user-authenticated data for use with third party applications which ZoomCord uses to create meetings and provide other features. The process is somewhat complex and is detailed in the image below:

Workflow

Note: The application is using JWT workflow until it is approved manually by Zoom.

Technology Stack

  • Zoom API : API used to communicate with Zoom.
  • Discord.jl : Package to interact with Discord's API.
  • Julia : High level programming language for numerical analysis and computational sciences.
  • Genie.jl: The highly productive Julia web framework.

Contributors:

License

The project is MIT licensed.

zoomcord's People

Contributors

diaga avatar abhishalya avatar makrandr1999 avatar

Stargazers

Parth Parikh avatar

Watchers

James Cloos avatar  avatar  avatar

Forkers

simrit1

zoomcord's Issues

Redirect webpage

  • A webpage(HTML/CSS) that confirms that the user has successfully authorised the application.

This will be served when zoom redirects the user to our callback URI.

implement bot commands

  • Check if the bot has been tagged.

  • Create a dictionary (key : value) of commands with their usage.

  • Try out embedded cards.

Create a test discord bot

  • Checkout Discord.jl and Discord docs.

  • Create a test server.

  • Invite everyone and set up the bot on the test server.

Create a Genie.jl app

We will need a backend to persist user authorisation information along with providing endpoints to receive events from Zoom API.

Genie.jl

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.