A video converter made with Laravel, VueJs, Tailwind and Soketi due to study.
https://github.com/KayckMatias/zconverter/assets/48569093/a7188ab5-b8c9-4ebc-ae82-ecb3e3e9627f
Installation is very easy, like any Laravel project, just follow the steps:
composer i
npm i
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan db:seed
npm run prod
php artisan serve
php artisan queue:work --queue=downloader --timeout=0
php artisan queue:work --queue=converter --timeout=0
php artisan queue:work
Converter and Downloader queue uses timeout 0 because can exceed default 60 seconds limit.
Default mail: admin@admin.com
Default pass: password
This is a project for study or personal use, not intended for production.
In the future I will implement an automatic cleaning system to clean X files every X hours.
The download links were thought to be shareable with whoever the author wants, so there is no authentication in them, however, there are 3 levels of entropy (a uuid file, the uniqId in addition with file original name and a sha256 signature route), there is still the question of the ID of the conversation, making it impossible for any external person to access unless the author sends the link.
The initial intention was to be my first project in VueJS starting from 0, but I also saw an opportunity to learn about sockets. So I decided to build a video converter since it was possible to integrate the two in a meaningful way, in addition to learning and reinforcing several other things, such as using FFMpeg, queues in Laravel, entropy of links, etc.