Open georoot opened 6 years ago
I did progress bar with polling. Haven't really implemented login stuff and a complete user interface for remembering state between refreshes and to allow adding videos to queue for conversion etc
You plan on using vanilla js or a complete SPA framework for the interface side ?
I don't know SPA libraries so much to implement a complete front end app. I just know some good amount of back end and I tried to do more of that only in this project. And I don't plan to maintain this project. If I did front end dev, I would have implemented a SPA mostly, as a PWA (with caching especially, for fast loading) and then I would have implemented authentication. And this is more like a single user application. If many people want to use it in a large scale, I haven't coded it in a scalable manner, but horizontal scaling can be done with little code changes, Docker, Kubernetes and stuff. There's a web app to interact with client and a worker module to do the conversion process. Currently, the web app calls the worker module, instead, we can run the worker code in a completely separate machine or container and the app will still work as the communicate through RabbitMQ. So, having many applications and workers and a single RabbitMQ and single Redis should make this quite scalable. But to get the most performance, we have to do some optimisations I guess
It might be a good idea to render progress of video download and conversion along with other details like queue priority number on user interface side. The same can be done using
websockets
. maybe socket.io for the sake of simplicity.