Social Conferencing With Video
By David Nimon
Social platform with video conferencing
An extensive social media platform, with friends, messaging system, groups and a personal profile that is managed with a custom drag/drop editor. It has an easy to use and extensive video conferencing feature set, using the browser, desktop and mobile apps.
Details:
- Built original version for client several years ago using Flash framework, along with a PHP and Adobe Flash Media Server backend, while also supporting the open source Red5 video server
- Created a new version built with Angular frontend, Node backend, Postgres database, Ionic Framework for mobile and desktop apps, and OpenVidu server leveraging WebRTC for the video conferencing
- Created a theming engine for the frontend, separating the logic of the page from it’s presentation. This was used so that browser and mobile could share logic but have different user interfaces (bootstrap and angular material for desktop, Ionic Framework for mobile and desktop)
- Created an industry unique capability for video conferences to share documents and/or on-demand video streams resulting in higher quality with lower bandwidth demand compared to typical desktop sharing (desktop sharing was also included as a feature)
- Ionic Framework was used to build mobile and desktop apps, using that framework’s user interface modules and build process - supported sharing interface logic between desktop, mobile, and browser environments leading to much faster development cycles compared to full native applications
- Created mobile browser integration to support launching the app directly into a conference
- Created an Express JSON API subsystem, with support for running longer running functions, such as document conversion and email/SMS messaging using an AWS Lambda job technique
- Integrated ffmpeg for converting the videos into a common format and extracting screenshots, storing the results in an AWS S3 bucket
- Created a Docker Compose environment for all of the services required to run the project, which was used in Amazon EC2 instances for development and production
The result of this work provided a full featured implementaion that supported all platforms (browser, mobile, and desktop). The browser based version supported full functionality on the mobile and desktop platforms without requiring installation of dedicated applications.
The project also:
- Supported large scale, fault-tolerant AWS EC2, RDS, S3 deployments
- Used Elastic and Logstash open source EC2 deployments
- Automated the AWS deployments using tools like Terraform and GitHub Actions to promote CI/CD
- Supported the document and file sharing features with document and media auto conversion processes