From 8dc99bc1a40786ebf2fd9d20b91272292285ff72 Mon Sep 17 00:00:00 2001 From: Pau Costa Date: Sat, 28 Mar 2026 00:36:05 +0100 Subject: [PATCH] Implement authentication, organization management, and floor layout features - Add API authentication with JWT strategy using NestJS. - Configure Prisma schema for organizations, users, buildings, floors, and spaces. - Seed initial database with test data and relationships. - Build SvelteKit web pages for dashboard and floor layout with secured routing and organization hierarchy display. - Remove deprecated `AppService` from API. --- .gitignore | 3 +- .idea/workspace.xml | 52 +- .../api/apps/api/src/prisma/prisma.service.ts | 9 + apps/api/dist/app.service.d.ts | 3 - apps/api/package.json | 11 + .../20260327233152_init/migration.sql | 79 +++ .../api/prisma/migrations/migration_lock.toml | 3 + apps/api/prisma/schema.prisma | 64 ++ apps/api/prisma/seed.ts | 69 +++ apps/api/src/app.module.ts | 9 +- apps/api/src/auth/auth.controller.ts | 13 + apps/api/src/auth/auth.module.ts | 25 + apps/api/src/auth/auth.service.ts | 38 ++ .../src/auth/decorators/roles.decorator.ts | 5 + apps/api/src/auth/dto/login.dto.ts | 10 + apps/api/src/auth/guards/jwt-auth.guard.ts | 5 + apps/api/src/auth/guards/roles.guard.ts | 28 + apps/api/src/auth/strategies/jwt.strategy.ts | 29 + apps/api/src/main.ts | 2 +- apps/api/src/prisma/prisma.service.ts | 8 +- apps/api/src/spaces/spaces.controller.ts | 16 +- apps/api/src/spaces/spaces.service.ts | 34 +- apps/web/package.json | 3 +- apps/web/src/lib/stores/auth.ts | 28 + apps/web/src/routes/+layout.svelte | 23 +- apps/web/src/routes/+page.svelte | 56 +- apps/web/src/routes/dashboard/+page.svelte | 57 ++ .../routes/dashboard/floor/[id]/+page.svelte | 54 ++ apps/web/src/routes/login/+page.svelte | 102 +++- package-lock.json | 564 ++++++++++++++++-- 30 files changed, 1242 insertions(+), 160 deletions(-) create mode 100644 apps/api/apps/api/src/prisma/prisma.service.ts delete mode 100644 apps/api/dist/app.service.d.ts create mode 100644 apps/api/prisma/migrations/20260327233152_init/migration.sql create mode 100644 apps/api/prisma/migrations/migration_lock.toml create mode 100644 apps/api/prisma/seed.ts create mode 100644 apps/api/src/auth/auth.controller.ts create mode 100644 apps/api/src/auth/auth.module.ts create mode 100644 apps/api/src/auth/auth.service.ts create mode 100644 apps/api/src/auth/decorators/roles.decorator.ts create mode 100644 apps/api/src/auth/dto/login.dto.ts create mode 100644 apps/api/src/auth/guards/jwt-auth.guard.ts create mode 100644 apps/api/src/auth/guards/roles.guard.ts create mode 100644 apps/api/src/auth/strategies/jwt.strategy.ts create mode 100644 apps/web/src/lib/stores/auth.ts create mode 100644 apps/web/src/routes/dashboard/+page.svelte create mode 100644 apps/web/src/routes/dashboard/floor/[id]/+page.svelte diff --git a/.gitignore b/.gitignore index ec13fff..72e1e00 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ yarn-error.log* .vscode/* .idea/* **/.idea -**/.svelte-kit \ No newline at end of file +**/.svelte-kit +**/dist \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 65091b9..85cd7eb 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,14 +4,22 @@