Skip to content

Latest commit

 

History

History
48 lines (48 loc) · 3.16 KB

README.md

File metadata and controls

48 lines (48 loc) · 3.16 KB

Welcome to Zoom Events

This is a platform for hosting and attending online events via Zoom. With Zoom Events, users can purchase tickets to attend events and participate online, or host their own events and sell tickets. Additionally, event hosts can sell recordings of their events after they have taken place.

Tech Stack

  • NextJS
  • NestJS
  • Nginx
  • Postgres
  • Digital Ocean
  • Cloudinary
  • Sendgrid
  • Docker
  • Domain(deactivated): Google Domain https://evenity.page

Features

  • Host and attend online events via Zoom
  • Purchase tickets to attend events
  • Host your own events and sell tickets
  • Sell recordings of events after they have ended

Getting Started

To get started with Zoom Events, you will need to sign up for an account. Once you have an account, you can start hosting or attending events.

Support

Reference to Zoom SDK: https://marketplace.zoom.us/docs/sdk/native-sdks/introduction/

Reference to Zoom API: https://marketplace.zoom.us/docs/api-reference/zoom-api/

Overview

The application consists of several services, including a PostgreSQL database (postgres), a Redis cache (redis), a frontend client (frontend), a core API (core-api), a payment service (payment), a Zoom integration service (zoom), and a web server (webserver). The certbot service is used for managing SSL/TLS certificates for the application.

The web application is built using NextJS and NestJS, and is served using Nginx. The database is Postgres, and the application is hosted on Digital Ocean. Cloudinary is used for storing and serving media, and Sendgrid is used for sending emails. The application is containerized using Docker.

To start the application, run docker-compose up in the root directory of the project. This will build and start all of the necessary services. The frontend client will be available on port 8080, and the core API will be available on port 3000. The web server will be available on ports 80 and 443, and will serve the frontend client and proxy requests to the core API.

Handling Zoom Record

Event -> Zoom Cloud: Record event Zoom Cloud -> Zoom Webhook: Send notification to API domain Zoom Webhook -> API Domain: Send notification (with TLS certificate) API Domain -> Zoom Module: Request to download event Zoom Module -> API Domain: Download event API Domain -> Cloudinary Module: Send notification (TCP) to upload event Cloudinary Module -> Cloudinary: Upload event Cloudinary -> Cloudinary Webhook: Send notification to server Cloudinary Webhook -> Server: Send notification Server -> Zoom Module: Request to delete event Zoom Module -> Server: Delete event