Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/components/Layout.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/components/Layout.java	(revision 73f981c2bc732fc9cba092f13d7a771444acdfdf)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/components/Layout.java	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
@@ -92,5 +92,5 @@
 
 	public String[] getStudentPageNames() {
-		return new String[] { "ExamsAndTasksOverview", "OpenDiscussions", "PersonalAnalytics" };
+		return new String[] { "TasksOverview", "ExamsAndTasksOverview", "OpenDiscussions", "PersonalAnalytics" };
 	}
 
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.java	(revision 73f981c2bc732fc9cba092f13d7a771444acdfdf)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/ExamsAndTasksOverviewPage.java	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
@@ -26,5 +26,4 @@
 import java.util.List;
 import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
 
 import org.apache.tapestry5.SelectModel;
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/TasksOverviewPage.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/TasksOverviewPage.java	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/TasksOverviewPage.java	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
@@ -0,0 +1,245 @@
+/*******************************************************************************
+ * Copyright (C) 2021 Vangel V. Ajanovski
+ *     
+ * This file is part of the dbLearnStar system (hereinafter: dbLearn*).
+ *     
+ * dbLearn* is free software: you can redistribute it and/or modify it under the 
+ * terms of the GNU General Public License as published by the Free Software 
+ * Foundation, either version 3 of the License, or (at your option) any later 
+ * version.
+ *     
+ * dbLearn* is distributed in the hope that it will be useful, but WITHOUT ANY 
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
+ * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more 
+ * details.
+ *     
+ * You should have received a copy of the GNU General Public License along 
+ * with dbLearn*.  If not, see <https://www.gnu.org/licenses/>.
+ * 
+ ******************************************************************************/
+
+package dblearnstar.webapp.pages;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.apache.tapestry5.annotations.Import;
+import org.apache.tapestry5.annotations.InjectPage;
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.annotations.SessionState;
+import org.apache.tapestry5.ioc.annotations.Inject;
+import org.apache.tapestry5.services.PersistentLocale;
+import org.apache.tapestry5.services.SelectModelFactory;
+import org.apache.tapestry5.services.ajax.AjaxResponseRenderer;
+import org.apache.tapestry5.services.javascript.JavaScriptSupport;
+import org.slf4j.Logger;
+
+import dblearnstar.model.entities.Model;
+import dblearnstar.model.entities.Student;
+import dblearnstar.model.entities.TaskInTestInstance;
+import dblearnstar.model.entities.TaskType;
+import dblearnstar.model.entities.TestInstance;
+import dblearnstar.model.model.UserInfo;
+import dblearnstar.webapp.annotations.AdministratorPage;
+import dblearnstar.webapp.annotations.StudentPage;
+import dblearnstar.webapp.pages.admin.SubmissionEvaluations;
+import dblearnstar.webapp.services.DigestService;
+import dblearnstar.webapp.services.GenericService;
+import dblearnstar.webapp.services.PersonManager;
+import dblearnstar.webapp.services.TestManager;
+import dblearnstar.webapp.services.TranslationService;
+
+@AdministratorPage
+@StudentPage
+@Import(stylesheet = "ExamsAndTasksOverviewPage.css", module = "bootstrap/collapse")
+
+public class TasksOverviewPage {
+	@Inject
+	private Logger logger;
+	@Inject
+	private JavaScriptSupport javaScriptSupport;
+	@Inject
+	private PersistentLocale persistentLocale;
+	@Inject
+	private SelectModelFactory selectModelFactory;
+	@Inject
+	private AjaxResponseRenderer ajaxResponseRenderer;
+	@Inject
+	private DigestService digestService;
+
+	@SessionState
+	@Property
+	private UserInfo userInfo;
+
+	@Persist
+	@Property
+	private Model chosenModel;
+
+	@Property
+	private TaskInTestInstance listedTaskInTestInstance;
+
+	@Persist
+	@Property
+	private TaskType chosenTaskType;
+
+	@Inject
+	private PersonManager pm;
+	@Inject
+	private GenericService genericService;
+	@Inject
+	private TestManager testManager;
+	@Inject
+	private TranslationService translationService;
+
+	@InjectPage
+	private SubmissionEvaluations submissionEvaluations;
+
+	@Property
+	private Model listedModel;
+	@Property
+	private TaskType listedTaskType;
+
+	private Student student;
+
+	public void onActivate() {
+		// @TODO better implementation is needed for many students per user
+		student = pm.getStudentsByPersonId(userInfo.getPersonId()).get(0);
+		prevTestInstance = null;
+	}
+
+	public List<Model> getAllModels() {
+		List<Model> list = testManager.getAllModels();
+		return list.stream().sorted((o1, o2) -> {
+			return o1.getTitle().compareTo(o2.getTitle());
+		}).toList();
+	}
+
+	public List<TaskType> getAllTaskTypes() {
+		List<TaskType> list = new ArrayList<TaskType>();
+		if (chosenModel != null) {
+			list = testManager.getAllTaskTypesDefinedOverModel(chosenModel);
+		} else {
+			list = testManager.getAllTaskTypes();
+		}
+		return list.stream().sorted((o1, o2) -> {
+			return o1.getTitle().compareTo(o2.getTitle());
+		}).toList();
+	}
+
+	public String getClassSelectedModel() {
+		if (chosenModel != null) {
+			if (listedModel.getModelId() == chosenModel.getModelId()) {
+				return " btn-primary text-light ";
+			} else {
+				return "";
+			}
+		} else {
+			return "";
+		}
+	}
+
+	public String getClassSelectedTaskType() {
+		if (chosenTaskType != null) {
+			if (listedTaskType.getTaskTypeId() == chosenTaskType.getTaskTypeId()) {
+				return " btn-primary text-light ";
+			} else {
+				return "";
+			}
+		} else {
+			return "";
+		}
+	}
+
+	public void onChooseModel(Model m) {
+		chosenModel = m;
+	}
+
+	public void onUnchooseModel() {
+		chosenModel = null;
+	}
+
+	public void onChooseTaskType(TaskType tt) {
+		chosenTaskType = tt;
+	}
+
+	public void onUnchooseTaskType() {
+		chosenTaskType = null;
+	}
+
+	private TestInstance prevTestInstance;
+
+	public Boolean getPrevTestInstance() {
+		if (prevTestInstance == null) {
+			prevTestInstance = listedTaskInTestInstance.getTestInstance();
+			return true;
+		} else {
+			if (prevTestInstance.getTestInstanceId() == listedTaskInTestInstance.getTestInstance()
+					.getTestInstanceId()) {
+				return false;
+			} else {
+				prevTestInstance = listedTaskInTestInstance.getTestInstance();
+				return true;
+			}
+		}
+	}
+
+	public List<TaskInTestInstance> getAllTasks() {
+		if (chosenModel != null) {
+			List<TaskInTestInstance> list = testManager.getTaskInTestInstancesByModel(chosenModel.getModelId());
+			if (chosenTaskType != null) {
+				list = list.stream()
+						.filter(p -> p.getTask().getTaskIsOfTypes().stream()
+								.anyMatch(q -> q.getTaskType().getTaskTypeId() == chosenTaskType.getTaskTypeId()))
+						.collect(Collectors.toList());
+				if (student != null) {
+					list = list.stream().filter(p -> testManager.accessToTaskInTestInstanceAllowed(student, p))
+							.toList();
+				}
+			}
+			return list;
+		} else {
+			if (chosenTaskType != null) {
+				List<TaskInTestInstance> list = new ArrayList<TaskInTestInstance>();
+				list = testManager.getTaskInTestInstancesByTaskType(chosenTaskType);
+				if (student != null) {
+					list = list.stream().filter(p -> testManager.accessToTaskInTestInstanceAllowed(student, p))
+							.toList();
+				}
+				return list;
+			} else {
+				return null;
+			}
+		}
+	}
+
+	public Long getNumPersonsSuccessful() {
+		return testManager
+				.getNumPersonsSuccessfulForTaskInTestInstance(listedTaskInTestInstance.getTaskInTestInstanceId());
+	}
+
+	public long getNumPersonsTriedToSolve() {
+		return testManager
+				.getNumPersonsTriedToSolveTaskInTestInstance(listedTaskInTestInstance.getTaskInTestInstanceId());
+	}
+
+	public String getClassForSolved() {
+		Boolean solved = isTaskInTestInstanceSolved();
+		if (solved != null && solved) {
+			return "text-white bg-success";
+		} else {
+			return "";
+		}
+	}
+
+	public Boolean isTaskInTestInstanceSolved() {
+		if (student != null) {
+			return testManager.isTaskInTestInstanceSolvedByStudent(listedTaskInTestInstance.getTaskInTestInstanceId(),
+					student.getStudentId());
+		} else {
+			return false;
+		}
+	}
+
+}
Index: dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/QueryTest.tml
===================================================================
--- dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/QueryTest.tml	(revision 73f981c2bc732fc9cba092f13d7a771444acdfdf)
+++ dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/QueryTest.tml	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
@@ -137,5 +137,5 @@
 				t:additionalClassDialog="modal-lg bg-danger ">
 				<p class="pt-0 pb-3">
