From 3d2de67d1e0c18e1f72662dfd59f7f4e6b754773 Mon Sep 17 00:00:00 2001 From: binhkid2 Date: Thu, 19 Feb 2026 05:24:02 +0900 Subject: [PATCH] FullStack-Blog-Nestjs-Nextjs-Postgres --- .DS_Store | Bin 0 -> 6148 bytes README.md | 6 +++--- .env.example => backend/.env.example | 0 .gitignore => backend/.gitignore | 0 .prettierrc => backend/.prettierrc | 0 {database => backend/database}/init.sql | 0 eslint.config.mjs => backend/eslint.config.mjs | 0 nest-cli.json => backend/nest-cli.json | 0 package-lock.json => backend/package-lock.json | 0 package.json => backend/package.json | 0 {scripts => backend/scripts}/seed-admin.ts | 0 {scripts => backend/scripts}/seed-blog-posts.ts | 0 {src => backend/src}/app.controller.spec.ts | 0 {src => backend/src}/app.controller.ts | 0 {src => backend/src}/app.module.ts | 0 {src => backend/src}/app.service.ts | 0 {src => backend/src}/auth/auth.controller.ts | 0 {src => backend/src}/auth/auth.module.ts | 0 {src => backend/src}/auth/auth.service.ts | 0 {src => backend/src}/auth/dto/login.dto.ts | 0 .../src}/auth/dto/magic-link-request.dto.ts | 0 .../src}/auth/dto/magic-link-verify.dto.ts | 0 .../src}/auth/dto/password-reset-confirm.dto.ts | 0 .../src}/auth/dto/password-reset-request.dto.ts | 0 {src => backend/src}/auth/dto/register.dto.ts | 0 .../src}/auth/strategies/google.strategy.ts | 0 .../src}/blog-posts/blog-posts.controller.ts | 0 .../src}/blog-posts/blog-posts.module.ts | 0 .../src}/blog-posts/blog-posts.service.spec.ts | 0 .../src}/blog-posts/blog-posts.service.ts | 0 .../src}/blog-posts/dto/create-post.dto.ts | 0 .../src}/blog-posts/dto/list-posts-query.dto.ts | 0 .../src}/blog-posts/dto/update-post.dto.ts | 0 .../src}/blog-posts/entities/blog-post.entity.ts | 0 .../common/decorators/current-user.decorator.ts | 0 .../src}/common/decorators/public.decorator.ts | 0 .../src}/common/decorators/roles.decorator.ts | 0 .../src}/common/filters/all-exceptions.filter.ts | 0 .../src}/common/guards/jwt-auth.guard.ts | 0 .../src}/common/guards/roles.guard.ts | 0 .../src}/common/helpers/jwt.helper.ts | 0 .../src}/common/helpers/mailer.helper.ts | 0 .../src}/common/helpers/slug.helper.ts | 0 .../src}/common/middleware/csrf.middleware.ts | 0 {src => backend/src}/config/env.validation.ts | 0 {src => backend/src}/main.ts | 0 {src => backend/src}/pages/pages.controller.ts | 0 {src => backend/src}/pages/pages.module.ts | 0 .../tokens/entities/magic-link-token.entity.ts | 0 .../src}/tokens/entities/oauth-account.entity.ts | 0 .../entities/password-reset-token.entity.ts | 0 .../src}/tokens/entities/refresh-token.entity.ts | 0 {src => backend/src}/tokens/tokens.module.ts | 0 .../src}/users/dto/create-user.dto.ts | 0 .../src}/users/dto/update-user-name.dto.ts | 0 .../src}/users/dto/update-user-role.dto.ts | 0 .../src}/users/entities/user.entity.ts | 0 {src => backend/src}/users/users.controller.ts | 0 {src => backend/src}/users/users.module.ts | 0 {src => backend/src}/users/users.service.spec.ts | 0 {src => backend/src}/users/users.service.ts | 0 {src => backend/src}/views/layouts/base.njk | 0 {src => backend/src}/views/layouts/dashboard.njk | 0 {src => backend/src}/views/pages/auth.njk | 0 {src => backend/src}/views/pages/blog-detail.njk | 0 {src => backend/src}/views/pages/dashboard.njk | 0 {src => backend/src}/views/pages/home.njk | 0 .../src}/views/partials/dashboard-post-table.njk | 0 .../src}/views/partials/dashboard-user-table.njk | 0 {src => backend/src}/views/partials/flash.njk | 0 .../src}/views/partials/pagination.njk | 0 .../src}/views/partials/post-grid.njk | 0 {test => backend/test}/app.e2e-spec.ts | 0 {test => backend/test}/auth.e2e-spec.ts | 0 {test => backend/test}/jest-e2e.json | 0 {test => backend/test}/public-posts.e2e-spec.ts | 0 {test => backend/test}/rbac.e2e-spec.ts | 0 .../tsconfig.build.json | 0 tsconfig.json => backend/tsconfig.json | 0 79 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 .DS_Store rename .env.example => backend/.env.example (100%) rename .gitignore => backend/.gitignore (100%) rename .prettierrc => backend/.prettierrc (100%) rename {database => backend/database}/init.sql (100%) rename eslint.config.mjs => backend/eslint.config.mjs (100%) rename nest-cli.json => backend/nest-cli.json (100%) rename package-lock.json => backend/package-lock.json (100%) rename package.json => backend/package.json (100%) rename {scripts => backend/scripts}/seed-admin.ts (100%) rename {scripts => backend/scripts}/seed-blog-posts.ts (100%) rename {src => backend/src}/app.controller.spec.ts (100%) rename {src => backend/src}/app.controller.ts (100%) rename {src => backend/src}/app.module.ts (100%) rename {src => backend/src}/app.service.ts (100%) rename {src => backend/src}/auth/auth.controller.ts (100%) rename {src => backend/src}/auth/auth.module.ts (100%) rename {src => backend/src}/auth/auth.service.ts (100%) rename {src => backend/src}/auth/dto/login.dto.ts (100%) rename {src => backend/src}/auth/dto/magic-link-request.dto.ts (100%) rename {src => backend/src}/auth/dto/magic-link-verify.dto.ts (100%) rename {src => backend/src}/auth/dto/password-reset-confirm.dto.ts (100%) rename {src => backend/src}/auth/dto/password-reset-request.dto.ts (100%) rename {src => backend/src}/auth/dto/register.dto.ts (100%) rename {src => backend/src}/auth/strategies/google.strategy.ts (100%) rename {src => backend/src}/blog-posts/blog-posts.controller.ts (100%) rename {src => backend/src}/blog-posts/blog-posts.module.ts (100%) rename {src => backend/src}/blog-posts/blog-posts.service.spec.ts (100%) rename {src => backend/src}/blog-posts/blog-posts.service.ts (100%) rename {src => backend/src}/blog-posts/dto/create-post.dto.ts (100%) rename {src => backend/src}/blog-posts/dto/list-posts-query.dto.ts (100%) rename {src => backend/src}/blog-posts/dto/update-post.dto.ts (100%) rename {src => backend/src}/blog-posts/entities/blog-post.entity.ts (100%) rename {src => backend/src}/common/decorators/current-user.decorator.ts (100%) rename {src => backend/src}/common/decorators/public.decorator.ts (100%) rename {src => backend/src}/common/decorators/roles.decorator.ts (100%) rename {src => backend/src}/common/filters/all-exceptions.filter.ts (100%) rename {src => backend/src}/common/guards/jwt-auth.guard.ts (100%) rename {src => backend/src}/common/guards/roles.guard.ts (100%) rename {src => backend/src}/common/helpers/jwt.helper.ts (100%) rename {src => backend/src}/common/helpers/mailer.helper.ts (100%) rename {src => backend/src}/common/helpers/slug.helper.ts (100%) rename {src => backend/src}/common/middleware/csrf.middleware.ts (100%) rename {src => backend/src}/config/env.validation.ts (100%) rename {src => backend/src}/main.ts (100%) rename {src => backend/src}/pages/pages.controller.ts (100%) rename {src => backend/src}/pages/pages.module.ts (100%) rename {src => backend/src}/tokens/entities/magic-link-token.entity.ts (100%) rename {src => backend/src}/tokens/entities/oauth-account.entity.ts (100%) rename {src => backend/src}/tokens/entities/password-reset-token.entity.ts (100%) rename {src => backend/src}/tokens/entities/refresh-token.entity.ts (100%) rename {src => backend/src}/tokens/tokens.module.ts (100%) rename {src => backend/src}/users/dto/create-user.dto.ts (100%) rename {src => backend/src}/users/dto/update-user-name.dto.ts (100%) rename {src => backend/src}/users/dto/update-user-role.dto.ts (100%) rename {src => backend/src}/users/entities/user.entity.ts (100%) rename {src => backend/src}/users/users.controller.ts (100%) rename {src => backend/src}/users/users.module.ts (100%) rename {src => backend/src}/users/users.service.spec.ts (100%) rename {src => backend/src}/users/users.service.ts (100%) rename {src => backend/src}/views/layouts/base.njk (100%) rename {src => backend/src}/views/layouts/dashboard.njk (100%) rename {src => backend/src}/views/pages/auth.njk (100%) rename {src => backend/src}/views/pages/blog-detail.njk (100%) rename {src => backend/src}/views/pages/dashboard.njk (100%) rename {src => backend/src}/views/pages/home.njk (100%) rename {src => backend/src}/views/partials/dashboard-post-table.njk (100%) rename {src => backend/src}/views/partials/dashboard-user-table.njk (100%) rename {src => backend/src}/views/partials/flash.njk (100%) rename {src => backend/src}/views/partials/pagination.njk (100%) rename {src => backend/src}/views/partials/post-grid.njk (100%) rename {test => backend/test}/app.e2e-spec.ts (100%) rename {test => backend/test}/auth.e2e-spec.ts (100%) rename {test => backend/test}/jest-e2e.json (100%) rename {test => backend/test}/public-posts.e2e-spec.ts (100%) rename {test => backend/test}/rbac.e2e-spec.ts (100%) rename tsconfig.build.json => backend/tsconfig.build.json (100%) rename tsconfig.json => backend/tsconfig.json (100%) diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..28116e3a6a3fe7797086d193d2dc404a5d848336 GIT binary patch literal 6148 zcmeHK&2G~`5S~c_BrQ;F92X=+`9o_0YH|NF|$O? zFNEW)3zE_vM&vOjqpl~r)cMpMEo2*qVZbo(uQ9;iZW=-ez;T_E->>I}(f0Ni%feJT zbLQ;1Y;I}!{Dq4vR(^FYU&t4W#q~=Ymp3=Bw5_#n$2k}Ta_sl+NKXb8Z!DUwBmIW^ zS~Mf^Dq^E;t^SnvNc3JDyY`Molv6l%BxBtRgz%pZ0=HM|_d^jiPuQ)twGujk^t`$Z z-N==G>sdII(`qCRtA1b7j1yN(Yaj{ zc{Ex`JrF!nGIwLtaa?~;-ub4UW!bLJjO)s^kY|=XpKN-khyncyWS39Tn$1!T1BQV=V}SRE5-FptF;I}8b{BJ`i6qZ?Bp*c z>43IE(;5a01M>`|RoCM4|L*Va|MNwrXBaRH{8tQMX1B3hp(W|FbzyOQ)|N>3Nm)2A oR+yAfqmSdn;G=khG!crG*dVku#tO+pVtxb?8cbst_^S;30I6+}A^-pY literal 0 HcmV?d00001 diff --git a/README.md b/README.md index ec17910..2d49b58 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ [Nest](https://github.com/nestjs/nest) framework TypeScript starter repository. -## Project init +## Backend init ```bash # 1. Set up PostgreSQL and fill in .env @@ -42,7 +42,7 @@ npm run seed:admin npm run seed:posts ``` -## Compile and run the project +## Compile and run Backend ```bash # development @@ -55,7 +55,7 @@ $ npm run start:dev $ npm run start:prod ``` -## Run tests +## Run tests in Backend ```bash # unit tests diff --git a/.env.example b/backend/.env.example similarity index 100% rename from .env.example rename to backend/.env.example diff --git a/.gitignore b/backend/.gitignore similarity index 100% rename from .gitignore rename to backend/.gitignore diff --git a/.prettierrc b/backend/.prettierrc similarity index 100% rename from .prettierrc rename to backend/.prettierrc diff --git a/database/init.sql b/backend/database/init.sql similarity index 100% rename from database/init.sql rename to backend/database/init.sql diff --git a/eslint.config.mjs b/backend/eslint.config.mjs similarity index 100% rename from eslint.config.mjs rename to backend/eslint.config.mjs diff --git a/nest-cli.json b/backend/nest-cli.json similarity index 100% rename from nest-cli.json rename to backend/nest-cli.json diff --git a/package-lock.json b/backend/package-lock.json similarity index 100% rename from package-lock.json rename to backend/package-lock.json diff --git a/package.json b/backend/package.json similarity index 100% rename from package.json rename to backend/package.json diff --git a/scripts/seed-admin.ts b/backend/scripts/seed-admin.ts similarity index 100% rename from scripts/seed-admin.ts rename to backend/scripts/seed-admin.ts diff --git a/scripts/seed-blog-posts.ts b/backend/scripts/seed-blog-posts.ts similarity index 100% rename from scripts/seed-blog-posts.ts rename to backend/scripts/seed-blog-posts.ts diff --git a/src/app.controller.spec.ts b/backend/src/app.controller.spec.ts similarity index 100% rename from src/app.controller.spec.ts rename to backend/src/app.controller.spec.ts diff --git a/src/app.controller.ts b/backend/src/app.controller.ts similarity index 100% rename from src/app.controller.ts rename to backend/src/app.controller.ts diff --git a/src/app.module.ts b/backend/src/app.module.ts similarity index 100% rename from src/app.module.ts rename to backend/src/app.module.ts diff --git a/src/app.service.ts b/backend/src/app.service.ts similarity index 100% rename from src/app.service.ts rename to backend/src/app.service.ts diff --git a/src/auth/auth.controller.ts b/backend/src/auth/auth.controller.ts similarity index 100% rename from src/auth/auth.controller.ts rename to backend/src/auth/auth.controller.ts diff --git a/src/auth/auth.module.ts b/backend/src/auth/auth.module.ts similarity index 100% rename from src/auth/auth.module.ts rename to backend/src/auth/auth.module.ts diff --git a/src/auth/auth.service.ts b/backend/src/auth/auth.service.ts similarity index 100% rename from src/auth/auth.service.ts rename to backend/src/auth/auth.service.ts diff --git a/src/auth/dto/login.dto.ts b/backend/src/auth/dto/login.dto.ts similarity index 100% rename from src/auth/dto/login.dto.ts rename to backend/src/auth/dto/login.dto.ts diff --git a/src/auth/dto/magic-link-request.dto.ts b/backend/src/auth/dto/magic-link-request.dto.ts similarity index 100% rename from src/auth/dto/magic-link-request.dto.ts rename to backend/src/auth/dto/magic-link-request.dto.ts diff --git a/src/auth/dto/magic-link-verify.dto.ts b/backend/src/auth/dto/magic-link-verify.dto.ts similarity index 100% rename from src/auth/dto/magic-link-verify.dto.ts rename to backend/src/auth/dto/magic-link-verify.dto.ts diff --git a/src/auth/dto/password-reset-confirm.dto.ts b/backend/src/auth/dto/password-reset-confirm.dto.ts similarity index 100% rename from src/auth/dto/password-reset-confirm.dto.ts rename to backend/src/auth/dto/password-reset-confirm.dto.ts diff --git a/src/auth/dto/password-reset-request.dto.ts b/backend/src/auth/dto/password-reset-request.dto.ts similarity index 100% rename from src/auth/dto/password-reset-request.dto.ts rename to backend/src/auth/dto/password-reset-request.dto.ts diff --git a/src/auth/dto/register.dto.ts b/backend/src/auth/dto/register.dto.ts similarity index 100% rename from src/auth/dto/register.dto.ts rename to backend/src/auth/dto/register.dto.ts diff --git a/src/auth/strategies/google.strategy.ts b/backend/src/auth/strategies/google.strategy.ts similarity index 100% rename from src/auth/strategies/google.strategy.ts rename to backend/src/auth/strategies/google.strategy.ts diff --git a/src/blog-posts/blog-posts.controller.ts b/backend/src/blog-posts/blog-posts.controller.ts similarity index 100% rename from src/blog-posts/blog-posts.controller.ts rename to backend/src/blog-posts/blog-posts.controller.ts diff --git a/src/blog-posts/blog-posts.module.ts b/backend/src/blog-posts/blog-posts.module.ts similarity index 100% rename from src/blog-posts/blog-posts.module.ts rename to backend/src/blog-posts/blog-posts.module.ts diff --git a/src/blog-posts/blog-posts.service.spec.ts b/backend/src/blog-posts/blog-posts.service.spec.ts similarity index 100% rename from src/blog-posts/blog-posts.service.spec.ts rename to backend/src/blog-posts/blog-posts.service.spec.ts diff --git a/src/blog-posts/blog-posts.service.ts b/backend/src/blog-posts/blog-posts.service.ts similarity index 100% rename from src/blog-posts/blog-posts.service.ts rename to backend/src/blog-posts/blog-posts.service.ts diff --git a/src/blog-posts/dto/create-post.dto.ts b/backend/src/blog-posts/dto/create-post.dto.ts similarity index 100% rename from src/blog-posts/dto/create-post.dto.ts rename to backend/src/blog-posts/dto/create-post.dto.ts diff --git a/src/blog-posts/dto/list-posts-query.dto.ts b/backend/src/blog-posts/dto/list-posts-query.dto.ts similarity index 100% rename from src/blog-posts/dto/list-posts-query.dto.ts rename to backend/src/blog-posts/dto/list-posts-query.dto.ts diff --git a/src/blog-posts/dto/update-post.dto.ts b/backend/src/blog-posts/dto/update-post.dto.ts similarity index 100% rename from src/blog-posts/dto/update-post.dto.ts rename to backend/src/blog-posts/dto/update-post.dto.ts diff --git a/src/blog-posts/entities/blog-post.entity.ts b/backend/src/blog-posts/entities/blog-post.entity.ts similarity index 100% rename from src/blog-posts/entities/blog-post.entity.ts rename to backend/src/blog-posts/entities/blog-post.entity.ts diff --git a/src/common/decorators/current-user.decorator.ts b/backend/src/common/decorators/current-user.decorator.ts similarity index 100% rename from src/common/decorators/current-user.decorator.ts rename to backend/src/common/decorators/current-user.decorator.ts diff --git a/src/common/decorators/public.decorator.ts b/backend/src/common/decorators/public.decorator.ts similarity index 100% rename from src/common/decorators/public.decorator.ts rename to backend/src/common/decorators/public.decorator.ts diff --git a/src/common/decorators/roles.decorator.ts b/backend/src/common/decorators/roles.decorator.ts similarity index 100% rename from src/common/decorators/roles.decorator.ts rename to backend/src/common/decorators/roles.decorator.ts diff --git a/src/common/filters/all-exceptions.filter.ts b/backend/src/common/filters/all-exceptions.filter.ts similarity index 100% rename from src/common/filters/all-exceptions.filter.ts rename to backend/src/common/filters/all-exceptions.filter.ts diff --git a/src/common/guards/jwt-auth.guard.ts b/backend/src/common/guards/jwt-auth.guard.ts similarity index 100% rename from src/common/guards/jwt-auth.guard.ts rename to backend/src/common/guards/jwt-auth.guard.ts diff --git a/src/common/guards/roles.guard.ts b/backend/src/common/guards/roles.guard.ts similarity index 100% rename from src/common/guards/roles.guard.ts rename to backend/src/common/guards/roles.guard.ts diff --git a/src/common/helpers/jwt.helper.ts b/backend/src/common/helpers/jwt.helper.ts similarity index 100% rename from src/common/helpers/jwt.helper.ts rename to backend/src/common/helpers/jwt.helper.ts diff --git a/src/common/helpers/mailer.helper.ts b/backend/src/common/helpers/mailer.helper.ts similarity index 100% rename from src/common/helpers/mailer.helper.ts rename to backend/src/common/helpers/mailer.helper.ts diff --git a/src/common/helpers/slug.helper.ts b/backend/src/common/helpers/slug.helper.ts similarity index 100% rename from src/common/helpers/slug.helper.ts rename to backend/src/common/helpers/slug.helper.ts diff --git a/src/common/middleware/csrf.middleware.ts b/backend/src/common/middleware/csrf.middleware.ts similarity index 100% rename from src/common/middleware/csrf.middleware.ts rename to backend/src/common/middleware/csrf.middleware.ts diff --git a/src/config/env.validation.ts b/backend/src/config/env.validation.ts similarity index 100% rename from src/config/env.validation.ts rename to backend/src/config/env.validation.ts diff --git a/src/main.ts b/backend/src/main.ts similarity index 100% rename from src/main.ts rename to backend/src/main.ts diff --git a/src/pages/pages.controller.ts b/backend/src/pages/pages.controller.ts similarity index 100% rename from src/pages/pages.controller.ts rename to backend/src/pages/pages.controller.ts diff --git a/src/pages/pages.module.ts b/backend/src/pages/pages.module.ts similarity index 100% rename from src/pages/pages.module.ts rename to backend/src/pages/pages.module.ts diff --git a/src/tokens/entities/magic-link-token.entity.ts b/backend/src/tokens/entities/magic-link-token.entity.ts similarity index 100% rename from src/tokens/entities/magic-link-token.entity.ts rename to backend/src/tokens/entities/magic-link-token.entity.ts diff --git a/src/tokens/entities/oauth-account.entity.ts b/backend/src/tokens/entities/oauth-account.entity.ts similarity index 100% rename from src/tokens/entities/oauth-account.entity.ts rename to backend/src/tokens/entities/oauth-account.entity.ts diff --git a/src/tokens/entities/password-reset-token.entity.ts b/backend/src/tokens/entities/password-reset-token.entity.ts similarity index 100% rename from src/tokens/entities/password-reset-token.entity.ts rename to backend/src/tokens/entities/password-reset-token.entity.ts diff --git a/src/tokens/entities/refresh-token.entity.ts b/backend/src/tokens/entities/refresh-token.entity.ts similarity index 100% rename from src/tokens/entities/refresh-token.entity.ts rename to backend/src/tokens/entities/refresh-token.entity.ts diff --git a/src/tokens/tokens.module.ts b/backend/src/tokens/tokens.module.ts similarity index 100% rename from src/tokens/tokens.module.ts rename to backend/src/tokens/tokens.module.ts diff --git a/src/users/dto/create-user.dto.ts b/backend/src/users/dto/create-user.dto.ts similarity index 100% rename from src/users/dto/create-user.dto.ts rename to backend/src/users/dto/create-user.dto.ts diff --git a/src/users/dto/update-user-name.dto.ts b/backend/src/users/dto/update-user-name.dto.ts similarity index 100% rename from src/users/dto/update-user-name.dto.ts rename to backend/src/users/dto/update-user-name.dto.ts diff --git a/src/users/dto/update-user-role.dto.ts b/backend/src/users/dto/update-user-role.dto.ts similarity index 100% rename from src/users/dto/update-user-role.dto.ts rename to backend/src/users/dto/update-user-role.dto.ts diff --git a/src/users/entities/user.entity.ts b/backend/src/users/entities/user.entity.ts similarity index 100% rename from src/users/entities/user.entity.ts rename to backend/src/users/entities/user.entity.ts diff --git a/src/users/users.controller.ts b/backend/src/users/users.controller.ts similarity index 100% rename from src/users/users.controller.ts rename to backend/src/users/users.controller.ts diff --git a/src/users/users.module.ts b/backend/src/users/users.module.ts similarity index 100% rename from src/users/users.module.ts rename to backend/src/users/users.module.ts diff --git a/src/users/users.service.spec.ts b/backend/src/users/users.service.spec.ts similarity index 100% rename from src/users/users.service.spec.ts rename to backend/src/users/users.service.spec.ts diff --git a/src/users/users.service.ts b/backend/src/users/users.service.ts similarity index 100% rename from src/users/users.service.ts rename to backend/src/users/users.service.ts diff --git a/src/views/layouts/base.njk b/backend/src/views/layouts/base.njk similarity index 100% rename from src/views/layouts/base.njk rename to backend/src/views/layouts/base.njk diff --git a/src/views/layouts/dashboard.njk b/backend/src/views/layouts/dashboard.njk similarity index 100% rename from src/views/layouts/dashboard.njk rename to backend/src/views/layouts/dashboard.njk diff --git a/src/views/pages/auth.njk b/backend/src/views/pages/auth.njk similarity index 100% rename from src/views/pages/auth.njk rename to backend/src/views/pages/auth.njk diff --git a/src/views/pages/blog-detail.njk b/backend/src/views/pages/blog-detail.njk similarity index 100% rename from src/views/pages/blog-detail.njk rename to backend/src/views/pages/blog-detail.njk diff --git a/src/views/pages/dashboard.njk b/backend/src/views/pages/dashboard.njk similarity index 100% rename from src/views/pages/dashboard.njk rename to backend/src/views/pages/dashboard.njk diff --git a/src/views/pages/home.njk b/backend/src/views/pages/home.njk similarity index 100% rename from src/views/pages/home.njk rename to backend/src/views/pages/home.njk diff --git a/src/views/partials/dashboard-post-table.njk b/backend/src/views/partials/dashboard-post-table.njk similarity index 100% rename from src/views/partials/dashboard-post-table.njk rename to backend/src/views/partials/dashboard-post-table.njk diff --git a/src/views/partials/dashboard-user-table.njk b/backend/src/views/partials/dashboard-user-table.njk similarity index 100% rename from src/views/partials/dashboard-user-table.njk rename to backend/src/views/partials/dashboard-user-table.njk diff --git a/src/views/partials/flash.njk b/backend/src/views/partials/flash.njk similarity index 100% rename from src/views/partials/flash.njk rename to backend/src/views/partials/flash.njk diff --git a/src/views/partials/pagination.njk b/backend/src/views/partials/pagination.njk similarity index 100% rename from src/views/partials/pagination.njk rename to backend/src/views/partials/pagination.njk diff --git a/src/views/partials/post-grid.njk b/backend/src/views/partials/post-grid.njk similarity index 100% rename from src/views/partials/post-grid.njk rename to backend/src/views/partials/post-grid.njk diff --git a/test/app.e2e-spec.ts b/backend/test/app.e2e-spec.ts similarity index 100% rename from test/app.e2e-spec.ts rename to backend/test/app.e2e-spec.ts diff --git a/test/auth.e2e-spec.ts b/backend/test/auth.e2e-spec.ts similarity index 100% rename from test/auth.e2e-spec.ts rename to backend/test/auth.e2e-spec.ts diff --git a/test/jest-e2e.json b/backend/test/jest-e2e.json similarity index 100% rename from test/jest-e2e.json rename to backend/test/jest-e2e.json diff --git a/test/public-posts.e2e-spec.ts b/backend/test/public-posts.e2e-spec.ts similarity index 100% rename from test/public-posts.e2e-spec.ts rename to backend/test/public-posts.e2e-spec.ts diff --git a/test/rbac.e2e-spec.ts b/backend/test/rbac.e2e-spec.ts similarity index 100% rename from test/rbac.e2e-spec.ts rename to backend/test/rbac.e2e-spec.ts diff --git a/tsconfig.build.json b/backend/tsconfig.build.json similarity index 100% rename from tsconfig.build.json rename to backend/tsconfig.build.json diff --git a/tsconfig.json b/backend/tsconfig.json similarity index 100% rename from tsconfig.json rename to backend/tsconfig.json