diff --git a/laravel_app/app/Livewire/DownloadForm.php b/laravel_app/app/Livewire/DownloadForm.php
new file mode 100644
index 0000000..65d7546
--- /dev/null
+++ b/laravel_app/app/Livewire/DownloadForm.php
@@ -0,0 +1,59 @@
+loginUsingId(1);
+ $this->buttonText = __('Start');
+ }
+
+ public function start()
+ {
+ $this->buttonText = __('Downloading...');
+
+ // Commands to run
+ $projectFolder = base_path('../');
+
+ $command = [
+ sprintf('%srunpython.sh', $projectFolder ),
+ ];
+
+ // Convert commands array to a single string
+
+ $process = new Process($command);
+ $process->setTimeout(3600); // stel een geschikte timeout in
+ $process->start();
+
+ try {
+ $myOutput = [];
+ $process->wait(function ($type, $buffer) use (&$myOutput){
+ $this->stream(to: 'output', content: $buffer);
+ $myOutput[] = $buffer;
+ });
+ $this->output = collect($myOutput)->join('
');
+
+ } catch (ProcessFailedException $exception) {
+
+ logger('error', $exception->getMessage());
+ echo $exception->getMessage();
+ }
+ $this->buttonText = __('Done');
+ }
+
+
+
+
+ public function render()
+ {
+ return view('livewire.download-form');
+ }
+}
diff --git a/laravel_app/config/livewire.php b/laravel_app/config/livewire.php
new file mode 100644
index 0000000..cdce349
--- /dev/null
+++ b/laravel_app/config/livewire.php
@@ -0,0 +1,159 @@
+ 'App\\Livewire',
+
+ /*
+ |---------------------------------------------------------------------------
+ | View Path
+ |---------------------------------------------------------------------------
+ |
+ | This value is used to specify where Livewire component Blade templates are
+ | stored when running file creation commands like `artisan make:livewire`.
+ | It is also used if you choose to omit a component's render() method.
+ |
+ */
+
+ 'view_path' => resource_path('views/livewire'),
+
+ /*
+ |---------------------------------------------------------------------------
+ | Layout
+ |---------------------------------------------------------------------------
+ | The view that will be used as the layout when rendering a single component
+ | as an entire page via `Route::get('/post/create', CreatePost::class);`.
+ | In this case, the view returned by CreatePost will render into $slot.
+ |
+ */
+
+ 'layout' => 'layouts.app',
+
+ /*
+ |---------------------------------------------------------------------------
+ | Lazy Loading Placeholder
+ |---------------------------------------------------------------------------
+ | Livewire allows you to lazy load components that would otherwise slow down
+ | the initial page load. Every component can have a custom placeholder or
+ | you can define the default placeholder view for all components below.
+ |
+ */
+
+ 'lazy_placeholder' => null,
+
+ /*
+ |---------------------------------------------------------------------------
+ | Temporary File Uploads
+ |---------------------------------------------------------------------------
+ |
+ | Livewire handles file uploads by storing uploads in a temporary directory
+ | before the file is stored permanently. All file uploads are directed to
+ | a global endpoint for temporary storage. You may configure this below:
+ |
+ */
+
+ 'temporary_file_upload' => [
+ 'disk' => null, // Example: 'local', 's3' | Default: 'default'
+ 'rules' => null, // Example: ['file', 'mimes:png,jpg'] | Default: ['required', 'file', 'max:12288'] (12MB)
+ 'directory' => null, // Example: 'tmp' | Default: 'livewire-tmp'
+ 'middleware' => null, // Example: 'throttle:5,1' | Default: 'throttle:60,1'
+ 'preview_mimes' => [ // Supported file types for temporary pre-signed file URLs...
+ 'png', 'gif', 'bmp', 'svg', 'wav', 'mp4',
+ 'mov', 'avi', 'wmv', 'mp3', 'm4a',
+ 'jpg', 'jpeg', 'mpga', 'webp', 'wma',
+ ],
+ 'max_upload_time' => 5, // Max duration (in minutes) before an upload is invalidated...
+ ],
+
+ /*
+ |---------------------------------------------------------------------------
+ | Render On Redirect
+ |---------------------------------------------------------------------------
+ |
+ | This value determines if Livewire will run a component's `render()` method
+ | after a redirect has been triggered using something like `redirect(...)`
+ | Setting this to true will render the view once more before redirecting
+ |
+ */
+
+ 'render_on_redirect' => false,
+
+ /*
+ |---------------------------------------------------------------------------
+ | Eloquent Model Binding
+ |---------------------------------------------------------------------------
+ |
+ | Previous versions of Livewire supported binding directly to eloquent model
+ | properties using wire:model by default. However, this behavior has been
+ | deemed too "magical" and has therefore been put under a feature flag.
+ |
+ */
+
+ 'legacy_model_binding' => false,
+
+ /*
+ |---------------------------------------------------------------------------
+ | Auto-inject Frontend Assets
+ |---------------------------------------------------------------------------
+ |
+ | By default, Livewire automatically injects its JavaScript and CSS into the
+ |
+ {{ __('When two factor authentication is enabled, you will be prompted for a secure, random token during authentication. You may retrieve this token from your phone\'s Google Authenticator application.') }} +
++ {{ __('some text') }} +
+