:orphan: *************************************** Step 4: Implement the UI with StreamLit *************************************** In step 3, we have implemented a Flow which dynamically creates a Work when a new request is added to the requests list. From the UI, we create 3 pages with `StreamLit `_: * **Page 1**: Create a form with add a new request to the Flow state **requests**. * **Page 2**: Iterate through all the requests and display the associated information. * **Page 3**: Display the entire App State. Render All Pages ^^^^^^^^^^^^^^^^ .. literalinclude:: ./app.py :lines: 274-284 **Page 1** .. literalinclude:: ./app.py :lines: 193-241 :emphasize-lines: 43 **Page 2** .. literalinclude:: ./app.py :lines: 244-264 **Page 3** .. literalinclude:: ./app.py :lines: 267-271 ---- ******** Tutorial ******** .. raw:: html
.. displayitem:: :header: 1. Implement the GithubRepoRunner Component :description: Clone and execute script from a GitHub Repo. :col_css: col-md-4 :button_link: github_repo_runner_step_1.html :height: 180 :tag: Intermediate .. displayitem:: :header: 2. Implement the PyTorch Lightning GithubRepoRunner Component :description: Automate PyTorch Lightning execution :col_css: col-md-4 :button_link: github_repo_runner_step_2.html :height: 180 :tag: Advanced .. displayitem:: :header: 3. Implement the Flow to manage user requests :description: Dynamically create GithubRepoRunner :col_css: col-md-4 :button_link: github_repo_runner_step_3.html :height: 180 :tag: Intermediate .. displayitem:: :header: Step 5: Put it all together :description: :col_css: col-md-4 :button_link: github_repo_runner_step_5.html :height: 180 :tag: Intermediate .. raw:: html