diff --git a/backend/src/api/directors/directors.controller.spec.ts b/backend/src/api/directors/directors.controller.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b8d105a47442f05bb3d10c8c60e74585e584b9bd
--- /dev/null
+++ b/backend/src/api/directors/directors.controller.spec.ts
@@ -0,0 +1,20 @@
+import { Test, TestingModule } from '@nestjs/testing';
+import { DirectorsController } from './directors.controller';
+import { DirectorsService } from './directors.service';
+
+describe('DirectorsController', () => {
+  let controller: DirectorsController;
+
+  beforeEach(async () => {
+    const module: TestingModule = await Test.createTestingModule({
+      controllers: [DirectorsController],
+      providers: [DirectorsService],
+    }).compile();
+
+    controller = module.get<DirectorsController>(DirectorsController);
+  });
+
+  it('should be defined', () => {
+    expect(controller).toBeDefined();
+  });
+});
diff --git a/backend/src/api/directors/directors.controller.ts b/backend/src/api/directors/directors.controller.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b95aac47bf34a881a3ae742cd94d757692755919
--- /dev/null
+++ b/backend/src/api/directors/directors.controller.ts
@@ -0,0 +1,45 @@
+import {
+  Controller,
+  Get,
+  Post,
+  Body,
+  Patch,
+  Param,
+  Delete,
+} from '@nestjs/common';
+import { DirectorsService } from './directors.service';
+import { CreateDirectorDto } from './dto/create-director.dto';
+import { UpdateDirectorDto } from './dto/update-director.dto';
+
+@Controller('director')
+export class DirectorsController {
+  constructor(private readonly directorsService: DirectorsService) {}
+
+  @Post()
+  async create(@Body() createDirectorDto: CreateDirectorDto) {
+    return await this.directorsService.create(createDirectorDto);
+  }
+
+  @Get()
+  async findAll() {
+    return await this.directorsService.findAll();
+  }
+
+  @Get(':id')
+  async findOne(@Param('id') id: string) {
+    return await this.directorsService.findOne(id);
+  }
+
+  @Patch(':id')
+  async update(
+  @Param('id') id: string,
+    @Body() updateDirectorDto: UpdateDirectorDto,
+  ) {
+    return await this.directorsService.update(id, updateDirectorDto);
+  }
+
+  @Delete(':id')
+  async remove(@Param('id') id: string) {
+    return await this.directorsService.remove(id);
+  }
+}
diff --git a/backend/src/api/directors/directors.module.ts b/backend/src/api/directors/directors.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bed9e1db83a4f6f5716e5757edd91902048c684d
--- /dev/null
+++ b/backend/src/api/directors/directors.module.ts
@@ -0,0 +1,10 @@
+import { Module } from '@nestjs/common';
+import { DirectorsService } from './directors.service';
+import { DirectorsController } from './directors.controller';
+import { PrismaService } from '../../prisma.service';
+
+@Module({
+  controllers: [DirectorsController],
+  providers: [DirectorsService, PrismaService],
+})
+export class DirectorsModule {}
diff --git a/backend/src/api/directors/directors.service.spec.ts b/backend/src/api/directors/directors.service.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..06fc8bf8cf4e1fe65108251d69d3d902e22d3166
--- /dev/null
+++ b/backend/src/api/directors/directors.service.spec.ts
@@ -0,0 +1,18 @@
+import { Test, TestingModule } from '@nestjs/testing';
+import { DirectorsService } from './directors.service';
+
+describe('DirectorsService', () => {
+  let service: DirectorsService;
+
+  beforeEach(async () => {
+    const module: TestingModule = await Test.createTestingModule({
+      providers: [DirectorsService],
+    }).compile();
+
+    service = module.get<DirectorsService>(DirectorsService);
+  });
+
+  it('should be defined', () => {
+    expect(service).toBeDefined();
+  });
+});
diff --git a/backend/src/api/directors/directors.service.ts b/backend/src/api/directors/directors.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..5def117aab84769ce120d2c2f20d76fd0daa8170
--- /dev/null
+++ b/backend/src/api/directors/directors.service.ts
@@ -0,0 +1,35 @@
+import { Injectable } from '@nestjs/common';
+import { CreateDirectorDto } from './dto/create-director.dto';
+import { UpdateDirectorDto } from './dto/update-director.dto';
+import { PrismaService } from '../../prisma.service';
+
+@Injectable()
+export class DirectorsService {
+  constructor(private prisma: PrismaService) {}
+
+  create(createDirectorDto: CreateDirectorDto) {
+    return this.prisma.director.create({
+      data: createDirectorDto,
+    });
+  }
+
+  findAll() {
+    return this.prisma.director.findMany();
+  }
+
+  findOne(id: string) {
+    return this.prisma.director.findUnique({
+      where: {
+        id,
+      },
+    });
+  }
+
+  update(id: string, updateDirectorDto: UpdateDirectorDto) {
+    return `This action updates a #${id} director`;
+  }
+
+  remove(id: string) {
+    return `This action removes a #${id} director`;
+  }
+}
diff --git a/backend/src/api/directors/dto/create-director.dto.ts b/backend/src/api/directors/dto/create-director.dto.ts
new file mode 100644
index 0000000000000000000000000000000000000000..f1c2bc82cf286ab2a88cd439b9d7abe6837e6021
--- /dev/null
+++ b/backend/src/api/directors/dto/create-director.dto.ts
@@ -0,0 +1,5 @@
+export class CreateDirectorDto {
+  readonly name: string;
+  readonly surname: string;
+  readonly birthDate?: string;
+}
diff --git a/backend/src/api/directors/dto/update-director.dto.ts b/backend/src/api/directors/dto/update-director.dto.ts
new file mode 100644
index 0000000000000000000000000000000000000000..48d1b492d36e69fe24581a92f7477c1200fc4e17
--- /dev/null
+++ b/backend/src/api/directors/dto/update-director.dto.ts
@@ -0,0 +1,4 @@
+import { PartialType } from '@nestjs/mapped-types';
+import { CreateDirectorDto } from './create-director.dto';
+
+export class UpdateDirectorDto extends PartialType(CreateDirectorDto) {}
diff --git a/backend/src/api/directors/entities/director.entity.ts b/backend/src/api/directors/entities/director.entity.ts
new file mode 100644
index 0000000000000000000000000000000000000000..c0306425fa0fefd07ea40c5a7439be7d22582165
--- /dev/null
+++ b/backend/src/api/directors/entities/director.entity.ts
@@ -0,0 +1,11 @@
+import { Director } from '@prisma/client';
+
+export class DirectorEntity implements Director {
+  id: string;
+  createdAt: Date;
+  updatedAt: Date;
+  deletedAt: Date;
+  name: string;
+  surname: string;
+  birthDate: Date;
+}