Hasathcharu Logo
2021 - 2023

Zoom Meetings Portal

Updated on 24th April 2024

A simple meeting portal built with Next.js and Express.js.


Introduction

Meeting Portal Home Page

Meeting Portal Home Page

This portal syncs with my Zoom account and automatically updates whenever I create, start, stop, or delete a meeting. When a meeting is created, I as the host can assign it a shortened public URL. This shows the live status including the real-time participant count of the meeting, and anyone can join the meeting by clicking the join button.

Meeting Portal Join Meeting

Meeting Portal Join Meeting

Moreover, frequent users can also create an account and view all of their meetings assigned to them on the dashboard, and as an administrator, I can assign and unassign meetings to users. This dashboard also shows the live status of the meetings including the real-time participant count of the currently live meeting.

Meeting Portal User Dashboard

Meeting Portal User Dashboard

You can see a demo of the project in the below video.

Methodology

This project was built with Next.js and Express.js. The frontend is built with Next.js and the backend is built with Express.js. Both the web application and the REST API were hosted on a VPS. The database used is MySQL.

I have created a WebHook in Zoom that sends a POST request to the REST API whenever a meeting is created, started, stopped, or deleted. The REST API then updates the database accordingly. The frontend then fetches the data from the REST API and displays it to the user. For authentication, I have used JWT tokens. The frontend and the backend are hosted on the same server, so CORS was not an issue.

For SSL, I used Cloudflare to proxy all the requests to the server. Cloudflare provides a free SSL certificate, so I didn't have to worry about that.

Initially, this project was built with HTML, CSS, JavaScript and PHP. Then I learned Node.js and Express.js so I decided to rebuild the project. Ultimately, I also decided to use Next.js for the frontend because it is a very powerful framework and it is very easy to use.

Final Thoughts

I believe that I was able to learn a lot about web development in common and helped me understand important concepts like Webhooks, REST APIs etc. Moreover, as this project originally was built with simple HTML and PHP, I was able to learn a lot about how to build a web application from scratch. Progressing through different versions, from a monolithic PHP application to a modern web application with a totally separated frontend and backend, I was able to learn how modern web applications work.

© 2024 Haritha Hasathcharu
Hasathcharu Logo