diff --git a/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs b/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs
index 4dd5d23e98f3fa4396be61df98a4da0d5d72579d..23a333a55ddaf01f5d4cc616530d328266a1605e 100644
--- a/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs
+++ b/Tsi1.Api/Tsi1.Api/Controllers/ActivityController.cs
@@ -36,6 +36,20 @@ namespace Tsi1.Api.Controllers
             return Ok(result.Data);
         }
 
+        [Authorize(Roles = UserTypes.FacultyAdmin + ", " + UserTypes.Professor + ", " + UserTypes.Student)]
+        [HttpGet("GetById/{activityId}")]
+        public async Task<IActionResult> GetById(int activityId)
+        {
+            var result = await _activityService.GetById(activityId);
+
+            if (result.HasError)
+            {
+                return BadRequest(result.Message);
+            }
+
+            return Ok(result.Data);
+        }
+
         [Authorize(Roles = UserTypes.FacultyAdmin + ", " + UserTypes.Professor)]
         [HttpPost("Create")]
         public async Task<IActionResult> Create(ActivityCreateDto newActivity)
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Dtos/ActivityDto.cs b/Tsi1.Api/Tsi1.BusinessLayer/Dtos/ActivityDto.cs
index 831e4f6324f9f16d28468192ee8f7b45c9970a48..f7da8d12060cbef61726dad857c08b45f9e6f45f 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Dtos/ActivityDto.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Dtos/ActivityDto.cs
@@ -15,5 +15,7 @@ namespace Tsi1.BusinessLayer.Dtos
         public bool IsVideoConference { get; set; }
 
         public int EvaluationId { get; set; }
+
+        public EvaluationDetailDto Evaluation { get; set; }
     }
 }
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs
index a8dfd19d3ab6d2ff3377d43fc7827d91e73eb1fd..754f9682ed525c562eea168e3a159f1518f8b616 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Interfaces/IActivityService.cs
@@ -15,6 +15,7 @@ namespace Tsi1.BusinessLayer.Interfaces
         Task<ServiceResult<int>> Modify(int activityId, ActivityModifyDto activityDto, int userId);
         Task<ServiceResult<int>> Delete(int activityId, int userId);
 
-        Task<ServiceResult<int>> ActivityValidation(int activityId, int userId); 
+        Task<ServiceResult<int>> ActivityValidation(int activityId, int userId);
+        Task<ServiceResult<ActivityDto>> GetById(int activityId);
     }
 }
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs
index 67c239ff615099c447889b0e9ff8b1b6cb0e3328..cd22f212454a8958c33d658969856a723234c74f 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/ActivityService.cs
@@ -266,5 +266,24 @@ namespace Tsi1.BusinessLayer.Services
             return result;
         }
 
+        public async Task<ServiceResult<ActivityDto>> GetById(int activityId)
+        {
+            var result = new ServiceResult<ActivityDto>();
+
+            var activity = await _context.Activities
+                .AsNoTracking()
+                .Include(x => x.Evaluation)
+                .FirstOrDefaultAsync(x => x.Id == activityId);
+
+            if (activity == null)
+            {
+                result.HasError = true;
+                result.AddMessage(string.Format(ErrorMessages.ActivityDoesNotExist, activityId));
+                return result;
+            }
+
+            result.Data = _mapper.Map<ActivityDto>(activity);
+            return result;
+        }
     }
 }
diff --git a/Tsi1.Api/Tsi1.BusinessLayer/Services/EvaluationService.cs b/Tsi1.Api/Tsi1.BusinessLayer/Services/EvaluationService.cs
index 9d20685d06a2bd51aef9f7dcc1826753ab0a56c0..a25f5c7990a94a8475bef7bb9255435fbfeda535 100644
--- a/Tsi1.Api/Tsi1.BusinessLayer/Services/EvaluationService.cs
+++ b/Tsi1.Api/Tsi1.BusinessLayer/Services/EvaluationService.cs
@@ -337,7 +337,7 @@ namespace Tsi1.BusinessLayer.Services
                 return result;
             }
 
-            if (evaluation.IsCompleted)
+            if (evaluation.Activity.Date < DateTime.Now)
             {
                 result.HasError = true;
                 result.AddMessage(string.Format(ErrorMessages.EvaluationIsCompleted, evaluationId));