diff --git a/api/.env.development b/api/.env.development deleted file mode 100644 index 50c5a3f6..00000000 --- a/api/.env.development +++ /dev/null @@ -1,2 +0,0 @@ -# Prisma environment variables -DATABASE_URL="file:./db.sqlite" diff --git a/api/src/app.ts b/api/src/app.ts index f763f521..85492154 100644 --- a/api/src/app.ts +++ b/api/src/app.ts @@ -9,7 +9,12 @@ export const createApp = (): Express => { logger.debug('Creating app'); const app = express(); - app.get('/', expressPlayground({ endpoint: '/api/graphql' })); + app.get('/', expressPlayground({ + endpoint: '/api/graphql', + settings: { + 'editor.theme': 'light', + }, + })); return app; }; diff --git a/frontend/app.vue b/frontend/app.vue index 2b1be090..fa29d274 100644 --- a/frontend/app.vue +++ b/frontend/app.vue @@ -1,5 +1,14 @@ + + diff --git a/frontend/assets/logo.png b/frontend/assets/logo.png new file mode 100644 index 00000000..56150f28 Binary files /dev/null and b/frontend/assets/logo.png differ diff --git a/frontend/components/base/MenuItem.vue b/frontend/components/base/MenuItem.vue new file mode 100644 index 00000000..38a05d85 --- /dev/null +++ b/frontend/components/base/MenuItem.vue @@ -0,0 +1,20 @@ + + + diff --git a/frontend/components/layout/TheHeader.vue b/frontend/components/layout/TheHeader.vue new file mode 100644 index 00000000..14165cb3 --- /dev/null +++ b/frontend/components/layout/TheHeader.vue @@ -0,0 +1,31 @@ + + + + + diff --git a/frontend/components/layout/TheMenu.vue b/frontend/components/layout/TheMenu.vue new file mode 100644 index 00000000..6a81194b --- /dev/null +++ b/frontend/components/layout/TheMenu.vue @@ -0,0 +1,36 @@ + + + diff --git a/frontend/nuxt.config.ts b/frontend/nuxt.config.ts index 7bbdde42..125abff2 100644 --- a/frontend/nuxt.config.ts +++ b/frontend/nuxt.config.ts @@ -1,10 +1,40 @@ // https://nuxt.com/docs/api/configuration/nuxt-config export default defineNuxtConfig({ + app: { + head: { + title: 'Switchboard API', + meta: [ + { name: 'viewport', content: 'width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0' } + ] + } + }, modules: [ '@nuxtjs/tailwindcss', '@huntersofbook/naive-ui-nuxt' ], typescript: { shim: false + }, + tailwindcss: { + config: { + theme: { + extend: { + colors: { + primary: '#e88339', + secondary: '#fae6d8' + } + } + }, + content: [] + } + }, + naiveUI: { + themeOverrides: { + common: { + primaryColor: '#e88339', + primaryColorHover: '#fae6d8', + primaryColorPressed: '#fae6d8' + } + } } }) diff --git a/frontend/package-lock.json b/frontend/package-lock.json index f4c52142..f0263b93 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,15 +1,21 @@ { - "name": "frontend", + "name": "powerhouse-switchboard-frontend", + "version": "0.0.1", "lockfileVersion": 2, "requires": true, "packages": { "": { + "name": "powerhouse-switchboard-frontend", + "version": "0.0.1", "hasInstallScript": true, + "license": "AGPL-3", "devDependencies": { "@huntersofbook/naive-ui-nuxt": "^0.7.1", "@nuxtjs/eslint-config-typescript": "^12.0.0", "@nuxtjs/tailwindcss": "^6.4.0", "@types/node": "^18.11.18", + "@vicons/fluent": "^0.12.0", + "@vicons/ionicons5": "^0.12.0", "eslint": "^8.33.0", "nuxt": "^3.2.3", "typescript": "^4.9.5", @@ -2360,6 +2366,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@vicons/fluent": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@vicons/fluent/-/fluent-0.12.0.tgz", + "integrity": "sha512-ATCiqPuiJ6RI5GBlD3BIpZ9Xw4MsCA4RpI5oR6MCti4quS4mX1Gp6N74FCzw7lgOj+80rV4HMKhZTVInwimpVQ==", + "dev": true + }, + "node_modules/@vicons/ionicons5": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.12.0.tgz", + "integrity": "sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==", + "dev": true + }, "node_modules/@vitejs/plugin-vue": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz", @@ -14185,6 +14203,18 @@ } } }, + "@vicons/fluent": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@vicons/fluent/-/fluent-0.12.0.tgz", + "integrity": "sha512-ATCiqPuiJ6RI5GBlD3BIpZ9Xw4MsCA4RpI5oR6MCti4quS4mX1Gp6N74FCzw7lgOj+80rV4HMKhZTVInwimpVQ==", + "dev": true + }, + "@vicons/ionicons5": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@vicons/ionicons5/-/ionicons5-0.12.0.tgz", + "integrity": "sha512-Iy1EUVRpX0WWxeu1VIReR1zsZLMc4fqpt223czR+Rpnrwu7pt46nbnC2ycO7ItI/uqDLJxnbcMC7FujKs9IfFA==", + "dev": true + }, "@vitejs/plugin-vue": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.1.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 14debfb4..f8f1a08f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -4,6 +4,10 @@ "license": "AGPL-3", "type": "module", "main": ".output/server/index.mjs", + "repository": { + "type": "git", + "url": "https://github.com/makerdao-ses/switchboard-boilerplate" + }, "scripts": { "build": "nuxt build", "dev": "nuxt dev", @@ -16,9 +20,11 @@ }, "devDependencies": { "@huntersofbook/naive-ui-nuxt": "^0.7.1", - "@nuxtjs/tailwindcss": "^6.4.0", "@nuxtjs/eslint-config-typescript": "^12.0.0", + "@nuxtjs/tailwindcss": "^6.4.0", "@types/node": "^18.11.18", + "@vicons/fluent": "^0.12.0", + "@vicons/ionicons5": "^0.12.0", "eslint": "^8.33.0", "nuxt": "^3.2.3", "typescript": "^4.9.5", diff --git a/frontend/pages/graphql-playground.vue b/frontend/pages/graphql-playground.vue new file mode 100644 index 00000000..7bf74b17 --- /dev/null +++ b/frontend/pages/graphql-playground.vue @@ -0,0 +1,5 @@ +