Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/frontend_ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: Frontend CI

on: [pull_request]

defaults:
run:
working-directory: ./frontend

jobs:
link-check:
name: Run ESLint check
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
run: yarn install

- name: Run dependencies
run: yarn run lint

format-check:
name: Run Prettier check
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Install dependencies
run: yarn install

- name: Run dependencies
run: yarn run format-check
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This repository contains the code for the front-end website for the NIH-funded B

## Prerequisities

- Node.js
- [Node.js](https://nodejs.org/en) v20
- Yarn

## Install
Expand Down
2 changes: 1 addition & 1 deletion frontend/.vscode/extensions.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
"dbaeumer.jshint",
"ms-vscode.vscode-typescript-tslint-plugin"
]
}
}
13 changes: 3 additions & 10 deletions frontend/.vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,7 @@
"editor.guides.bracketPairs": true,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": [
"source.fixAll.eslint"
],
"eslint.validate": [
"javascript",
"javascriptreact",
"typescript",
"vue"
],
"editor.codeActionsOnSave": ["source.fixAll.eslint"],
"eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"],
"typescript.tsdk": "node_modules/typescript/lib"
}
}
10 changes: 6 additions & 4 deletions frontend/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,41 @@
A Quasar Project

## Install the dependencies

```bash
yarn
# or
npm install
```

### Start the app in development mode (hot-code reloading, error reporting, etc.)

```bash
quasar dev
```


### Lint the files

```bash
yarn lint
# or
npm run lint
```


### Format the files

```bash
yarn format
# or
npm run format
```



### Build the app for production

```bash
quasar build
```

### Customize the configuration