-					<a t:type="actionLink" t:id="hideEvalModal" t:zone="errorZone"
+					<a t:type="actionLink" id="hideEvalModal" t:id="hideEvalModal" t:zone="errorZone"
 						class="close float-right"><t:SVGIcon t:path="x" /></a>
 				</p>
Index: dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/TasksOverviewPage.tml
===================================================================
--- dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/TasksOverviewPage.tml	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
+++ dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/TasksOverviewPage.tml	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
@@ -0,0 +1,67 @@
+<html t:type="layout" title="message:ExamsAndTasksOverview-pagelink"
+	xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
+	xmlns:p="tapestry:parameter">
+
+<h1>${message:TasksOverview-pagelink}</h1>
+
+<div class="row">
+	<div class="col-5">
+
+		<h3>${message:FilterTasksBasedOnModel-label}</h3>
+		<p>
+			<a
+				class="btn btn-outline btn-outline-warning p-0 pl-1 pr-1 mb-1 mr-0"
+				t:type="eventlink" t:id="unChooseModel">/</a> <span t:type="loop"
+				t:source="allModels" t:value="listedModel"> <a
+				class="btn btn-outline btn-outline-primary p-0 pl-1 pr-1 mb-1 mr-0 ${classSelectedModel}"
+				t:type="eventlink" t:id="chooseModel" t:context="listedModel">${listedModel.title}</a>
+			</span>
+
+		</p>
+
+		<h3>${message:FilterTasksBasedOnType-label}</h3>
+		<p>
+			<a
+				class="btn btn-outline btn-outline-warning p-0 pl-1 pr-1 mb-1 mr-0"
+				t:type="eventlink" t:id="unChooseTaskType">/</a> <span t:type="loop"
+				t:source="allTaskTypes" t:value="listedTaskType"> <a
+				class="btn btn-outline btn-outline-primary p-0 pl-1 pr-1 mb-1 mr-0 ${classSelectedTaskType}"
+				t:type="eventlink" t:id="chooseTaskType" t:context="listedTaskType">${listedTaskType.title}</a>
+			</span>
+		</p>
+
+	</div>
+	<div class="col-7">
+		<h2>${message:tasks-label}</h2>
+
+		<t:loop t:source="allTasks" t:value="listedTaskInTestInstance">
+			<t:if t:test="prevTestInstance">
+				<h3 class="mt-3">${listedTaskInTestInstance.testInstance.title}</h3>
+				<div style="" class="overflow-auto">
+					<p t:type="outputRaw"
+						t:value="listedTaskInTestInstance.testInstance.description" />
+				</div>
+			</t:if>
+			<div class="card ${classForSolved} mb-3">
+				<div class="card-header">
+					${listedTaskInTestInstance.task.title} <a
+						class="btn btn-sm btn-primary float-right" t:type="PageLink"
+						t:page="QueryTest" t:id="SolveTest"
+						t:context="listedTaskInTestInstance">${message:attempt-label}</a>
+					<div class="p-1 pl-3 text-muted ">
+						<span class="mr-3">${message:numPersonsTriedToSolve-label}:
+							${numPersonsTriedToSolve}</span> - <span class="ml-3">${message:numPersonsSuccessful-label}:
+							${numPersonsSuccessful}</span>
+					</div>
+
+				</div>
+				<div class="card-body">
+					<p class="card-text">
+						<t:outputRaw t:value="listedTaskInTestInstance.task.description" />
+					</p>
+				</div>
+			</div>
+		</t:loop>
+	</div>
+</div>
+</html>
Index: dbLearnStar-webApp/src/main/webapp/WEB-INF/app.properties
===================================================================
--- dbLearnStar-webApp/src/main/webapp/WEB-INF/app.properties	(revision 73f981c2bc732fc9cba092f13d7a771444acdfdf)
+++ dbLearnStar-webApp/src/main/webapp/WEB-INF/app.properties	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
@@ -1,2 +1,6 @@
+FilterTasksBasedOnModel-label=Find Tasks that Use a Specific Model
+FilterTasksBasedOnType-label=Find Tasks of a Specific Type
+PracticeByIncreasingComplexity-label=Specially Crafted Series of Tasks for Practicing SQL Queries of Increasing Complexity
+tasks-label=Tasks 
 about-personalanalytics-text=Personal analytics will only be available after the final evaluation.
 about-solutioncomparator-text=Comparison of your solutions to the solutions of other persons is only available in the case of submissions that were evaluated as correct in the final evaluation. They will be automatically listed at this page after the final evaluation.
