Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/data/ProjectDao.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/data/ProjectDao.java	(revision 6aa1b97a9a6b7962834ccb42e82e96478f0e1c19)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/data/ProjectDao.java	(revision e0fb1434010279021b3a1542230201b7d12c6102)
@@ -31,5 +31,5 @@
 public interface ProjectDao {
 
-	public List<Project> getAllProjectsOrderByTitle();
+	public List<Project> getAllProjects();
 
 	public List<CourseProject> getProjectCourses(Project p);
@@ -37,5 +37,5 @@
 	public Float sumPoints(Project p);
 
-	public List<Project> getAllProjectsInCourseOrderByTitle(Course selectedCourse);
+	public List<Project> getAllProjectsInCourse(Course selectedCourse);
 
 	public List<Project> getProjectByPerson(Long personId);
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/data/ProjectDaoImpl.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/data/ProjectDaoImpl.java	(revision 6aa1b97a9a6b7962834ccb42e82e96478f0e1c19)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/data/ProjectDaoImpl.java	(revision e0fb1434010279021b3a1542230201b7d12c6102)
@@ -44,6 +44,8 @@
 	@Override
 	@SuppressWarnings("unchecked")
-	public List<Project> getAllProjectsOrderByTitle() {
-		return getEntityManager().createQuery("from Project order by lower(title)").getResultList();
+	public List<Project> getAllProjects() {
+		return getEntityManager().createQuery("""
+				from Project order by lower(title)
+				""", Project.class).getResultList();
 	}
 
@@ -52,6 +54,7 @@
 	public List<CourseProject> getProjectCourses(Project p) {
 		if (p != null) {
-			return getEntityManager().createQuery("from CourseProject cp where cp.project.projectId=:projectId")
-					.setParameter("projectId", p.getProjectId()).getResultList();
+			return getEntityManager().createQuery("""
+					from CourseProject cp where cp.project.projectId=:projectId
+					""").setParameter("projectId", p.getProjectId()).getResultList();
 		} else {
 			return null;
@@ -86,14 +89,22 @@
 	@Override
 	@SuppressWarnings("unchecked")
-	public List<Project> getAllProjectsInCourseOrderByTitle(Course selectedCourse) {
+	public List<Project> getAllProjectsInCourse(Course selectedCourse) {
 		if (selectedCourse != null) {
-			return getEntityManager().createQuery("""
-					select p
-					from CourseProject cp
-					join cp.project p
-					join cp.course c
-					where c.courseId=:courseId
-					order by lower(p.title)
-					""").setParameter("courseId", selectedCourse.getCourseId()).getResultList();
+			return getEntityManager().createNativeQuery("""
+					select p.*
+					from {h-schema}course_project cp
+					join {h-schema}project p on cp.project_id=p.project_id
+					join {h-schema}course c on cp.course_id=c.course_id
+					where c.course_id=:courseId
+					order by
+						(
+						select min(submission_date)
+						from {h-schema}work_report wr
+						join {h-schema}activity a on wr.activity_id=a.activity_id
+						where a.project_id=p.project_id and
+							  not exists (select * from {h-schema}work_evaluation we
+							  			  where we.work_report_id=wr.work_report_id)
+						), p.title
+					""", Project.class).setParameter("courseId", selectedCourse.getCourseId()).getResultList();
 		} else {
 			return null;
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageProjects.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageProjects.java	(revision 6aa1b97a9a6b7962834ccb42e82e96478f0e1c19)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/pages/admin/ManageProjects.java	(revision e0fb1434010279021b3a1542230201b7d12c6102)
@@ -168,5 +168,5 @@
 
 	public List<Project> getAllProjects() {
-		List<Project> list = (List<Project>) projectManager.getAllProjectsOrderByTitle();
+		List<Project> list = (List<Project>) projectManager.getAllProjects();
 		if (selectedCourse == null) {
 			return new ArrayList<Project>();
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/ProjectManager.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/ProjectManager.java	(revision 6aa1b97a9a6b7962834ccb42e82e96478f0e1c19)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/ProjectManager.java	(revision e0fb1434010279021b3a1542230201b7d12c6102)
@@ -33,5 +33,7 @@
 public interface ProjectManager {
 
-	public List<Project> getAllProjectsOrderByTitle();
+	public List<Project> getAllProjects();
+	
+	public List<Project> orderProjectList(List<Project> list);
 
 	public List<CourseProject> getProjectCourses(Project p);
@@ -41,5 +43,5 @@
 	public Float sumPoints(Project p);
 
-	public List<Project> getAllProjectsInCourseOrderByTitle(Course selectedCourse);
+	public List<Project> getAllProjectsInCourse(Course selectedCourse);
 
 	public List<Project> getProjectByPerson(Long personId);
Index: eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/ProjectManagerImpl.java
===================================================================
--- eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/ProjectManagerImpl.java	(revision 6aa1b97a9a6b7962834ccb42e82e96478f0e1c19)
+++ eprms-tap/src/main/java/info/ajanovski/eprms/tap/services/ProjectManagerImpl.java	(revision e0fb1434010279021b3a1542230201b7d12c6102)
@@ -37,4 +37,5 @@
 import info.ajanovski.eprms.model.entities.WorkReport;
 import info.ajanovski.eprms.model.util.ModelConstants;
+import info.ajanovski.eprms.model.util.ProjectCodeComparator;
 import info.ajanovski.eprms.model.util.WorkEvaluationComparator;
 import info.ajanovski.eprms.model.util.WorkReportComparator;
@@ -54,6 +55,6 @@
 
 	@Override
-	public List<Project> getAllProjectsOrderByTitle() {
-		return projectDao.getAllProjectsOrderByTitle();
+	public List<Project> getAllProjects() {
+		return projectDao.getAllProjects();
 	}
 
@@ -89,6 +90,6 @@
 
 	@Override
-	public List<Project> getAllProjectsInCourseOrderByTitle(Course selectedCourse) {
-		return projectDao.getAllProjectsInCourseOrderByTitle(selectedCourse);
+	public List<Project> getAllProjectsInCourse(Course selectedCourse) {
+		return projectDao.getAllProjectsInCourse(selectedCourse);
 	}
 
@@ -152,3 +153,10 @@
 	}
 
+	@Override
+	public List<Project> orderProjectList(List<Project> list) {
+		ProjectCodeComparator pcc = new ProjectCodeComparator();
+		Collections.sort(list, pcc);
+		return list;
+	}
+
 }
