biothings / biothings_explorer

TRAPI service for BioThings Explorer
https://explorer.biothings.io
Apache License 2.0
10 stars 11 forks source link

Find a way to reuse the BTE web app as the landing page for local install #711

Open marcodarko opened 1 year ago

marcodarko commented 1 year ago

We first designed a landing page for a local installation of BTE that runs a UI written in Vue to test some example queries to BTE. Later on, we updated the BTE main website to have the same UI but that site was already worked on and was written in React. Now it's become apparent that we want to share most if not all of the same functionality, resources, and tools on the BTE web app in the local instance as it is more advanced and worked on. To avoid code duplication and efforts migrating code from framework to framework, I'm proposing we find a way to utilize the code from the web app here also in the BTE main code base.

Overall the transition should be smooth but some adjustments and refactoring will have to be made to configure which backend the code queries. eg.local install > local and webapp > prod and possibly hiding pages/resources.

tokebe commented 11 months ago

To give more detail on some of what needs to be done here:

Currently, BTE has a packages/web-app directory as part of the monorepo setup. This directory should be replaced with the React web app. In the bte workspace, packages/packages.txt will need to be updated to ensure that the web app is properly cloned on setup. There are additional things which need to be done:

After all adjustments, it should be possible to both clone the web app as part of the BTE monorepo and standalone, with certain behaviors being based on whether the web app is standalone or being started as part of BTE:

@marcodarko and @andrewsu can detail any pages which shouldn't be accessible when started as part of BTE, and @marcodarko can answer any questions as to internal workings of the web app, while I can answer questions relating to the internal workings of the BTE workspace.

Getting BTE set up for development can follow the NodeJS set of installation instructions for BTE. Work on this can proceed branched from main branches (master in the case of the web app).

marcodarko commented 11 months ago

sounds exciting, let me know when you all wanna talk about this and plan implementation