@@ -10,5 +14,7 @@
 admin/Index-pagelink=Admin
 admin-label=Administrator
+attempt-label=Attempt to solve
 instructor-label=Instructor
+instructorMenu-label=Instructor
 admin/ManageModels-pagelink=Model management
 admin/ManagePersons-pagelink=User management
@@ -70,5 +76,6 @@
 evaluationSimple-label=Evaluation DB 1
 eval-ddl-label=Evaluate DDL
-ExamsAndTasksOverview-pagelink=Tasks
+ExamsAndTasksOverview-pagelink=Overview of Exams and Tasks per Exam
+TasksOverview-pagelink=All Tasks
 feedback-label=Feedback
 fileAComplaint-label=File a complaint
@@ -103,5 +110,7 @@
 main-developer-address=https\://ajanovski.info
 main-developer-label=Lead Researcher and Developer
-main-developer-name=Vangel V. Ajanovski - Associate Professor at FCSE
+main-developer-name=Vangel V. Ajanovski - Professor at FCSE
+materials-label=Additonal Resources, Software, Slides, Lecture Recordings 
+materials-url=https\://bazi.finki.ukim.mk/materijali
 message-label=Message
 new-label=New
@@ -115,5 +124,5 @@
 onlyLast-label=Only last
 onlyTestInstancesWithDiscussionsAreShown-label=Only the test instances having discussions are listed
