Web App (BME-KONZA-web-platform)

The public knowledge-base web app (browse resources, expert Q&A, search, request a manual).

⚠️ Domain — resolved & open. hq.bme-konza.org is not this repo — it is the MkDocs developer-documentation site, repo BME-KONZA-HQ (see 18-dev-docs-hq.md). So the domain this Nuxt web app is served on is currently unconfirmed (nothing in the repo pins a hostname). [TODO: which domain serves BME-KONZA-web-platform — e.g. www/app.bme-konza.org — and confirm it's deployed.]

Stack

  • Nuxt 3 as a client-side SPA (ssr: false), Vue 3, Pinia, Tailwind 4, Flowbite, FontAwesome, axios.
  • Firebase (web SDK) for auth/storage; nuxt-gtag for Google Analytics.
  • Extras: nuxt-easy-lightbox, vue-pdf-embed (view manuals), izitoast/nuxt-toast.
  • Node 24.

Layout

pages/        # index.vue, resources/, expert_qa/, search/, request-manual.vue, [...all].vue
components/, composables/, layouts/, stores/ (Pinia), services/, plugins/, utils/, types/
server/       # minimal (SPA, no SSR server routes to speak of)
firebaseConfig.ts
nuxt.config.ts
public/, assets/

Configuration

.env (see .env.example):

Var Purpose
VITE_BASE_URL API base URL
VITE_FIREBASE_API_KEY, VITE_FIREBASE_AUTH_DOMAIN, VITE_PROJECTID, VITE_STORAGEBUCKET, VITE_MESSAGINGSENDERID, VITE_APP_ID Firebase web config
VITE_GOOGLE_MEASUREMENT_ID / GOOGLE_MEASUREMENT_ID GA measurement ID (nuxt-gtag)
VITE_ENV environment marker

[TODO: prod values → vault. Confirm which Firebase project the web app points at —(prod) per [11](firebase.md).]

Build & run

npm install      # runs nuxt prepare (postinstall)
npm run dev      # local dev server
npm run generate # static/SPA build
npm run preview
npm run lint     # eslint  (CI gate)

Deploy

Tag staging-v* / v* → CI build/lint → Coolify webhook → hq.bme-konza.org. Build method in Coolify: [TODO: Docker or nixpacks?]. See 03-deploy-and-releases.md.