Appearance
Admin Frontend ​
The Admin Frontend (Repos/Admin-Frontend/) is the legacy Nuxt 2 SSR admin panel for the Collage DAM platform.
Tech Stack ​
| Layer | Technology |
|---|---|
| Framework | Nuxt 2.18 (Vue 2, SSR) |
| UI | Vuetify 2 (Material Design) |
| State | Vuex |
| HTTP | Axios / @nuxtjs/axios |
| Auth | @nuxtjs/auth-next (JWT + custom schemes) |
| Search | Typesense |
| Real-time | Socket.IO + Pusher / Laravel Echo |
| Validation | Vuelidate |
| Cloud Storage | AWS 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,Collageprefix) - EventBus listeners must be cleaned up in
beforeDestroy - Every API call must be in
try/catch/finallywith 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 utilitiesRelationship 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.