More things
All checks were successful
Build and Deploy Nuxt / build (push) Successful in 1m46s

This commit is contained in:
2026-09-21 23:02:37 +02:00
parent 2b29d55688
commit 42084aeeb4
16 changed files with 1324 additions and 274 deletions

View File

@@ -6,7 +6,7 @@ Monorepo for aranroig.com — a personal portfolio website with blog, art galler
- **Frontend**: Nuxt 4 + Vue 3 + TypeScript + SCSS
- **Backend**: Express 5 + Mongoose (MongoDB)
- **i18n**: @nuxtjs/i18n (English, Spanish, Catalan)
- **i18n**: @nuxtjs/i18n (English, Spanish, Catalan, Chinese)
- **Content**: Nuxt Content v3 with Zod-sourced Markdown collections
- **Image optimization**: @nuxt/image
- **Build**: Vite
@@ -27,15 +27,15 @@ Monorepo for aranroig.com — a personal portfolio website with blog, art galler
│ │ │ ├── layouts/ # Page layout wrappers
│ │ │ ├── parts/ # Header, footer, navigation pieces
│ │ │ └── content/ # Blog, art content components
│ │ ├── composables/ # useApi(), theme.ts (light/dark + accent colors)
│ │ ├── composables/ # useApi(), useAuth(), theme.ts (light/dark + accent colors)
│ │ ├── i18n.config.ts# VueI18n fallback locale setup
│ │ └── pages/ # File-based routing (index, blog, art, contact)
│ │ └── pages/ # File-based routing (index, blog, art, contact, admin)
│ ├── content/ # Markdown collections organized by locale
│ │ ├── fixed/ # Static pages per locale
│ │ ├── blog/ # Blog posts
│ │ ├── art/ # Art pieces
│ │ └── projects/ # Project cards
│ ├── i18n/locales/ # en.json, es.json, ca.json translation files
│ ├── i18n/locales/ # en.json, es.json, ca.json, zh.json translation files
│ ├── content.config.ts # Content collection schemas (Zod)
│ └── nuxt.config.ts # Nuxt config: modules, i18n, runtime config
├── docker-compose.yml # Services: nginx, frontend, backend
@@ -75,6 +75,7 @@ In `backend/`:
- Backend reads `.env.development` or `.env.production` based on `NODE_ENV`. Requires `DB_URI` for MongoDB.
- Frontend runtime config key `public.apiBaseUrl` sets the backend API URL used by `useApi()`.
- Content lives in `frontend/content/` under collection folders (`blog`, `fixed`, `art`, `projects`), each with locale subdirectories (`en`, `es`, `ca`).
- Admin panel lives at `/admin` (login, dashboard, orders), guarded by the `admin-auth` middleware and the `admin_token` cookie. Admin pages share the `AdminLayout` shell with the `AdminSidebar`.
## Code Style
@@ -84,6 +85,8 @@ In `backend/`:
- File names: kebab-case for components and pages.
- CSS variables driven by SCSS maps define themes (light/dark) and accent colors.
- TUI aesthetic: box-drawing characters, monospace font (**Hermit** / "Hurmit" via Nerd Fonts), `steps()` easing transitions, pixel-art SVG elements.
- Headings and buttons carry no `>` prompt prefix.
- Titles use proper capitalization: sentence case with capitalized proper nouns (e.g. "Admin dashboard", "Hibolia orders"), never ALL CAPS.
## Content Collections