-OpenDiscussions-pagelink=Open Discussions
+OpenDiscussions-pagelink=Complaints and Discussions
 openToAllStudents-label=Open to all students
 openForReviewByStudents-label=Open for review by students
@@ -158,4 +167,5 @@
 studenthomepage-page=Exams and Tasks
 student-label=student
+studentMenu-label=Student
 submission-label=Submitted solution
 submissions-label=Submissions
Index: dbLearnStar-webApp/src/main/webapp/WEB-INF/app_mk.properties
===================================================================
--- dbLearnStar-webApp/src/main/webapp/WEB-INF/app_mk.properties	(revision 73f981c2bc732fc9cba092f13d7a771444acdfdf)
+++ dbLearnStar-webApp/src/main/webapp/WEB-INF/app_mk.properties	(revision b73c49fe740da43999c4496d0d06fe43c66e3655)
@@ -1,2 +1,6 @@
+FilterTasksBasedOnModel-label=Пребарај задачи кои користат определен модел
+FilterTasksBasedOnType-label=Пребарај задачи од определен тип
+PracticeByIncreasingComplexity-label=Специјално формулирани серии задачи за вежбање SQL прашалници со растечка комлексност
+tasks-label=Задачи 
 about-personalanalytics-text=Личните аналитики ќе бидат достапни по спроведената евалуација.
 about-solutioncomparator-text=Споредбата на вашите решенија со решенија на колеги на задачите од збирката е возможна само во случај на целосно успешна евалуација на вашето решение и на решенијата на вашите колеги на едни исти задачи и исти пример бази податоци.  Таквите задачи ќе се појават автоматски на оваа страница.
@@ -10,5 +14,7 @@
 admin/Index-pagelink=Администратор
 admin-label=Администратор
-insturctor-label=Инструктор
+attempt-label=Обидете се да ја решите
+instructor-label=Инструктор
+instructorMenu-label=Инструктор
 admin/ManageModels-pagelink=Модели
 admin/ManagePersons-pagelink=Корисници
@@ -70,5 +76,6 @@
 evaluationSimple-label=Евалуација Шема 1
 eval-ddl-label=Евалуирај DDL
-ExamsAndTasksOverview-pagelink=Задачи
+ExamsAndTasksOverview-pagelink=Испити и задачи по испит
+TasksOverview-pagelink=Збирка Задачи
 feedback-label=Забелешки
 fileAComplaint-label=Поднеси приговор
@@ -104,5 +111,7 @@
 main-developer-address=https\://ajanovski.info
 main-developer-label=Главен истражувач и развивач
-main-developer-name=Вангел В. Ајановски
+main-developer-name=Вангел В. Ајановски, професор на ФИНКИ
+materials-label=Дополнителни ресурси, софтвер, слајдови, снимки од предавање 
+materials-url=https\://bazi.finki.ukim.mk/resources 
 message-label=Порака
 new-label=Ново
@@ -116,5 +125,5 @@
 onlyLast-label=Само последните
 onlyTestInstancesWithDiscussionsAreShown-label=Прикажани се само тест инстанците на кои има дискусии
-OpenDiscussions-pagelink=Отворени дискусии
+OpenDiscussions-pagelink=Приговори и дискусии
 openToAllStudents-label=Отворено за сите студенти
 openForReviewByStudents-label=Отворено за увид за студенти
@@ -160,4 +169,5 @@
 studenthomepage-page=Тестови и задачи
 student-label=студент
+studentMenu-label=Студент
 submission-label=Испратено решение
 submissions-label=Поднесоци
