Skip to content

Admin Frontend ​

The Admin Frontend (Repos/Admin-Frontend/) is the legacy Nuxt 2 SSR admin panel for the Collage DAM platform.

Tech Stack ​

LayerTechnology
FrameworkNuxt 2.18 (Vue 2, SSR)
UIVuetify 2 (Material Design)
StateVuex
HTTPAxios / @nuxtjs/axios
Auth@nuxtjs/auth-next (JWT + custom schemes)
SearchTypesense
Real-timeSocket.IO + Pusher / Laravel Echo
ValidationVuelidate
Cloud StorageAWS S3, Dropbox, Google Drive, Box

Key Conventions ​

  • No semicolons (Prettier enforced), single quotes, 2-space indent
  • All child components are lazy-loaded: MyComponent: () => import('~/components/...')
  • All DAM pages use layout: 'damLayout'
  • CSS variables use --DB* prefix — never hardcode hex
  • SVG icons live in components/svg/ (147+ icons, Collage prefix)
  • EventBus listeners must be cleaned up in beforeDestroy
  • Every API call must be in try/catch/finally with snackbar feedback

Directory Map ​

pages/              File-based routing
  _workspace_id/    Dynamic workspace routes (DAM, settings, external)
  _brand_name/      Portal shared-asset viewer
components/
  dam/              Domain components (AssetDetails, Dialogs, Search, Folders…)
  svg/              Auto-registered SVG icon components
store/              Vuex modules (dam.js, analytics/, loading.js)
layouts/            damLayout, generalSettingsLayout, outerLayout, supportLayout…
middleware/         Route guards (authCheck, guestCheck, can-access-dam-module…)
mixins/             Shared component logic (search-common-functions, uploadQueue…)
plugins/            Nuxt plugins (axios, amplitude, branding, event-bus, helper…)
schemes/            Custom auth schemes
api/                API utilities (S3, Typesense, payments, media-converter…)
assets/css/         Feature-specific stylesheets (custom.css, leftmenu.css…)
utils/              Helper utilities

Relationship to collage-admin ​

The collage-admin project (Nuxt 4) is the current-generation DAM admin. Admin-Frontend is the prior-generation app that it is replacing. Both apps connect to the same backend API and share many UX patterns, but Admin-Frontend uses Vuex + mixins rather than Pinia + composables.