docs: remove admin SPA references and update production URLs
The admin SPA (apps/admin/) has been retired. Its functionality now lives in apps/app/ under /platform/* routes for super_admin users. Updated all documentation to reflect: 2 SPAs instead of 3, removed FRONTEND_ADMIN_URL/port 5173 references, changed production URL from app.crewli.app to crewli.app. Retired admin-specific security audit findings (A13-2, A13-4, A13-5, A13-7) and APPS-01 backlog item. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -12,12 +12,12 @@ Dit is de volledige, vastgestelde architectuur van Crewli. Alle beslissingen hie
|
||||
|
||||
### 1.1 Systeemoverzicht
|
||||
|
||||
| **apps/admin/** | **apps/app/** | **apps/portal/** |
|
||||
|---|---|---|
|
||||
| Super Admin SPA | Organizer SPA | Portal SPA |
|
||||
| **apps/app/** | **apps/portal/** |
|
||||
|---|---|
|
||||
| Organizer + Platform Admin SPA | Portal SPA |
|
||||
|
||||
Vuexy + Vue 3 + TypeScript | Pinia + TanStack Query | Axios → CORS → Sanctum Token
|
||||
Alle drie apps zijn Vue 3 SPA's — Vuexy template — communiceren uitsluitend via REST API
|
||||
Beide apps zijn Vue 3 SPA's — Vuexy template — communiceren uitsluitend via REST API
|
||||
|
||||
**api/ — Laravel 12 REST API (ENIGE backend — geen Blade views)**
|
||||
PHP 8.2 | Sanctum | Spatie Permission | MySQL 8 | Redis | Queue Workers
|
||||
@@ -35,16 +35,14 @@ PHP 8.2 | Sanctum | Spatie Permission | MySQL 8 | Redis | Queue Workers
|
||||
| **App / Laag** | **Technology** | **Gebruik & verantwoordelijkheid** |
|
||||
|----|----|----|
|
||||
| api/ | Laravel 12 + Sanctum | REST API, authenticatie, business logic, database, queue workers, e-mail, PDF-generatie. Geen enkele HTML pagina. |
|
||||
| apps/admin/ | Vue 3 + Vuexy (vol) | Super Admin SPA: organisations beheren, billing, platform-gebruikers. Klein en eenvoudig. |
|
||||
| apps/app/ | Vue 3 + Vuexy (vol) | Organizer SPA: de hoofdapp. Events, shifts, persons, artists, briefings, Mission Control. 90% van je werk. |
|
||||
| apps/app/ | Vue 3 + Vuexy (vol) | Organizer + Platform Admin SPA: de hoofdapp. Events, shifts, persons, artists, briefings, Mission Control. Super admin functionaliteit onder `/platform/*` routes. |
|
||||
| apps/portal/ | Vue 3 + Vuexy (gestript) | Portal SPA: twee toegangsmodi. Login voor vrijwilligers/crew. Token voor artiesten/leveranciers/pers. |
|
||||
|
||||
### 1.3 Vuexy — waar en hoe
|
||||
|
||||
| **App / Laag** | **Technology** | **Gebruik & verantwoordelijkheid** |
|
||||
|----|----|----|
|
||||
| apps/admin/ | Vuexy volledig | Admin template ongewijzigd: sidebar, dark mode, customizer. Weinig aanpassingen nodig. |
|
||||
| apps/app/ | Vuexy volledig | Sidebar nav aanpassen voor Crewli-structuur. Customizer/demo-componenten verwijderen. Full Vuetify component gebruik. |
|
||||
| apps/app/ | Vuexy volledig | Sidebar nav aanpassen voor Crewli-structuur. Customizer/demo-componenten verwijderen. Full Vuetify component gebruik. Super admin functionaliteit onder `/platform/*` routes. |
|
||||
| apps/portal/ | Vuexy gestript | Geen sidebar nav, geen customizer, geen dark mode toggle. Wel: Vuetify componenten, Vuexy SCSS variabelen, Vuexy fonts. Eigen layout: top-bar met event-logo + naam. Mobile-first. |
|
||||
|
||||
### 1.4 Portal: twee toegangsmodi
|
||||
@@ -109,11 +107,11 @@ Route::prefix('v1')->group(function () {
|
||||
|
||||
> **LET OP — CORS**
|
||||
>
|
||||
> Laravel CORS config (config/cors.php) moet drie origins toestaan:
|
||||
> Laravel CORS config (config/cors.php) moet twee origins toestaan:
|
||||
>
|
||||
> admin.crewli.app | app.crewli.app | portal.crewli.app
|
||||
> crewli.app | portal.crewli.app
|
||||
>
|
||||
> In development: http://localhost:5173 | :5174 | :5175
|
||||
> In development: http://localhost:5174 | :5175
|
||||
|
||||
## 2 — Actielijst: Wat Je Nu Doet
|
||||
|
||||
@@ -187,17 +185,16 @@ Een centrale axios instance — dubbele laag verwijderen
|
||||
|
||||
- ☐ Verwijder daarna: src/lib/api-client.ts en src/utils/api.ts
|
||||
- ☐ Hernoem src/composables/useApi.ts → src/composables/useApiHelpers.ts (algemene helpers)
|
||||
- ☐ Doe hetzelfde voor apps/portal/ en apps/admin/ (zelfde patroon)
|
||||
- ☐ Doe hetzelfde voor apps/portal/ (zelfde patroon)
|
||||
|
||||
### Stap 3 — TanStack Query installeren **NU**
|
||||
|
||||
Ontbreekt nog — vereist voor alle API state management
|
||||
|
||||
- ☐ **Installeer in alle drie apps (app/, admin/, portal/)**
|
||||
- ☐ **Installeer in beide apps (app/, portal/)**
|
||||
|
||||
```sh
|
||||
cd apps/app && pnpm add @tanstack/vue-query
|
||||
cd ../admin && pnpm add @tanstack/vue-query
|
||||
cd ../portal && pnpm add @tanstack/vue-query
|
||||
```
|
||||
|
||||
@@ -216,7 +213,7 @@ Ontbreekt nog — vereist voor alle API state management
|
||||
})
|
||||
```
|
||||
|
||||
- ☐ Installeer ook formuliervalidatie (alle apps)
|
||||
- ☐ Installeer ook formuliervalidatie (beide apps)
|
||||
|
||||
```sh
|
||||
pnpm add vee-validate zod @vee-validate/zod
|
||||
@@ -251,12 +248,11 @@ Spatie packages zijn vereist voor fase 1
|
||||
# Registreer in bootstrap/app.php als 'portal.token'
|
||||
```
|
||||
|
||||
- ☐ Update config/cors.php voor drie frontend origins
|
||||
- ☐ Update config/cors.php voor twee frontend origins
|
||||
|
||||
```php
|
||||
// config/cors.php
|
||||
'allowed_origins' => [
|
||||
env('FRONTEND_ADMIN_URL', 'http://localhost:5173'),
|
||||
env('FRONTEND_APP_URL', 'http://localhost:5174'),
|
||||
env('FRONTEND_PORTAL_URL','http://localhost:5175'),
|
||||
],
|
||||
@@ -285,9 +281,9 @@ CLAUDE.md, .cursorrules, docs/ — dit is het belangrijkste wat je doet
|
||||
- Login-based (auth:sanctum): vrijwilligers, crew — persons met user_id
|
||||
- Token-based (portal.token middleware): artiesten, leveranciers, pers — persons zonder user_id
|
||||
|
||||
- apps/ mapping: admin/ = Super Admin, app/ = Organizer, portal/ = Externe gebruikers
|
||||
- apps/ mapping: app/ = Organizer + Platform Admin (super admin via /platform/*), portal/ = Externe gebruikers
|
||||
|
||||
- CORS: drie origins configureren in zowel Laravel als Vite dev server
|
||||
- CORS: twee origins configureren in zowel Laravel als Vite dev server
|
||||
|
||||
### Stap 6 — Vite dev ports configureren **NU**
|
||||
|
||||
@@ -296,7 +292,6 @@ Elk frontend-app een eigen port zodat CORS werkt
|
||||
- ☐ **Pas vite.config.ts aan in elke app**
|
||||
|
||||
```ts
|
||||
// apps/admin/vite.config.ts → port: 5173
|
||||
// apps/app/vite.config.ts → port: 5174
|
||||
// apps/portal/vite.config.ts → port: 5175
|
||||
server: {
|
||||
@@ -440,12 +435,12 @@ Na werkende apps/app/ basis
|
||||
| **1** | apps/band/ hernoemd naar apps/portal/ | ☐ Klaar |
|
||||
| **2** | Demo-rommel verwijderd uit apps/app/ | ☐ Klaar |
|
||||
| **3** | Dubbele API-laag opgeruimd → een src/lib/axios.ts per app | ☐ Klaar |
|
||||
| **4** | TanStack Query geinstalleerd in alle drie apps + geregistreerd in main.ts | ☐ Klaar |
|
||||
| **5** | VeeValidate + Zod geinstalleerd in alle drie apps | ☐ Klaar |
|
||||
| **4** | TanStack Query geinstalleerd in beide apps + geregistreerd in main.ts | ☐ Klaar |
|
||||
| **5** | VeeValidate + Zod geinstalleerd in beide apps | ☐ Klaar |
|
||||
| **6** | Spatie packages geinstalleerd in api/ + configs gepubliceerd | ☐ Klaar |
|
||||
| **7** | PortalTokenMiddleware skeleton aangemaakt | ☐ Klaar |
|
||||
| **8** | config/cors.php: drie frontend origins geconfigureerd | ☐ Klaar |
|
||||
| **9** | Vite dev ports: admin=5173, app=5174, portal=5175 | ☐ Klaar |
|
||||
| **8** | config/cors.php: twee frontend origins geconfigureerd | ☐ Klaar |
|
||||
| **9** | Vite dev ports: app=5174, portal=5175 | ☐ Klaar |
|
||||
| **10** | .env.local aangemaakt per app met VITE_API_URL | ☐ Klaar |
|
||||
| **11** | CLAUDE.md aangemaakt en volledig ingevuld (Dev Guide sectie 3.1 + portal architectuur) | ☐ Klaar |
|
||||
| **12** | .cursorrules aangemaakt (Dev Guide sectie 3.2) | ☐ Klaar |
|
||||
|
||||
Reference in New Issue
Block a user