diff --git a/backend/package-lock.json b/backend/package-lock.json
index 5e9d492bbacf6bc20b17cc08169e94590c20224d..6dce13b1e9d75aad46da60e034a183e6193136a2 100644
--- a/backend/package-lock.json
+++ b/backend/package-lock.json
@@ -12,6 +12,7 @@
         "@nestjs/common": "^8.0.0",
         "@nestjs/config": "^2.1.0",
         "@nestjs/core": "^8.0.0",
+        "@nestjs/mapped-types": "^1.0.1",
         "@nestjs/platform-express": "^8.0.0",
         "@prisma/client": "^3.15.1",
         "jshint": "^2.13.4",
@@ -1598,6 +1599,25 @@
         }
       }
     },
+    "node_modules/@nestjs/mapped-types": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-1.0.1.tgz",
+      "integrity": "sha512-NFvofzSinp00j5rzUd4tf+xi9od6383iY0JP7o0Bnu1fuItAUkWBgc4EKuIQ3D+c2QI3i9pG1kDWAeY27EMGtg==",
+      "peerDependencies": {
+        "@nestjs/common": "^7.0.8 || ^8.0.0",
+        "class-transformer": "^0.2.0 || ^0.3.0 || ^0.4.0 || ^0.5.0",
+        "class-validator": "^0.11.1 || ^0.12.0 || ^0.13.0",
+        "reflect-metadata": "^0.1.12"
+      },
+      "peerDependenciesMeta": {
+        "class-transformer": {
+          "optional": true
+        },
+        "class-validator": {
+          "optional": true
+        }
+      }
+    },
     "node_modules/@nestjs/platform-express": {
       "version": "8.4.6",
       "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-8.4.6.tgz",
@@ -10088,6 +10108,12 @@
         "uuid": "8.3.2"
       }
     },
