diff --git a/.env.TEMPLATE b/.env.TEMPLATE index fed0772..62f36ff 100644 --- a/.env.TEMPLATE +++ b/.env.TEMPLATE @@ -11,10 +11,10 @@ # specified environment DEFAULT_ENV=dev -# if 0, doesn't open a browser to the frontend webapp on a normal stack launch +# if 0, doesn't open a browser to the frontend web app on a normal stack launch DO_OPEN_BROWSER=1 -# app database (postgres) +# database (postgres) POSTGRES_USER=molevolvr POSTGRES_PASSWORD= POSTGRES_DB=molevolvr diff --git a/README.md b/README.md index 42b1a10..63ed516 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # MolEvolvR Stack This repo contains the implementation of the MolEvolvR stack, i.e.: -- `app`: the frontend webapp, written in React +- `frontend`: the frontend web app, written in React - `backend`: a backend written in [Plumber](https://www.rplumber.io/index.html) - `cluster`: the containerized SLURM "cluster" on which jobs are run - `services`: a collection of services on which the stack relies: diff --git a/app/public/mockServiceWorker.js b/app/public/mockServiceWorker.js deleted file mode 100644 index 15751fa..0000000 --- a/app/public/mockServiceWorker.js +++ /dev/null @@ -1,284 +0,0 @@ -/* eslint-disable */ -/* tslint:disable */ - -/** - * Mock Service Worker. - * @see https://github.com/mswjs/msw - * - Please do NOT modify this file. - * - Please do NOT serve this file on production. - */ - -const PACKAGE_VERSION = '2.3.5' -const INTEGRITY_CHECKSUM = '26357c79639bfa20d64c0efca2a87423' -const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') -const activeClientIds = new Set() - -self.addEventListener('install', function () { - self.skipWaiting() -}) - -self.addEventListener('activate', function (event) { - event.waitUntil(self.clients.claim()) -}) - -self.addEventListener('message', async function (event) { - const clientId = event.source.id - - if (!clientId || !self.clients) { - return - } - - const client = await self.clients.get(clientId) - - if (!client) { - return - } - - const allClients = await self.clients.matchAll({ - type: 'window', - }) - - switch (event.data) { - case 'KEEPALIVE_REQUEST': { - sendToClient(client, { - type: 'KEEPALIVE_RESPONSE', - }) - break - } - - case 'INTEGRITY_CHECK_REQUEST': { - sendToClient(client, { - type: 'INTEGRITY_CHECK_RESPONSE', - payload: { - packageVersion: PACKAGE_VERSION, - checksum: INTEGRITY_CHECKSUM, - }, - }) - break - } - - case 'MOCK_ACTIVATE': { - activeClientIds.add(clientId) - - sendToClient(client, { - type: 'MOCKING_ENABLED', - payload: true, - }) - break - } - - case 'MOCK_DEACTIVATE': { - activeClientIds.delete(clientId) - break - } - - case 'CLIENT_CLOSED': { - activeClientIds.delete(clientId) - - const remainingClients = allClients.filter((client) => { - return client.id !== clientId - }) - - // Unregister itself when there are no more clients - if (remainingClients.length === 0) { - self.registration.unregister() - } - - break - } - } -}) - -self.addEventListener('fetch', function (event) { - const { request } = event - - // Bypass navigation requests. - if (request.mode === 'navigate') { - return - } - - // Opening the DevTools triggers the "only-if-cached" request - // that cannot be handled by the worker. Bypass such requests. - if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { - return - } - - // Bypass all requests when there are no active clients. - // Prevents the self-unregistered worked from handling requests - // after it's been deleted (still remains active until the next reload). - if (activeClientIds.size === 0) { - return - } - - // Generate unique request ID. - const requestId = crypto.randomUUID() - event.respondWith(handleRequest(event, requestId)) -}) - -async function handleRequest(event, requestId) { - const client = await resolveMainClient(event) - const response = await getResponse(event, client, requestId) - - // Send back the response clone for the "response:*" life-cycle events. - // Ensure MSW is active and ready to handle the message, otherwise - // this message will pend indefinitely. - if (client && activeClientIds.has(client.id)) { - ;(async function () { - const responseClone = response.clone() - - sendToClient( - client, - { - type: 'RESPONSE', - payload: { - requestId, - isMockedResponse: IS_MOCKED_RESPONSE in response, - type: responseClone.type, - status: responseClone.status, - statusText: responseClone.statusText, - body: responseClone.body, - headers: Object.fromEntries(responseClone.headers.entries()), - }, - }, - [responseClone.body], - ) - })() - } - - return response -} - -// Resolve the main client for the given event. -// Client that issues a request doesn't necessarily equal the client -// that registered the worker. It's with the latter the worker should -// communicate with during the response resolving phase. -async function resolveMainClient(event) { - const client = await self.clients.get(event.clientId) - - if (client?.frameType === 'top-level') { - return client - } - - const allClients = await self.clients.matchAll({ - type: 'window', - }) - - return allClients - .filter((client) => { - // Get only those clients that are currently visible. - return client.visibilityState === 'visible' - }) - .find((client) => { - // Find the client ID that's recorded in the - // set of clients that have registered the worker. - return activeClientIds.has(client.id) - }) -} - -async function getResponse(event, client, requestId) { - const { request } = event - - // Clone the request because it might've been already used - // (i.e. its body has been read and sent to the client). - const requestClone = request.clone() - - function passthrough() { - const headers = Object.fromEntries(requestClone.headers.entries()) - - // Remove internal MSW request header so the passthrough request - // complies with any potential CORS preflight checks on the server. - // Some servers forbid unknown request headers. - delete headers['x-msw-intention'] - - return fetch(requestClone, { headers }) - } - - // Bypass mocking when the client is not active. - if (!client) { - return passthrough() - } - - // Bypass initial page load requests (i.e. static assets). - // The absence of the immediate/parent client in the map of the active clients - // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet - // and is not ready to handle requests. - if (!activeClientIds.has(client.id)) { - return passthrough() - } - - // Notify the client that a request has been intercepted. - const requestBuffer = await request.arrayBuffer() - const clientMessage = await sendToClient( - client, - { - type: 'REQUEST', - payload: { - id: requestId, - url: request.url, - mode: request.mode, - method: request.method, - headers: Object.fromEntries(request.headers.entries()), - cache: request.cache, - credentials: request.credentials, - destination: request.destination, - integrity: request.integrity, - redirect: request.redirect, - referrer: request.referrer, - referrerPolicy: request.referrerPolicy, - body: requestBuffer, - keepalive: request.keepalive, - }, - }, - [requestBuffer], - ) - - switch (clientMessage.type) { - case 'MOCK_RESPONSE': { - return respondWithMock(clientMessage.data) - } - - case 'PASSTHROUGH': { - return passthrough() - } - } - - return passthrough() -} - -function sendToClient(client, message, transferrables = []) { - return new Promise((resolve, reject) => { - const channel = new MessageChannel() - - channel.port1.onmessage = (event) => { - if (event.data && event.data.error) { - return reject(event.data.error) - } - - resolve(event.data) - } - - client.postMessage( - message, - [channel.port2].concat(transferrables.filter(Boolean)), - ) - }) -} - -async function respondWithMock(response) { - // Setting response status code to 0 is a no-op. - // However, when responding with a "Response.error()", the produced Response - // instance will have status code set to 0. Since it's not possible to create - // a Response instance with status code 0, handle that use-case separately. - if (response.status === 0) { - return Response.error() - } - - const mockedResponse = new Response(response.body, response) - - Reflect.defineProperty(mockedResponse, IS_MOCKED_RESPONSE, { - value: true, - enumerable: true, - }) - - return mockedResponse -} diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 1ab4de6..9bfb0ee 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -14,12 +14,12 @@ services: depends_on: - "dev-db" - app: + frontend: build: - context: ./app + context: ./frontend target: dev volumes: - - ./app/src:/app/src + - ./frontend:/app/frontend environment: - 'VITE_API=http://localhost:9050' ports: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 600f84e..5180214 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,16 +1,16 @@ volumes: - app_bundle: + frontend_dist: caddy_data: caddy_config: services: - app: + frontend: image: molevolvr-frontend build: - context: ./app + context: ./frontend target: release volumes: - - app_bundle:/app/dist + - frontend_dist:/app/frontend/dist depends_on: - backend @@ -20,9 +20,9 @@ services: - "80:80" - "443:443" volumes: - - app_bundle:/srv + - frontend_dist:/srv - ./services/caddy/Caddyfile:/etc/caddy/Caddyfile - caddy_data:/data - caddy_config:/config depends_on: - - app + - frontend diff --git a/docker-compose.yml b/docker-compose.yml index ee3216b..801ca71 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,10 +18,10 @@ services: db: condition: service_healthy - app: - hostname: app-${TARGET_ENV} + frontend: + hostname: frontend-${TARGET_ENV} image: molevolvr-frontend - build: ./app + build: ./frontend depends_on: - backend diff --git a/app/.env b/frontend/.env similarity index 100% rename from app/.env rename to frontend/.env diff --git a/app/.gitignore b/frontend/.gitignore similarity index 100% rename from app/.gitignore rename to frontend/.gitignore diff --git a/app/.prettierignore b/frontend/.prettierignore similarity index 100% rename from app/.prettierignore rename to frontend/.prettierignore diff --git a/app/.prettierrc b/frontend/.prettierrc similarity index 100% rename from app/.prettierrc rename to frontend/.prettierrc diff --git a/app/.vscode/extensions.json b/frontend/.vscode/extensions.json similarity index 100% rename from app/.vscode/extensions.json rename to frontend/.vscode/extensions.json diff --git a/app/.vscode/settings.json b/frontend/.vscode/settings.json similarity index 100% rename from app/.vscode/settings.json rename to frontend/.vscode/settings.json diff --git a/app/Dockerfile b/frontend/Dockerfile similarity index 100% rename from app/Dockerfile rename to frontend/Dockerfile diff --git a/app/README.md b/frontend/README.md similarity index 100% rename from app/README.md rename to frontend/README.md diff --git a/app/bun.lockb b/frontend/bun.lockb similarity index 100% rename from app/bun.lockb rename to frontend/bun.lockb diff --git a/app/eslint.config.mjs b/frontend/eslint.config.mjs similarity index 100% rename from app/eslint.config.mjs rename to frontend/eslint.config.mjs diff --git a/app/fixtures/analyses.json b/frontend/fixtures/analyses.json similarity index 100% rename from app/fixtures/analyses.json rename to frontend/fixtures/analyses.json diff --git a/app/fixtures/index.ts b/frontend/fixtures/index.ts similarity index 100% rename from app/fixtures/index.ts rename to frontend/fixtures/index.ts diff --git a/app/fixtures/stats.json b/frontend/fixtures/stats.json similarity index 100% rename from app/fixtures/stats.json rename to frontend/fixtures/stats.json diff --git a/app/fixtures/table.json b/frontend/fixtures/table.json similarity index 100% rename from app/fixtures/table.json rename to frontend/fixtures/table.json diff --git a/app/index.html b/frontend/index.html similarity index 100% rename from app/index.html rename to frontend/index.html diff --git a/app/package.json b/frontend/package.json similarity index 100% rename from app/package.json rename to frontend/package.json diff --git a/app/playwright.config.ts b/frontend/playwright.config.ts similarity index 100% rename from app/playwright.config.ts rename to frontend/playwright.config.ts diff --git a/app/public/404.html b/frontend/public/404.html similarity index 100% rename from app/public/404.html rename to frontend/public/404.html diff --git a/app/public/icon.png b/frontend/public/icon.png similarity index 100% rename from app/public/icon.png rename to frontend/public/icon.png diff --git a/app/public/share.jpg b/frontend/public/share.jpg similarity index 100% rename from app/public/share.jpg rename to frontend/public/share.jpg diff --git a/app/src/App.tsx b/frontend/src/App.tsx similarity index 100% rename from app/src/App.tsx rename to frontend/src/App.tsx diff --git a/app/src/api/analysis.ts b/frontend/src/api/analysis.ts similarity index 100% rename from app/src/api/analysis.ts rename to frontend/src/api/analysis.ts diff --git a/app/src/api/index.ts b/frontend/src/api/index.ts similarity index 100% rename from app/src/api/index.ts rename to frontend/src/api/index.ts diff --git a/app/src/api/stats.ts b/frontend/src/api/stats.ts similarity index 100% rename from app/src/api/stats.ts rename to frontend/src/api/stats.ts diff --git a/app/src/api/types.ts b/frontend/src/api/types.ts similarity index 100% rename from app/src/api/types.ts rename to frontend/src/api/types.ts diff --git a/app/src/assets/custom-icon.svg b/frontend/src/assets/custom-icon.svg similarity index 100% rename from app/src/assets/custom-icon.svg rename to frontend/src/assets/custom-icon.svg diff --git a/app/src/assets/loading.svg b/frontend/src/assets/loading.svg similarity index 100% rename from app/src/assets/loading.svg rename to frontend/src/assets/loading.svg diff --git a/app/src/assets/logo.svg b/frontend/src/assets/logo.svg similarity index 100% rename from app/src/assets/logo.svg rename to frontend/src/assets/logo.svg diff --git a/app/src/components/Ago.tsx b/frontend/src/components/Ago.tsx similarity index 100% rename from app/src/components/Ago.tsx rename to frontend/src/components/Ago.tsx diff --git a/app/src/components/Alert.module.css b/frontend/src/components/Alert.module.css similarity index 100% rename from app/src/components/Alert.module.css rename to frontend/src/components/Alert.module.css diff --git a/app/src/components/Alert.tsx b/frontend/src/components/Alert.tsx similarity index 100% rename from app/src/components/Alert.tsx rename to frontend/src/components/Alert.tsx diff --git a/app/src/components/AnalysisCard.module.css b/frontend/src/components/AnalysisCard.module.css similarity index 100% rename from app/src/components/AnalysisCard.module.css rename to frontend/src/components/AnalysisCard.module.css diff --git a/app/src/components/AnalysisCard.tsx b/frontend/src/components/AnalysisCard.tsx similarity index 100% rename from app/src/components/AnalysisCard.tsx rename to frontend/src/components/AnalysisCard.tsx diff --git a/app/src/components/Asterisk.module.css b/frontend/src/components/Asterisk.module.css similarity index 100% rename from app/src/components/Asterisk.module.css rename to frontend/src/components/Asterisk.module.css diff --git a/app/src/components/Asterisk.tsx b/frontend/src/components/Asterisk.tsx similarity index 100% rename from app/src/components/Asterisk.tsx rename to frontend/src/components/Asterisk.tsx diff --git a/app/src/components/Badge.module.css b/frontend/src/components/Badge.module.css similarity index 100% rename from app/src/components/Badge.module.css rename to frontend/src/components/Badge.module.css diff --git a/app/src/components/Badge.tsx b/frontend/src/components/Badge.tsx similarity index 100% rename from app/src/components/Badge.tsx rename to frontend/src/components/Badge.tsx diff --git a/app/src/components/Button.module.css b/frontend/src/components/Button.module.css similarity index 100% rename from app/src/components/Button.module.css rename to frontend/src/components/Button.module.css diff --git a/app/src/components/Button.tsx b/frontend/src/components/Button.tsx similarity index 100% rename from app/src/components/Button.tsx rename to frontend/src/components/Button.tsx diff --git a/app/src/components/CheckBox.module.css b/frontend/src/components/CheckBox.module.css similarity index 100% rename from app/src/components/CheckBox.module.css rename to frontend/src/components/CheckBox.module.css diff --git a/app/src/components/CheckBox.tsx b/frontend/src/components/CheckBox.tsx similarity index 100% rename from app/src/components/CheckBox.tsx rename to frontend/src/components/CheckBox.tsx diff --git a/app/src/components/Collapsible.module.css b/frontend/src/components/Collapsible.module.css similarity index 100% rename from app/src/components/Collapsible.module.css rename to frontend/src/components/Collapsible.module.css diff --git a/app/src/components/Collapsible.tsx b/frontend/src/components/Collapsible.tsx similarity index 100% rename from app/src/components/Collapsible.tsx rename to frontend/src/components/Collapsible.tsx diff --git a/app/src/components/Exponential.module.css b/frontend/src/components/Exponential.module.css similarity index 100% rename from app/src/components/Exponential.module.css rename to frontend/src/components/Exponential.module.css diff --git a/app/src/components/Exponential.tsx b/frontend/src/components/Exponential.tsx similarity index 100% rename from app/src/components/Exponential.tsx rename to frontend/src/components/Exponential.tsx diff --git a/app/src/components/FeatureCard.module.css b/frontend/src/components/FeatureCard.module.css similarity index 100% rename from app/src/components/FeatureCard.module.css rename to frontend/src/components/FeatureCard.module.css diff --git a/app/src/components/FeatureCard.tsx b/frontend/src/components/FeatureCard.tsx similarity index 100% rename from app/src/components/FeatureCard.tsx rename to frontend/src/components/FeatureCard.tsx diff --git a/app/src/components/Flex.tsx b/frontend/src/components/Flex.tsx similarity index 100% rename from app/src/components/Flex.tsx rename to frontend/src/components/Flex.tsx diff --git a/app/src/components/Footer.module.css b/frontend/src/components/Footer.module.css similarity index 100% rename from app/src/components/Footer.module.css rename to frontend/src/components/Footer.module.css diff --git a/app/src/components/Footer.tsx b/frontend/src/components/Footer.tsx similarity index 100% rename from app/src/components/Footer.tsx rename to frontend/src/components/Footer.tsx diff --git a/app/src/components/Form.tsx b/frontend/src/components/Form.tsx similarity index 100% rename from app/src/components/Form.tsx rename to frontend/src/components/Form.tsx diff --git a/app/src/components/Header.module.css b/frontend/src/components/Header.module.css similarity index 100% rename from app/src/components/Header.module.css rename to frontend/src/components/Header.module.css diff --git a/app/src/components/Header.tsx b/frontend/src/components/Header.tsx similarity index 100% rename from app/src/components/Header.tsx rename to frontend/src/components/Header.tsx diff --git a/app/src/components/Heading.module.css b/frontend/src/components/Heading.module.css similarity index 100% rename from app/src/components/Heading.module.css rename to frontend/src/components/Heading.module.css diff --git a/app/src/components/Heading.tsx b/frontend/src/components/Heading.tsx similarity index 100% rename from app/src/components/Heading.tsx rename to frontend/src/components/Heading.tsx diff --git a/app/src/components/Help.module.css b/frontend/src/components/Help.module.css similarity index 100% rename from app/src/components/Help.module.css rename to frontend/src/components/Help.module.css diff --git a/app/src/components/Help.tsx b/frontend/src/components/Help.tsx similarity index 100% rename from app/src/components/Help.tsx rename to frontend/src/components/Help.tsx diff --git a/app/src/components/Link.module.css b/frontend/src/components/Link.module.css similarity index 100% rename from app/src/components/Link.module.css rename to frontend/src/components/Link.module.css diff --git a/app/src/components/Link.tsx b/frontend/src/components/Link.tsx similarity index 100% rename from app/src/components/Link.tsx rename to frontend/src/components/Link.tsx diff --git a/app/src/components/Mark.module.css b/frontend/src/components/Mark.module.css similarity index 100% rename from app/src/components/Mark.module.css rename to frontend/src/components/Mark.module.css diff --git a/app/src/components/Mark.tsx b/frontend/src/components/Mark.tsx similarity index 100% rename from app/src/components/Mark.tsx rename to frontend/src/components/Mark.tsx diff --git a/app/src/components/Meta.tsx b/frontend/src/components/Meta.tsx similarity index 100% rename from app/src/components/Meta.tsx rename to frontend/src/components/Meta.tsx diff --git a/app/src/components/NumberBox.module.css b/frontend/src/components/NumberBox.module.css similarity index 100% rename from app/src/components/NumberBox.module.css rename to frontend/src/components/NumberBox.module.css diff --git a/app/src/components/NumberBox.tsx b/frontend/src/components/NumberBox.tsx similarity index 100% rename from app/src/components/NumberBox.tsx rename to frontend/src/components/NumberBox.tsx diff --git a/app/src/components/Popover.module.css b/frontend/src/components/Popover.module.css similarity index 100% rename from app/src/components/Popover.module.css rename to frontend/src/components/Popover.module.css diff --git a/app/src/components/Popover.tsx b/frontend/src/components/Popover.tsx similarity index 100% rename from app/src/components/Popover.tsx rename to frontend/src/components/Popover.tsx diff --git a/app/src/components/Radios.module.css b/frontend/src/components/Radios.module.css similarity index 100% rename from app/src/components/Radios.module.css rename to frontend/src/components/Radios.module.css diff --git a/app/src/components/Radios.tsx b/frontend/src/components/Radios.tsx similarity index 100% rename from app/src/components/Radios.tsx rename to frontend/src/components/Radios.tsx diff --git a/app/src/components/Section.module.css b/frontend/src/components/Section.module.css similarity index 100% rename from app/src/components/Section.module.css rename to frontend/src/components/Section.module.css diff --git a/app/src/components/Section.tsx b/frontend/src/components/Section.tsx similarity index 100% rename from app/src/components/Section.tsx rename to frontend/src/components/Section.tsx diff --git a/app/src/components/Select.module.css b/frontend/src/components/Select.module.css similarity index 100% rename from app/src/components/Select.module.css rename to frontend/src/components/Select.module.css diff --git a/app/src/components/SelectMulti.tsx b/frontend/src/components/SelectMulti.tsx similarity index 100% rename from app/src/components/SelectMulti.tsx rename to frontend/src/components/SelectMulti.tsx diff --git a/app/src/components/SelectSingle.tsx b/frontend/src/components/SelectSingle.tsx similarity index 100% rename from app/src/components/SelectSingle.tsx rename to frontend/src/components/SelectSingle.tsx diff --git a/app/src/components/Slider.module.css b/frontend/src/components/Slider.module.css similarity index 100% rename from app/src/components/Slider.module.css rename to frontend/src/components/Slider.module.css diff --git a/app/src/components/Slider.tsx b/frontend/src/components/Slider.tsx similarity index 100% rename from app/src/components/Slider.tsx rename to frontend/src/components/Slider.tsx diff --git a/app/src/components/Table.module.css b/frontend/src/components/Table.module.css similarity index 100% rename from app/src/components/Table.module.css rename to frontend/src/components/Table.module.css diff --git a/app/src/components/Table.tsx b/frontend/src/components/Table.tsx similarity index 100% rename from app/src/components/Table.tsx rename to frontend/src/components/Table.tsx diff --git a/app/src/components/TableOfContents.module.css b/frontend/src/components/TableOfContents.module.css similarity index 100% rename from app/src/components/TableOfContents.module.css rename to frontend/src/components/TableOfContents.module.css diff --git a/app/src/components/TableOfContents.tsx b/frontend/src/components/TableOfContents.tsx similarity index 100% rename from app/src/components/TableOfContents.tsx rename to frontend/src/components/TableOfContents.tsx diff --git a/app/src/components/Tabs.module.css b/frontend/src/components/Tabs.module.css similarity index 100% rename from app/src/components/Tabs.module.css rename to frontend/src/components/Tabs.module.css diff --git a/app/src/components/Tabs.tsx b/frontend/src/components/Tabs.tsx similarity index 100% rename from app/src/components/Tabs.tsx rename to frontend/src/components/Tabs.tsx diff --git a/app/src/components/TextBox.module.css b/frontend/src/components/TextBox.module.css similarity index 100% rename from app/src/components/TextBox.module.css rename to frontend/src/components/TextBox.module.css diff --git a/app/src/components/TextBox.tsx b/frontend/src/components/TextBox.tsx similarity index 100% rename from app/src/components/TextBox.tsx rename to frontend/src/components/TextBox.tsx diff --git a/app/src/components/Tile.module.css b/frontend/src/components/Tile.module.css similarity index 100% rename from app/src/components/Tile.module.css rename to frontend/src/components/Tile.module.css diff --git a/app/src/components/Tile.tsx b/frontend/src/components/Tile.tsx similarity index 100% rename from app/src/components/Tile.tsx rename to frontend/src/components/Tile.tsx diff --git a/app/src/components/Toasts.module.css b/frontend/src/components/Toasts.module.css similarity index 100% rename from app/src/components/Toasts.module.css rename to frontend/src/components/Toasts.module.css diff --git a/app/src/components/Toasts.tsx b/frontend/src/components/Toasts.tsx similarity index 100% rename from app/src/components/Toasts.tsx rename to frontend/src/components/Toasts.tsx diff --git a/app/src/components/Tooltip.module.css b/frontend/src/components/Tooltip.module.css similarity index 100% rename from app/src/components/Tooltip.module.css rename to frontend/src/components/Tooltip.module.css diff --git a/app/src/components/Tooltip.tsx b/frontend/src/components/Tooltip.tsx similarity index 100% rename from app/src/components/Tooltip.tsx rename to frontend/src/components/Tooltip.tsx diff --git a/app/src/components/UploadButton.module.css b/frontend/src/components/UploadButton.module.css similarity index 100% rename from app/src/components/UploadButton.module.css rename to frontend/src/components/UploadButton.module.css diff --git a/app/src/components/UploadButton.tsx b/frontend/src/components/UploadButton.tsx similarity index 100% rename from app/src/components/UploadButton.tsx rename to frontend/src/components/UploadButton.tsx diff --git a/app/src/components/ViewCorner.module.css b/frontend/src/components/ViewCorner.module.css similarity index 100% rename from app/src/components/ViewCorner.module.css rename to frontend/src/components/ViewCorner.module.css diff --git a/app/src/components/ViewCorner.tsx b/frontend/src/components/ViewCorner.tsx similarity index 100% rename from app/src/components/ViewCorner.tsx rename to frontend/src/components/ViewCorner.tsx diff --git a/app/src/global/effects.css b/frontend/src/global/effects.css similarity index 100% rename from app/src/global/effects.css rename to frontend/src/global/effects.css diff --git a/app/src/global/layout.css b/frontend/src/global/layout.css similarity index 100% rename from app/src/global/layout.css rename to frontend/src/global/layout.css diff --git a/app/src/global/styles.css b/frontend/src/global/styles.css similarity index 100% rename from app/src/global/styles.css rename to frontend/src/global/styles.css diff --git a/app/src/global/text.css b/frontend/src/global/text.css similarity index 100% rename from app/src/global/text.css rename to frontend/src/global/text.css diff --git a/app/src/global/theme.css b/frontend/src/global/theme.css similarity index 100% rename from app/src/global/theme.css rename to frontend/src/global/theme.css diff --git a/app/src/main.tsx b/frontend/src/main.tsx similarity index 100% rename from app/src/main.tsx rename to frontend/src/main.tsx diff --git a/app/src/pages/About.tsx b/frontend/src/pages/About.tsx similarity index 100% rename from app/src/pages/About.tsx rename to frontend/src/pages/About.tsx diff --git a/app/src/pages/Analysis.tsx b/frontend/src/pages/Analysis.tsx similarity index 100% rename from app/src/pages/Analysis.tsx rename to frontend/src/pages/Analysis.tsx diff --git a/app/src/pages/Home.module.css b/frontend/src/pages/Home.module.css similarity index 100% rename from app/src/pages/Home.module.css rename to frontend/src/pages/Home.module.css diff --git a/app/src/pages/Home.tsx b/frontend/src/pages/Home.tsx similarity index 100% rename from app/src/pages/Home.tsx rename to frontend/src/pages/Home.tsx diff --git a/app/src/pages/LoadAnalysis.tsx b/frontend/src/pages/LoadAnalysis.tsx similarity index 100% rename from app/src/pages/LoadAnalysis.tsx rename to frontend/src/pages/LoadAnalysis.tsx diff --git a/app/src/pages/NewAnalysis.module.css b/frontend/src/pages/NewAnalysis.module.css similarity index 100% rename from app/src/pages/NewAnalysis.module.css rename to frontend/src/pages/NewAnalysis.module.css diff --git a/app/src/pages/NewAnalysis.tsx b/frontend/src/pages/NewAnalysis.tsx similarity index 100% rename from app/src/pages/NewAnalysis.tsx rename to frontend/src/pages/NewAnalysis.tsx diff --git a/app/src/pages/NotFound.tsx b/frontend/src/pages/NotFound.tsx similarity index 100% rename from app/src/pages/NotFound.tsx rename to frontend/src/pages/NotFound.tsx diff --git a/app/src/pages/Testbed.tsx b/frontend/src/pages/Testbed.tsx similarity index 100% rename from app/src/pages/Testbed.tsx rename to frontend/src/pages/Testbed.tsx diff --git a/app/src/pages/analysis/Actions.tsx b/frontend/src/pages/analysis/Actions.tsx similarity index 100% rename from app/src/pages/analysis/Actions.tsx rename to frontend/src/pages/analysis/Actions.tsx diff --git a/app/src/pages/analysis/Inputs.tsx b/frontend/src/pages/analysis/Inputs.tsx similarity index 100% rename from app/src/pages/analysis/Inputs.tsx rename to frontend/src/pages/analysis/Inputs.tsx diff --git a/app/src/pages/analysis/Outputs.tsx b/frontend/src/pages/analysis/Outputs.tsx similarity index 100% rename from app/src/pages/analysis/Outputs.tsx rename to frontend/src/pages/analysis/Outputs.tsx diff --git a/app/src/pages/analysis/Overview.tsx b/frontend/src/pages/analysis/Overview.tsx similarity index 100% rename from app/src/pages/analysis/Overview.tsx rename to frontend/src/pages/analysis/Overview.tsx diff --git a/app/src/pages/analysis/inputs/DomainArch.tsx b/frontend/src/pages/analysis/inputs/DomainArch.tsx similarity index 100% rename from app/src/pages/analysis/inputs/DomainArch.tsx rename to frontend/src/pages/analysis/inputs/DomainArch.tsx diff --git a/app/src/pages/analysis/inputs/Heatmap.tsx b/frontend/src/pages/analysis/inputs/Heatmap.tsx similarity index 100% rename from app/src/pages/analysis/inputs/Heatmap.tsx rename to frontend/src/pages/analysis/inputs/Heatmap.tsx diff --git a/app/src/pages/analysis/inputs/Summary.tsx b/frontend/src/pages/analysis/inputs/Summary.tsx similarity index 100% rename from app/src/pages/analysis/inputs/Summary.tsx rename to frontend/src/pages/analysis/inputs/Summary.tsx diff --git a/app/src/pages/analysis/inputs/Table.tsx b/frontend/src/pages/analysis/inputs/Table.tsx similarity index 100% rename from app/src/pages/analysis/inputs/Table.tsx rename to frontend/src/pages/analysis/inputs/Table.tsx diff --git a/app/src/pages/analysis/outputs/DomainArch.tsx b/frontend/src/pages/analysis/outputs/DomainArch.tsx similarity index 100% rename from app/src/pages/analysis/outputs/DomainArch.tsx rename to frontend/src/pages/analysis/outputs/DomainArch.tsx diff --git a/app/src/pages/analysis/outputs/Homology.tsx b/frontend/src/pages/analysis/outputs/Homology.tsx similarity index 100% rename from app/src/pages/analysis/outputs/Homology.tsx rename to frontend/src/pages/analysis/outputs/Homology.tsx diff --git a/app/src/pages/analysis/outputs/Phylogeny.tsx b/frontend/src/pages/analysis/outputs/Phylogeny.tsx similarity index 100% rename from app/src/pages/analysis/outputs/Phylogeny.tsx rename to frontend/src/pages/analysis/outputs/Phylogeny.tsx diff --git a/app/src/pages/analysis/outputs/Summary.tsx b/frontend/src/pages/analysis/outputs/Summary.tsx similarity index 100% rename from app/src/pages/analysis/outputs/Summary.tsx rename to frontend/src/pages/analysis/outputs/Summary.tsx diff --git a/app/src/pages/examples/accnum.txt b/frontend/src/pages/examples/accnum.txt similarity index 100% rename from app/src/pages/examples/accnum.txt rename to frontend/src/pages/examples/accnum.txt diff --git a/app/src/pages/examples/blast.tsv b/frontend/src/pages/examples/blast.tsv similarity index 100% rename from app/src/pages/examples/blast.tsv rename to frontend/src/pages/examples/blast.tsv diff --git a/app/src/pages/examples/fasta.txt b/frontend/src/pages/examples/fasta.txt similarity index 100% rename from app/src/pages/examples/fasta.txt rename to frontend/src/pages/examples/fasta.txt diff --git a/app/src/pages/examples/interproscan.tsv b/frontend/src/pages/examples/interproscan.tsv similarity index 100% rename from app/src/pages/examples/interproscan.tsv rename to frontend/src/pages/examples/interproscan.tsv diff --git a/app/src/pages/examples/msa.txt b/frontend/src/pages/examples/msa.txt similarity index 100% rename from app/src/pages/examples/msa.txt rename to frontend/src/pages/examples/msa.txt diff --git a/app/src/util/array.ts b/frontend/src/util/array.ts similarity index 100% rename from app/src/util/array.ts rename to frontend/src/util/array.ts diff --git a/app/src/util/date.ts b/frontend/src/util/date.ts similarity index 100% rename from app/src/util/date.ts rename to frontend/src/util/date.ts diff --git a/app/src/util/dom.ts b/frontend/src/util/dom.ts similarity index 100% rename from app/src/util/dom.ts rename to frontend/src/util/dom.ts diff --git a/app/src/util/download.ts b/frontend/src/util/download.ts similarity index 100% rename from app/src/util/download.ts rename to frontend/src/util/download.ts diff --git a/app/src/util/math.ts b/frontend/src/util/math.ts similarity index 100% rename from app/src/util/math.ts rename to frontend/src/util/math.ts diff --git a/app/src/util/misc.ts b/frontend/src/util/misc.ts similarity index 100% rename from app/src/util/misc.ts rename to frontend/src/util/misc.ts diff --git a/app/src/util/string.ts b/frontend/src/util/string.ts similarity index 100% rename from app/src/util/string.ts rename to frontend/src/util/string.ts diff --git a/app/src/vite-env.d.ts b/frontend/src/vite-env.d.ts similarity index 100% rename from app/src/vite-env.d.ts rename to frontend/src/vite-env.d.ts diff --git a/app/tests/accessibility.spec.ts b/frontend/tests/accessibility.spec.ts similarity index 100% rename from app/tests/accessibility.spec.ts rename to frontend/tests/accessibility.spec.ts diff --git a/app/tests/home.spec.ts b/frontend/tests/home.spec.ts similarity index 100% rename from app/tests/home.spec.ts rename to frontend/tests/home.spec.ts diff --git a/app/tests/util.ts b/frontend/tests/util.ts similarity index 100% rename from app/tests/util.ts rename to frontend/tests/util.ts diff --git a/app/tsconfig.json b/frontend/tsconfig.json similarity index 100% rename from app/tsconfig.json rename to frontend/tsconfig.json diff --git a/app/tsconfig.node.json b/frontend/tsconfig.node.json similarity index 100% rename from app/tsconfig.node.json rename to frontend/tsconfig.node.json diff --git a/app/vite.config.ts b/frontend/vite.config.ts similarity index 100% rename from app/vite.config.ts rename to frontend/vite.config.ts diff --git a/run_stack.sh b/run_stack.sh index 59c08c6..1a414fb 100755 --- a/run_stack.sh +++ b/run_stack.sh @@ -35,7 +35,7 @@ # # the current environments are as follows (contact FSA for details): # - prod: the production environment, which runs the full stack, including the -# shiny app, the job scheduler, and the accounting database. it's the most +# web app, the job scheduler, and the accounting database. it's the most # resource-intensive environment, and is intended for use in production. # - dev/staging: these are effectively dev environments that specific users run # on the server for testing purposes. @@ -140,16 +140,6 @@ case ${TARGET_ENV} in # watch the logs after, since we detached after bringing up the stack POST_LAUNCH_CMD="${COMPOSE_CMD} logs -f" ;; - "app") - # launches just the services necessary to run the shiny app, for frontend development. - # note that you won't be able to submit jobs or query the accounting database. - DEFAULT_ARGS="up" - COMPOSE_CMD="docker compose -f docker-compose.apponly.yml" - DO_CLEAR="1" - SKIP_BUILD="1" # don't build images for the app environment, since it uses so few of them - # watch the logs after, since we detached after bringing up the stack - # POST_LAUNCH_CMD="${COMPOSE_CMD} logs -f app" - ;; *) echo "ERROR: Unknown target environment: ${TARGET_ENV}" exit 1