Index: dbLearnStar-model/src/main/java/dblearnstar/model/entities/SystemParameter.java
===================================================================
--- dbLearnStar-model/src/main/java/dblearnstar/model/entities/SystemParameter.java	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
+++ dbLearnStar-model/src/main/java/dblearnstar/model/entities/SystemParameter.java	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (C) 2021 Vangel V. Ajanovski
+ *     
+ * This file is part of the dbLearn* 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.model.entities;
+
+import java.util.*;
+import javax.persistence.*;
+import javax.validation.constraints.*;
+
+/*
+*/
+@Entity
+@Table (schema="sql_learning", name="system_parameter")
+public class SystemParameter implements java.io.Serializable {
+	private long systemParameterId;
+	private String className;
+	private long originalObjectId;
+	private String type;
+	private String code;
+	private String value;
+
+
+	@Id
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+
+	@NotNull
+	@Column(name = "system_parameter_id", unique = true, nullable = false)
+	public long getSystemParameterId() {
+		return this.systemParameterId;
+	}
+
+	public void setSystemParameterId(long systemParameterId) {
+		this.systemParameterId=systemParameterId;
+	}
+
+	@NotNull
+	@Column(name = "class_name", nullable = false)
+	public String getClassName() {
+		return this.className;
+	}
+
+	public void setClassName(String className) {
+		this.className=className;
+	}
+
+	@NotNull
+	@Column(name = "original_object_id", nullable = false)
+	public long getOriginalObjectId() {
+		return this.originalObjectId;
+	}
+
+	public void setOriginalObjectId(long originalObjectId) {
+		this.originalObjectId=originalObjectId;
+	}
+
+	@NotNull
+	@Column(name = "type", nullable = false)
+	public String getType() {
+		return this.type;
+	}
+
+	public void setType(String type) {
+		this.type=type;
+	}
+
+	@NotNull
+	@Column(name = "code", nullable = false)
+	public String getCode() {
+		return this.code;
+	}
+
+	public void setCode(String code) {
+		this.code=code;
+	}
+
+	@NotNull
+	@Column(name = "value", nullable = false)
+	public String getValue() {
+		return this.value;
+	}
+
+	public void setValue(String value) {
+		this.value=value;
+	}
+
+}
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/admin/SystemParameters.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/admin/SystemParameters.java	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/pages/admin/SystemParameters.java	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (C) 2021 Vangel V. Ajanovski
+ *     
+ * This file is part of the EPRMS - Educational Project and Resource 
+ * Management System (hereinafter: EPRMS).
+ *     
+ * EPRMS 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.
+ *     
+ * EPRMS 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 EPRMS.  If not, see <https://www.gnu.org/licenses/>.
+ ******************************************************************************/
+
+package dblearnstar.webapp.pages.admin;
+
+import java.util.List;
+
+import org.apache.tapestry5.annotations.Persist;
+import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.annotations.SessionState;
+import org.apache.tapestry5.hibernate.annotations.CommitAfter;
+import org.apache.tapestry5.ioc.annotations.Inject;
+
+import dblearnstar.model.entities.SystemParameter;
+import dblearnstar.model.model.UserInfo;
+import dblearnstar.webapp.annotations.AdministratorPage;
+import dblearnstar.webapp.annotations.InstructorPage;
+import dblearnstar.webapp.services.GenericService;
+import dblearnstar.webapp.services.UsefulMethods;
+
+@InstructorPage
+@AdministratorPage
+public class SystemParameters {
+	@SessionState
+	@Property
+	private UserInfo userInfo;
+
+	@Inject
+	private GenericService genericService;
+
+	@Property
+	private SystemParameter systemParameter;
+
+	@Persist
+	@Property
+	private SystemParameter editSystemParameter;
+
+	public List<SystemParameter> getSystemParameters() {
+		return (List<SystemParameter>) UsefulMethods.castList(SystemParameter.class,
+				genericService.getAll(SystemParameter.class));
+	}
+
+	void onActionFromNewSystemParameter() {
+		editSystemParameter = new SystemParameter();
+	}
+
+	void onActionFromEditParameter(SystemParameter sp) {
+		editSystemParameter = sp;
+	}
+
+	@CommitAfter
+	void onActionFromDeleteParameter(SystemParameter sp) {
+		genericService.delete(sp);
+	}
+
+	@CommitAfter
+	void onSuccessFromEditSystemParameter() {
+		genericService.saveOrUpdate(editSystemParameter);
+		editSystemParameter = null;
+	}
+}
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/SystemConfigService.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/SystemConfigService.java	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/SystemConfigService.java	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
@@ -0,0 +1,7 @@
+package dblearnstar.webapp.services;
+
+public interface SystemConfigService {
+	public String getCode(String className, long originalObjectId, String type);
+
+	public String getValue(String className, long originalObjectId, String type);
+}
Index: dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/SystemConfigServiceImpl.java
===================================================================
--- dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/SystemConfigServiceImpl.java	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
+++ dbLearnStar-webApp/src/main/java/dblearnstar/webapp/services/SystemConfigServiceImpl.java	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
@@ -0,0 +1,39 @@
+package dblearnstar.webapp.services;
+
+import org.apache.tapestry5.ioc.annotations.Inject;
+
+import dblearnstar.model.entities.SystemParameter;
+
+public class SystemConfigServiceImpl implements SystemConfigService {
+
+	@Inject
+	private GenericService genericService;
+
+	@Override
+	public String getValue(String className, long originalObjectId, String type) {
+		SystemParameter sp = (UsefulMethods.castList(SystemParameter.class,
+				genericService.getAll(SystemParameter.class))).stream()
+				.filter(p -> p.getClassName().equals(className) && p.getOriginalObjectId() == originalObjectId
+						&& p.getType().equals(type))
+				.findFirst().orElse(null);
+		if (sp != null) {
+			return sp.getValue();
+		} else {
+			return null;
+		}
+	}
+
+	@Override
+	public String getCode(String className, long originalObjectId, String type) {
+		SystemParameter sp = (UsefulMethods.castList(SystemParameter.class,
+				genericService.getAll(SystemParameter.class))).stream()
+				.filter(p -> p.getClassName().equals(className) && p.getOriginalObjectId() == originalObjectId
+						&& p.getType().equals(type))
+				.findFirst().orElse(null);
+		if (sp != null) {
+			return sp.getCode();
+		} else {
+			return null;
+		}
+	}
+}
Index: dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/admin/SystemParameters.tml
===================================================================
--- dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/admin/SystemParameters.tml	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
+++ dbLearnStar-webApp/src/main/resources/dblearnstar/webapp/pages/admin/SystemParameters.tml	(revision 8fe879e6e04d59805751da1a4a85617ca0e9f296)
@@ -0,0 +1,30 @@
+<html t:type="layout" title="message:admin/SystemParameters-pagelink"
+	xmlns:t="http://tapestry.apache.org/schema/tapestry_5_4.xsd"
+	xmlns:p="tapestry:parameter">
+
+<h1>${message:admin/SystemParameters-pagelink}</h1>
+
+<div t:type="if" t:test="editSystemParameter">
+	<form t:type="beaneditform" t:object="editSystemParameter"
+		t:id="editSystemParameter" t:exclude="systemParameterId" />
+</div>
+
+<p>
+	<a href="" t:type="actionlink" class="btn btn-sm btn-primary"
+		t:id="newSystemParameter"><t:svgicon
+				t:path="plus" />${message:new-label}</a>
+</p>
+
+<table class="table table-sm" t:type="grid" t:source="systemParameters"
+	t:row="systemParameter" t:exclude="systemParameterId" t:add="icons">
+	<p:iconsCell>
+		<a href="" t:type="actionlink" class="btn btn-sm btn-primary"
+			t:id="editParameter" t:context="systemParameter"><t:svgicon
+				t:path="edit" />${message:edit-label}</a>
+		<a href="" t:type="actionlink" class="btn btn-sm btn-danger"
+			t:id="deleteParameter" t:context="systemParameter"><t:svgicon
+				t:path="trash" />${message:remove-label}</a>
+	</p:iconsCell>
+</table>
+
+</html>