See [Configuring quasar.config.js](https://v2.quasar.dev/quasar-cli-vite/quasar-config-js).
27 changes: 16 additions & 11 deletions frontend/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,28 @@
<head>
<title><%= productName %></title>

<meta charset="utf-8">
<meta name="description" content="<%= productDescription %>">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
<meta charset="utf-8" />
<meta name="description" content="<%= productDescription %>" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<meta
name="viewport"
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>"
/>

<link rel="icon" type="image/png" sizes="128x128" href="icons/favicon-128x128.png">
<link rel="icon" type="image/png" sizes="96x96" href="icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png">
<link rel="icon" type="image/ico" href="favicon.ico">
<link rel="icon" type="image/png" sizes="128x128" href="icons/favicon-128x128.png" />
<link rel="icon" type="image/png" sizes="96x96" href="icons/favicon-96x96.png" />
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png" />
<link rel="icon" type="image/ico" href="favicon.ico" />

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-0QL6YPBXFZ"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());

gtag('config', 'G-0QL6YPBXFZ');
Expand Down
1 change: 1 addition & 0 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"scripts": {
"lint": "eslint --ext .js,.ts,.vue ./",
"format": "prettier --write \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore",
"format-check": "prettier --check \"**/*.{js,ts,vue,scss,html,md,json}\" --ignore-path .gitignore",
"test": "echo \"No test specified\" && exit 0",
"dev": "quasar dev",
"build": "quasar build"
Expand Down
63 changes: 28 additions & 35 deletions frontend/quasar.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,8 @@
// Configuration for your app
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js


const { configure } = require('quasar/wrappers');


module.exports = configure(function (/* ctx */) {
return {
// https://v2.quasar.dev/quasar-cli-vite/prefetch-feature
Expand All @@ -20,15 +18,10 @@ module.exports = configure(function (/* ctx */) {
// app boot file (/src/boot)
// --> boot files are part of "main.js"
// https://v2.quasar.dev/quasar-cli-vite/boot-files
boot: [


],
boot: [],

// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css
css: [
'app.scss'
],
css: ['app.scss'],

// https://github.com/quasarframework/quasar/tree/dev/extras
extras: [
Expand All @@ -47,8 +40,8 @@ module.exports = configure(function (/* ctx */) {
// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#build
build: {
target: {
browser: [ 'es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1' ],
node: 'node20'
browser: ['es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1'],
node: 'node20',
},

vueRouterMode: 'history', // available values: 'hash', 'history'
Expand All @@ -71,21 +64,25 @@ module.exports = configure(function (/* ctx */) {
// viteVuePluginOptions: {},

vitePlugins: [
['vite-plugin-checker', {
vueTsc: {
tsconfigPath: 'tsconfig.vue-tsc.json'
[
'vite-plugin-checker',
{
vueTsc: {
tsconfigPath: 'tsconfig.vue-tsc.json',
},
eslint: {
lintCommand: 'eslint "./**/*.{js,ts,mjs,cjs,vue}"',
},
},
eslint: {
lintCommand: 'eslint "./**/*.{js,ts,mjs,cjs,vue}"'
}
}, { server: false }]
]
{ server: false },
],
],
},

// Full list of options: https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#devServer
devServer: {
// https: true
open: true // opens browser window automatically
open: true, // opens browser window automatically
},

// https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#framework
Expand All @@ -103,7 +100,7 @@ module.exports = configure(function (/* ctx */) {
// directives: [],

// Quasar plugins
plugins: []
plugins: [],
},

// animations: 'all', // --- includes all animations
Expand All @@ -125,7 +122,7 @@ module.exports = configure(function (/* ctx */) {
// https://v2.quasar.dev/quasar-cli-vite/developing-ssr/configuring-ssr
ssr: {
// ssrPwaHtmlFilename: 'offline.html', // do NOT use index.html as name!
// will mess up SSR
// will mess up SSR

// extendSSRWebserverConf (esbuildConf) {},
// extendPackageJson (json) {},
Expand All @@ -136,11 +133,11 @@ module.exports = configure(function (/* ctx */) {
// manualPostHydrationTrigger: true,

prodPort: 3000, // The default port that the production server should use
// (gets superseded if process.env.PORT is specified at runtime)
// (gets superseded if process.env.PORT is specified at runtime)

middlewares: [
'render' // keep this as last one
]
'render', // keep this as last one
],
},

// https://v2.quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa
Expand All @@ -164,7 +161,7 @@ module.exports = configure(function (/* ctx */) {

// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-capacitor-apps/configuring-capacitor
capacitor: {
hideSplashscreen: true
hideSplashscreen: true,
},

// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-electron-apps/configuring-electron
Expand All @@ -178,32 +175,28 @@ module.exports = configure(function (/* ctx */) {

packager: {
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options

// OS X / Mac App Store
// appBundleId: '',
// appCategoryType: '',
// osxSign: '',
// protocol: 'myapp://path',

// Windows only
// win32metadata: { ... }
},

builder: {
// https://www.electron.build/configuration/configuration

appId: 'frontend'
}
appId: 'frontend',
},
},

// Full list of options: https://v2.quasar.dev/quasar-cli-vite/developing-browser-extensions/configuring-bex
bex: {
contentScripts: [
'my-content-script'
],
contentScripts: ['my-content-script'],

// extendBexScriptsConf (esbuildConf) {}
// extendBexManifestJson (json) {}
}
}
},
};
});
2 changes: 1 addition & 1 deletion frontend/src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@

<script setup lang="ts">
defineOptions({
name: 'App'
name: 'App',
});
</script>
7 changes: 6 additions & 1 deletion frontend/src/constants/about.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/**
* about.ts
*
* Contains organizations, team members, and image paths to populate the About page.
*/
import { OrganizationTeam } from 'src/models/about';

export const team: OrganizationTeam[] = [
Expand Down Expand Up @@ -43,7 +48,7 @@ export const team: OrganizationTeam[] = [
{
name: 'Lauren Diaz',
image: 'team/lauren_diaz.jpg',
}
},
],
},
{
Expand Down
7 changes: 6 additions & 1 deletion frontend/src/constants/links.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/**
* links.ts
*
* Contains commonly re-used links throughout the website.
*/
import { Link } from 'src/models/common';

export const links: Record<string, Link> = {
Expand Down Expand Up @@ -32,6 +37,6 @@ export const links: Record<string, Link> = {
open_data: {
text: 'Open Data',
uri: 'https://aws.amazon.com/opendata',
// uri: 'https://registry.opendata.aws/ember', TODO: When site is published
// uri: 'https://registry.opendata.aws/ember', TODO: When/If site is published
},
};
6 changes: 6 additions & 0 deletions frontend/src/constants/projects.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
/**
* projects.ts
*
* Contains the list of BBQS projects and metadata for each project.
* TODO: Convert this file of data into a real database.
*/
import { ContributorRole, ProjectMetadata } from 'src/models/projects';

// Semi auto-generated from fetchProjectMetadata.ts script
Expand Down
Loading