+    "@nestjs/mapped-types": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmjs.org/@nestjs/mapped-types/-/mapped-types-1.0.1.tgz",
+      "integrity": "sha512-NFvofzSinp00j5rzUd4tf+xi9od6383iY0JP7o0Bnu1fuItAUkWBgc4EKuIQ3D+c2QI3i9pG1kDWAeY27EMGtg==",
+      "requires": {}
+    },
     "@nestjs/platform-express": {
       "version": "8.4.6",
       "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-8.4.6.tgz",
diff --git a/backend/package.json b/backend/package.json
index 36e70e70cf2424848c3337945fe3ea118be15533..eab4f846e123923be0e3822bc98e2e8d5e0bb9f7 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -24,6 +24,7 @@
     "@nestjs/common": "^8.0.0",
     "@nestjs/config": "^2.1.0",
     "@nestjs/core": "^8.0.0",
+    "@nestjs/mapped-types": "^1.0.1",
     "@nestjs/platform-express": "^8.0.0",
     "@prisma/client": "^3.15.1",
     "jshint": "^2.13.4",
diff --git a/backend/src/api/categories/categories.controller.spec.ts b/backend/src/api/categories/categories.controller.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..66257decefec984d389a9b4515d567cdf9477ddc
--- /dev/null
+++ b/backend/src/api/categories/categories.controller.spec.ts
@@ -0,0 +1,20 @@
+import { Test, TestingModule } from '@nestjs/testing';
+import { CategoriesController } from './categories.controller';
+import { CategoriesService } from './categories.service';
+
+describe('CategoriesController', () => {
+  let controller: CategoriesController;
+
+  beforeEach(async () => {
+    const module: TestingModule = await Test.createTestingModule({
+      controllers: [CategoriesController],
+      providers: [CategoriesService],
+    }).compile();
+
+    controller = module.get<CategoriesController>(CategoriesController);
+  });
+
+  it('should be defined', () => {
+    expect(controller).toBeDefined();
+  });
+});
diff --git a/backend/src/api/categories/categories.controller.ts b/backend/src/api/categories/categories.controller.ts
new file mode 100644
index 0000000000000000000000000000000000000000..7f461f632b9a4057019bd294007df834b2538c03
--- /dev/null
+++ b/backend/src/api/categories/categories.controller.ts
@@ -0,0 +1,35 @@
+import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
+import { CategoriesService } from './categories.service';
+import { CreateCategoryDto } from './dto/create-category.dto';
+import { UpdateCategoryDto } from './dto/update-category.dto';
+
+@Controller('categories')
+export class CategoriesController {
+  constructor(private readonly categoriesService: CategoriesService) {}
+
+  @Post()
+  create(@Body() createCategoryDto: CreateCategoryDto) {
+    return this.categoriesService.create(createCategoryDto);
+  }
+
+  @Get()
+  findAll() {
+    return this.categoriesService.findAll();
+  }
+
+  @Get(':id')
+  findOne(@Param('id') id: string) {
+    return this.categoriesService.findOne(id);
+  }
+/*
+  @Patch(':id')
+  update(@Param('id') id: string, @Body() updateCategoryDto: UpdateCategoryDto) {
+    return this.categoriesService.update(id, updateCategoryDto);
+  }
+
+  @Delete(':id')
+  remove(@Param('id') id: string) {
+    return this.categoriesService.remove(id);
+  }
+*/
+}
diff --git a/backend/src/api/categories/categories.module.ts b/backend/src/api/categories/categories.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..8776b448c5f6f53e4956da0518c374d3190afae2
--- /dev/null
+++ b/backend/src/api/categories/categories.module.ts
@@ -0,0 +1,9 @@
+import { Module } from '@nestjs/common';
+import { CategoriesService } from './categories.service';
+import { CategoriesController } from './categories.controller';
+
+@Module({
+  controllers: [CategoriesController],
+  providers: [CategoriesService]
+})
+export class CategoriesModule {}
diff --git a/backend/src/api/categories/categories.service.spec.ts b/backend/src/api/categories/categories.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9095d781e293688a268f41b4b272372c6a455636
--- /dev/null
+++ b/backend/src/api/categories/categories.service.spec.ts
@@ -0,0 +1,18 @@
+import { Test, TestingModule } from '@nestjs/testing';
+import { CategoriesService } from './categories.service';
+
+describe('CategoriesService', () => {
+  let service: CategoriesService;
+
+  beforeEach(async () => {
+    const module: TestingModule = await Test.createTestingModule({
+      providers: [CategoriesService],
+    }).compile();
+
+    service = module.get<CategoriesService>(CategoriesService);
+  });
+
+  it('should be defined', () => {
+    expect(service).toBeDefined();
+  });
+});
diff --git a/backend/src/api/categories/categories.service.ts b/backend/src/api/categories/categories.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1ee0421117dac65ac04bb5ac37aaa6efbcf7a265
--- /dev/null
+++ b/backend/src/api/categories/categories.service.ts
@@ -0,0 +1,26 @@
+import { Injectable } from '@nestjs/common';
+import { CreateCategoryDto } from './dto/create-category.dto';
+import { UpdateCategoryDto } from './dto/update-category.dto';
+
+@Injectable()
+export class CategoriesService {
+  create(createCategoryDto: CreateCategoryDto) {
+    return 'This action adds a new category';
+  }
+
+  findAll() {
+    return `This action returns all categories`;
+  }
+
+  findOne(id: string) {
+    return `This action returns a #${id} category`;
+  }
+
+  update(id: string, updateCategoryDto: UpdateCategoryDto) {
+    return `This action updates a #${id} category`;
+  }
+
+  remove(id: string) {
+    return `This action removes a #${id} category`;
+  }
+}
diff --git a/backend/src/api/categories/dto/create-category.dto.ts b/backend/src/api/categories/dto/create-category.dto.ts
new file mode 100644
index 0000000000000000000000000000000000000000..222267216a096df2b26ee9c3905bb9074cfad9e4
--- /dev/null
+++ b/backend/src/api/categories/dto/create-category.dto.ts
@@ -0,0 +1,3 @@
+export class CreateCategoryDto {
+  name: string;
+}
diff --git a/backend/src/api/categories/dto/update-category.dto.ts b/backend/src/api/categories/dto/update-category.dto.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1ace9d9df6bfbf99e8409e3d961860ea43efcfad
--- /dev/null
+++ b/backend/src/api/categories/dto/update-category.dto.ts
@@ -0,0 +1,4 @@
+import { PartialType } from '@nestjs/mapped-types';
+import { CreateCategoryDto } from './create-category.dto';
+
+export class UpdateCategoryDto extends PartialType(CreateCategoryDto) {}
diff --git a/backend/src/api/categories/entities/category.entity.ts b/backend/src/api/categories/entities/category.entity.ts
new file mode 100644
index 0000000000000000000000000000000000000000..6f4fd523af696c19290a337d30fcfc7402994cde
--- /dev/null
+++ b/backend/src/api/categories/entities/category.entity.ts
@@ -0,0 +1 @@
+export class Category {}
diff --git a/backend/src/app.module.ts b/backend/src/app.module.ts
index 278b638f9d853fe8c1ff8cb67ea693775b49b99e..a90177f77d35d21984ac45f77c815940aef55676 100644
--- a/backend/src/app.module.ts
+++ b/backend/src/app.module.ts
@@ -1,10 +1,14 @@
 import { Module } from '@nestjs/common';
 import { ConfigModule } from '@nestjs/config';
+import { CategoriesModule } from './api/categories/categories.module';
 import { AppController } from './app.controller';
 import { AppService } from './app.service';
 
 @Module({
-  imports: [ConfigModule.forRoot()],
+  imports: [
+    ConfigModule.forRoot(),
+    CategoriesModule
+  ],
   controllers: [AppController],
   providers: [AppService],
 })