Addition of web app code to src/icatcher/icatcher_app directory. This directory contains two folders, one housing all of the React-based front-end code, and the other containing a very basic flask API.
A MANIFEST.in that specifies the potential location of the built React app (src/icatcher/icatcher_app/frontend/). The React build files are not visible in the repository code, but can be created by running npm build in the frontend directory.
An addition to the publish.yml github workflow that adds in steps to build the React app and make the resulting build directory available to be included in the pip package.
An additional script entrypoint, specified in pyproject.toml, that makes it possible for users to start up the UI by running icatcher-app in the command line
In order to be complete, this PR still needs the addition of a script to produce the necessary output to run the UI. The UI relies on having a metadata.json file and a directory of unpacked, decorated frames in order to run. I propose to add an optional iCatcher CLI flag --app that will auto-generate these outputs, as well as a script that can be run after a video is processed so that already processed videos don't necessarily need to be re-run.
This PR contains four main changes:
src/icatcher/icatcher_app
directory. This directory contains two folders, one housing all of the React-based front-end code, and the other containing a very basic flask API.MANIFEST.in
that specifies the potential location of the built React app (src/icatcher/icatcher_app/frontend/
). The React build files are not visible in the repository code, but can be created by runningnpm build
in the frontend directory.publish.yml
github workflow that adds in steps to build the React app and make the resultingbuild
directory available to be included in the pip package.pyproject.toml
, that makes it possible for users to start up the UI by runningicatcher-app
in the command lineIn order to be complete, this PR still needs the addition of a script to produce the necessary output to run the UI. The UI relies on having a
metadata.json
file and a directory of unpacked, decorated frames in order to run. I propose to add an optional iCatcher CLI flag--app
that will auto-generate these outputs, as well as a script that can be run after a video is processed so that already processed videos don't necessarily need to be re-run.