diff --git a/CW1/StudentGradeManagment/.mvn/jvm.config b/CW1/StudentGradeManagment/.mvn/jvm.config
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/CW1/StudentGradeManagment/.mvn/maven.config b/CW1/StudentGradeManagment/.mvn/maven.config
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/CW1/StudentGradeManagment/App.java b/CW1/StudentGradeManagment/App.java
new file mode 100644
index 0000000000000000000000000000000000000000..e8d5f6bf717b290a68fedce1079e2377fb26c43e
--- /dev/null
+++ b/CW1/StudentGradeManagment/App.java
@@ -0,0 +1,2 @@
+package uk.ac.rhul.cs2800.model;
+
diff --git a/CW1/StudentGradeManagment/pom.xml b/CW1/StudentGradeManagment/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3a78f4406df9c51bbe9b5484b73b0eb3894882d9
--- /dev/null
+++ b/CW1/StudentGradeManagment/pom.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+
+  <groupId>uk.ac.rhul.cs2800</groupId>
+  <artifactId>StudentGradeManagment</artifactId>
+  <version>1.0-SNAPSHOT</version>
+
+  <name>StudentGradeManagment</name>
+  <!-- FIXME change it to the project's website -->
+  <url>http://www.example.com</url>
+
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <maven.compiler.release>17</maven.compiler.release>
+  </properties>
+
+  <dependencyManagement>
+    <dependencies>
+      <dependency>
+        <groupId>org.junit</groupId>
+        <artifactId>junit-bom</artifactId>
+        <version>5.11.0</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
+    </dependencies>
+  </dependencyManagement>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-api</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <!-- Optionally: parameterized tests support -->
+    <dependency>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-params</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
+      <plugins>
+        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
+        <plugin>
+          <artifactId>maven-clean-plugin</artifactId>
+          <version>3.4.0</version>
+        </plugin>
+        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
+        <plugin>
+          <artifactId>maven-resources-plugin</artifactId>
+          <version>3.3.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>3.13.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-surefire-plugin</artifactId>
+          <version>3.3.0</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-jar-plugin</artifactId>
+          <version>3.4.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-install-plugin</artifactId>
+          <version>3.1.2</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-deploy-plugin</artifactId>
+          <version>3.1.2</version>
+        </plugin>
+        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
+        <plugin>
+          <artifactId>maven-site-plugin</artifactId>
+          <version>3.12.1</version>
+        </plugin>
+        <plugin>
+          <artifactId>maven-project-info-reports-plugin</artifactId>
+          <version>3.6.1</version>
+        </plugin>
+      </plugins>
+    </pluginManagement>
+  </build>
+</project>
diff --git a/CW1/StudentGradeManagment/src/main/java/uk/ac/rhul/cs2800/App.java b/CW1/StudentGradeManagment/src/main/java/uk/ac/rhul/cs2800/App.java
new file mode 100644
index 0000000000000000000000000000000000000000..e49976b97dbda4124483518f161a767370f4877a
--- /dev/null
+++ b/CW1/StudentGradeManagment/src/main/java/uk/ac/rhul/cs2800/App.java
@@ -0,0 +1,10 @@
+package uk.ac.rhul.cs2800;
+
+/**
+ * Hello world!
+ */
+public class App {
+    public static void main(String[] args) {
+        System.out.println("Hello World!");
+    }
+}
diff --git a/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/AppTest.java b/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/AppTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..ce7098f5a7aadba41ad71c1eb1578b6f153cb08e
--- /dev/null
+++ b/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/AppTest.java
@@ -0,0 +1,19 @@
+package uk.ac.rhul.cs2800.model;
+
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.Test;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest {
+
+    /**
+     * Rigorous Test :-)
+     */
+    @Test
+    public void shouldAnswerWithTrue() {
+        assertTrue(true);
+    }
+}
diff --git a/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024 b/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024
new file mode 160000
index 0000000000000000000000000000000000000000..c600a405403a49cbcf627610878d5dae48e2a58a
--- /dev/null
+++ b/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024
@@ -0,0 +1 @@
+Subproject commit c600a405403a49cbcf627610878d5dae48e2a58a
diff --git a/CW1/StudentGradeManagment/target/classes/uk/ac/rhul/cs2800/App.class b/CW1/StudentGradeManagment/target/classes/uk/ac/rhul/cs2800/App.class
new file mode 100644
index 0000000000000000000000000000000000000000..4166ce1ea6906459272de760784ba20c8228aeee
Binary files /dev/null and b/CW1/StudentGradeManagment/target/classes/uk/ac/rhul/cs2800/App.class differ
diff --git a/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..5d26d14ded79bee8b103f8cef1d8c83c1bd96c1c
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1 @@
+uk/ac/rhul/cs2800/App.class
diff --git a/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..8fe06099e41eeea52208ef7d7e77361a219a72c8
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1 @@
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/main/java/uk/ac/rhul/cs2800/App.java
diff --git a/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..6c48c624ed71ce3f6d5acd675c44d9de827fb5cc
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
@@ -0,0 +1,13 @@
+uk/ac/rhul/cs2800/model/Module.class
+uk/ac/rhul/cs2800/model/Registration.class
+uk/ac/rhul/cs2800/model/exception/NoRegistrationExceptionTest.class
+uk/ac/rhul/cs2800/model/exception/NoGradeAvailableException.class
+uk/ac/rhul/cs2800/model/exception/NoGradeAvailableExceptionTest.class
+uk/ac/rhul/cs2800/model/exception/NoRegistrationException.class
+uk/ac/rhul/cs2800/model/AppTest.class
+uk/ac/rhul/cs2800/model/Grade.class
+uk/ac/rhul/cs2800/model/GradeTest.class
+uk/ac/rhul/cs2800/model/StudentTest.class
+uk/ac/rhul/cs2800/model/RegistrationTest.class
+uk/ac/rhul/cs2800/model/ModuleTest.class
+uk/ac/rhul/cs2800/model/Student.class
diff --git a/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000000000000000000000000000000000000..0a825ee190b762c34a9f366d20fbd175dbaa3ecc
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
@@ -0,0 +1,13 @@
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/AppTest.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/main/java/uk/ac/rhul/cs2800/model/Grade.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/main/java/uk/ac/rhul/cs2800/model/Module.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/main/java/uk/ac/rhul/cs2800/model/Registration.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/main/java/uk/ac/rhul/cs2800/model/Student.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/main/java/uk/ac/rhul/cs2800/model/exception/NoGradeAvailableException.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/main/java/uk/ac/rhul/cs2800/model/exception/NoRegistrationException.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/test/java/uk/ac/rhul/cs2800/model/GradeTest.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/test/java/uk/ac/rhul/cs2800/model/ModuleTest.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/test/java/uk/ac/rhul/cs2800/model/RegistrationTest.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/test/java/uk/ac/rhul/cs2800/model/StudentTest.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/test/java/uk/ac/rhul/cs2800/model/exception/NoGradeAvailableExceptionTest.java
+/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/src/test/java/uk/ac/rhul/cs2800/model/cs2800-lab-2024/CW1/StudentGradeManagement/src/test/java/uk/ac/rhul/cs2800/model/exception/NoRegistrationExceptionTest.java
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.AppTest.xml b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.AppTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..25caea5ed332b8ac07748e4622d2b1dd307ec935
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.AppTest.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.1" name="uk.ac.rhul.cs2800.AppTest" time="0.016" tests="1" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="22"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="22"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="PK"/>
+    <property name="sun.boot.library.path" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open/lib"/>
+    <property name="sun.java.command" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241031204336430_3.jar /Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire 2024-10-31T20-43-36_107-jvmRun1 surefire-20241031204336430_1tmp surefire_0-20241031204336430_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/sulemamalik"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2024-04-16"/>
+    <property name="java.home" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="apple.awt.application.name" value="ForkedBooter"/>
+    <property name="surefire.real.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241031204336430_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="22.0.1+8-16"/>
+    <property name="user.name" value="sulemamalik"/>
+    <property name="stdout.encoding" value="UTF-8"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="13.4"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="localRepository" value="/Users/sulemamalik/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="/var/folders/pw/4g__6qxs22x7002tw3z8sm0r0000gn/T/"/>
+    <property name="java.version" value="22.0.1"/>
+    <property name="user.dir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/sulemamalik/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode, sharing"/>
+    <property name="stderr.encoding" value="UTF-8"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="22.0.1+8-16"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="66.0"/>
+  </properties>
+  <testcase name="shouldAnswerWithTrue" classname="uk.ac.rhul.cs2800.AppTest" time="0.009"/>
+</testsuite>
\ No newline at end of file
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.AppTest.xml b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.AppTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..10a774e76ef5d4bd22497d46ffb34054d5a685c5
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.AppTest.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.1" name="uk.ac.rhul.cs2800.model.AppTest" time="0.001" tests="1" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="22"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="22"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="PK"/>
+    <property name="sun.boot.library.path" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open/lib"/>
+    <property name="sun.java.command" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar /Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire 2024-11-01T03-25-11_610-jvmRun1 surefire-20241101032511664_1tmp surefire_0-20241101032511664_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/sulemamalik"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2024-04-16"/>
+    <property name="java.home" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="apple.awt.application.name" value="ForkedBooter"/>
+    <property name="surefire.real.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="22.0.1+8-16"/>
+    <property name="user.name" value="sulemamalik"/>
+    <property name="stdout.encoding" value="UTF-8"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="13.4"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="localRepository" value="/Users/sulemamalik/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="/var/folders/pw/4g__6qxs22x7002tw3z8sm0r0000gn/T/"/>
+    <property name="java.version" value="22.0.1"/>
+    <property name="user.dir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/sulemamalik/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode, sharing"/>
+    <property name="stderr.encoding" value="UTF-8"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="22.0.1+8-16"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="66.0"/>
+  </properties>
+  <testcase name="shouldAnswerWithTrue" classname="uk.ac.rhul.cs2800.model.AppTest" time="0.001"/>
+</testsuite>
\ No newline at end of file
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.GradeTest.xml b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.GradeTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ae4948acf61224ece637dc1192daa8a038ad21df
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.GradeTest.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.1" name="uk.ac.rhul.cs2800.model.GradeTest" time="0.001" tests="2" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="22"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="22"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="PK"/>
+    <property name="sun.boot.library.path" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open/lib"/>
+    <property name="sun.java.command" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar /Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire 2024-11-01T03-25-11_610-jvmRun1 surefire-20241101032511664_1tmp surefire_0-20241101032511664_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/sulemamalik"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2024-04-16"/>
+    <property name="java.home" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="apple.awt.application.name" value="ForkedBooter"/>
+    <property name="surefire.real.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="22.0.1+8-16"/>
+    <property name="user.name" value="sulemamalik"/>
+    <property name="stdout.encoding" value="UTF-8"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="13.4"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="localRepository" value="/Users/sulemamalik/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="/var/folders/pw/4g__6qxs22x7002tw3z8sm0r0000gn/T/"/>
+    <property name="java.version" value="22.0.1"/>
+    <property name="user.dir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/sulemamalik/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode, sharing"/>
+    <property name="stderr.encoding" value="UTF-8"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="22.0.1+8-16"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="66.0"/>
+  </properties>
+  <testcase name="testGradeInitialization" classname="uk.ac.rhul.cs2800.model.GradeTest" time="0.0"/>
+  <testcase name="testSetScore" classname="uk.ac.rhul.cs2800.model.GradeTest" time="0.0"/>
+</testsuite>
\ No newline at end of file
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.ModuleTest.xml b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.ModuleTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9d9331b1c27046b7c40b3bccbc4b1bd3f5ab0947
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.ModuleTest.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.1" name="uk.ac.rhul.cs2800.model.ModuleTest" time="0.001" tests="1" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="22"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="22"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="PK"/>
+    <property name="sun.boot.library.path" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open/lib"/>
+    <property name="sun.java.command" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar /Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire 2024-11-01T03-25-11_610-jvmRun1 surefire-20241101032511664_1tmp surefire_0-20241101032511664_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/sulemamalik"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2024-04-16"/>
+    <property name="java.home" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="apple.awt.application.name" value="ForkedBooter"/>
+    <property name="surefire.real.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="22.0.1+8-16"/>
+    <property name="user.name" value="sulemamalik"/>
+    <property name="stdout.encoding" value="UTF-8"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="13.4"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="localRepository" value="/Users/sulemamalik/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="/var/folders/pw/4g__6qxs22x7002tw3z8sm0r0000gn/T/"/>
+    <property name="java.version" value="22.0.1"/>
+    <property name="user.dir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/sulemamalik/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode, sharing"/>
+    <property name="stderr.encoding" value="UTF-8"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="22.0.1+8-16"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="66.0"/>
+  </properties>
+  <testcase name="testModuleInitialization" classname="uk.ac.rhul.cs2800.model.ModuleTest" time="0.001"/>
+</testsuite>
\ No newline at end of file
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.RegistrationTest.xml b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.RegistrationTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..af74ae4ef3468599356848478c48697d08893fba
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.RegistrationTest.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.1" name="uk.ac.rhul.cs2800.model.RegistrationTest" time="0.018" tests="1" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="22"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="22"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="PK"/>
+    <property name="sun.boot.library.path" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open/lib"/>
+    <property name="sun.java.command" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar /Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire 2024-11-01T03-25-11_610-jvmRun1 surefire-20241101032511664_1tmp surefire_0-20241101032511664_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/sulemamalik"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2024-04-16"/>
+    <property name="java.home" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="apple.awt.application.name" value="ForkedBooter"/>
+    <property name="surefire.real.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="22.0.1+8-16"/>
+    <property name="user.name" value="sulemamalik"/>
+    <property name="stdout.encoding" value="UTF-8"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="13.4"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="localRepository" value="/Users/sulemamalik/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="/var/folders/pw/4g__6qxs22x7002tw3z8sm0r0000gn/T/"/>
+    <property name="java.version" value="22.0.1"/>
+    <property name="user.dir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/sulemamalik/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode, sharing"/>
+    <property name="stderr.encoding" value="UTF-8"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="22.0.1+8-16"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="66.0"/>
+  </properties>
+  <testcase name="testRegistrationInitialization" classname="uk.ac.rhul.cs2800.model.RegistrationTest" time="0.011"/>
+</testsuite>
\ No newline at end of file
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.StudentTest.xml b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.StudentTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..18aa53d63a23f1e14eb75975cb671b263de1e24c
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.StudentTest.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.1" name="uk.ac.rhul.cs2800.model.StudentTest" time="0.004" tests="4" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="22"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="22"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="PK"/>
+    <property name="sun.boot.library.path" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open/lib"/>
+    <property name="sun.java.command" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar /Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire 2024-11-01T03-25-11_610-jvmRun1 surefire-20241101032511664_1tmp surefire_0-20241101032511664_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/sulemamalik"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2024-04-16"/>
+    <property name="java.home" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="apple.awt.application.name" value="ForkedBooter"/>
+    <property name="surefire.real.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="22.0.1+8-16"/>
+    <property name="user.name" value="sulemamalik"/>
+    <property name="stdout.encoding" value="UTF-8"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="13.4"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="localRepository" value="/Users/sulemamalik/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="/var/folders/pw/4g__6qxs22x7002tw3z8sm0r0000gn/T/"/>
+    <property name="java.version" value="22.0.1"/>
+    <property name="user.dir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/sulemamalik/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode, sharing"/>
+    <property name="stderr.encoding" value="UTF-8"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="22.0.1+8-16"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="66.0"/>
+  </properties>
+  <testcase name="testRegisterModule" classname="uk.ac.rhul.cs2800.model.StudentTest" time="0.001"/>
+  <testcase name="testGetGradeThrowsExceptionWhenNoGrade" classname="uk.ac.rhul.cs2800.model.StudentTest" time="0.001"/>
+  <testcase name="testAddGrade" classname="uk.ac.rhul.cs2800.model.StudentTest" time="0.001"/>
+  <testcase name="testComputeAverage" classname="uk.ac.rhul.cs2800.model.StudentTest" time="0.0"/>
+</testsuite>
\ No newline at end of file
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest.xml b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fbe419379ced6f41b81300d4d2604496b00c8532
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.1" name="uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest" time="0.001" tests="1" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="22"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="22"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="PK"/>
+    <property name="sun.boot.library.path" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open/lib"/>
+    <property name="sun.java.command" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar /Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire 2024-11-01T03-25-11_610-jvmRun1 surefire-20241101032511664_1tmp surefire_0-20241101032511664_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/sulemamalik"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2024-04-16"/>
+    <property name="java.home" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="apple.awt.application.name" value="ForkedBooter"/>
+    <property name="surefire.real.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="22.0.1+8-16"/>
+    <property name="user.name" value="sulemamalik"/>
+    <property name="stdout.encoding" value="UTF-8"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="13.4"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="localRepository" value="/Users/sulemamalik/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="/var/folders/pw/4g__6qxs22x7002tw3z8sm0r0000gn/T/"/>
+    <property name="java.version" value="22.0.1"/>
+    <property name="user.dir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/sulemamalik/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode, sharing"/>
+    <property name="stderr.encoding" value="UTF-8"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="22.0.1+8-16"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="66.0"/>
+  </properties>
+  <testcase name="testExceptionMessage" classname="uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest" time="0.0"/>
+</testsuite>
\ No newline at end of file
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest.xml b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7b37d029893d42a3969ae77203ddf8ab00411f0d
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/TEST-uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" version="3.0.1" name="uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest" time="0.001" tests="1" errors="0" skipped="0" failures="0">
+  <properties>
+    <property name="java.specification.version" value="22"/>
+    <property name="sun.jnu.encoding" value="UTF-8"/>
+    <property name="java.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="java.vm.vendor" value="Oracle Corporation"/>
+    <property name="sun.arch.data.model" value="64"/>
+    <property name="java.vendor.url" value="https://java.oracle.com/"/>
+    <property name="os.name" value="Mac OS X"/>
+    <property name="java.vm.specification.version" value="22"/>
+    <property name="sun.java.launcher" value="SUN_STANDARD"/>
+    <property name="user.country" value="PK"/>
+    <property name="sun.boot.library.path" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open/lib"/>
+    <property name="sun.java.command" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar /Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire 2024-11-01T03-25-11_610-jvmRun1 surefire-20241101032511664_1tmp surefire_0-20241101032511664_2tmp"/>
+    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="jdk.debug" value="release"/>
+    <property name="surefire.test.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/test-classes:/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/classes:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.11.0/junit-jupiter-api-5.11.0.jar:/Users/sulemamalik/.m2/repository/org/opentest4j/opentest4j/1.3.0/opentest4j-1.3.0.jar:/Users/sulemamalik/.m2/repository/org/junit/platform/junit-platform-commons/1.11.0/junit-platform-commons-1.11.0.jar:/Users/sulemamalik/.m2/repository/org/apiguardian/apiguardian-api/1.1.2/apiguardian-api-1.1.2.jar:/Users/sulemamalik/.m2/repository/org/junit/jupiter/junit-jupiter-params/5.11.0/junit-jupiter-params-5.11.0.jar:"/>
+    <property name="sun.cpu.endian" value="little"/>
+    <property name="user.home" value="/Users/sulemamalik"/>
+    <property name="user.language" value="en"/>
+    <property name="java.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.version.date" value="2024-04-16"/>
+    <property name="java.home" value="/Users/sulemamalik/.sdkman/candidates/java/22.0.1-open"/>
+    <property name="file.separator" value="/"/>
+    <property name="basedir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="java.vm.compressedOopsMode" value="Zero based"/>
+    <property name="line.separator" value="&#10;"/>
+    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
+    <property name="java.specification.name" value="Java Platform API Specification"/>
+    <property name="apple.awt.application.name" value="ForkedBooter"/>
+    <property name="surefire.real.class.path" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment/target/surefire/surefirebooter-20241101032511664_3.jar"/>
+    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
+    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.runtime.version" value="22.0.1+8-16"/>
+    <property name="user.name" value="sulemamalik"/>
+    <property name="stdout.encoding" value="UTF-8"/>
+    <property name="path.separator" value=":"/>
+    <property name="os.version" value="13.4"/>
+    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
+    <property name="file.encoding" value="UTF-8"/>
+    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
+    <property name="localRepository" value="/Users/sulemamalik/.m2/repository"/>
+    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
+    <property name="java.io.tmpdir" value="/var/folders/pw/4g__6qxs22x7002tw3z8sm0r0000gn/T/"/>
+    <property name="java.version" value="22.0.1"/>
+    <property name="user.dir" value="/Users/sulemamalik/cs2800-lab-2024/cs2800-lab-2024/CW1/StudentGradeManagment"/>
+    <property name="os.arch" value="aarch64"/>
+    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
+    <property name="native.encoding" value="UTF-8"/>
+    <property name="java.library.path" value="/Users/sulemamalik/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
+    <property name="java.vm.info" value="mixed mode, sharing"/>
+    <property name="stderr.encoding" value="UTF-8"/>
+    <property name="java.vendor" value="Oracle Corporation"/>
+    <property name="java.vm.version" value="22.0.1+8-16"/>
+    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
+    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
+    <property name="java.class.version" value="66.0"/>
+  </properties>
+  <testcase name="testExceptionMessage" classname="uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest" time="0.001"/>
+</testsuite>
\ No newline at end of file
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.AppTest.txt b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.AppTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6621dd8d9827dfd5d6d3d2fddc2a00041729c06f
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.AppTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: uk.ac.rhul.cs2800.AppTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 s -- in uk.ac.rhul.cs2800.AppTest
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.AppTest.txt b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.AppTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..03c5cbacd0801f701c01d56d42c1f57ad6355e6f
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.AppTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: uk.ac.rhul.cs2800.model.AppTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s -- in uk.ac.rhul.cs2800.model.AppTest
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.GradeTest.txt b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.GradeTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0311283a7aa4df64f054f883841fa646e348612b
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.GradeTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: uk.ac.rhul.cs2800.model.GradeTest
+-------------------------------------------------------------------------------
+Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s -- in uk.ac.rhul.cs2800.model.GradeTest
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.ModuleTest.txt b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.ModuleTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..42c21341a8549711a129bf31048aa0773f3f9d40
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.ModuleTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: uk.ac.rhul.cs2800.model.ModuleTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s -- in uk.ac.rhul.cs2800.model.ModuleTest
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.RegistrationTest.txt b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.RegistrationTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..d1cc54a5bd3470e3e5a6b4824ae6e128bc232b1d
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.RegistrationTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: uk.ac.rhul.cs2800.model.RegistrationTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.018 s -- in uk.ac.rhul.cs2800.model.RegistrationTest
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.StudentTest.txt b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.StudentTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..203f6e147b44b16530ea7720434aa24e1785c164
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.StudentTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: uk.ac.rhul.cs2800.model.StudentTest
+-------------------------------------------------------------------------------
+Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 s -- in uk.ac.rhul.cs2800.model.StudentTest
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest.txt b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c9de29d49a771495bccbce78ab3da90f8e6ae8bc
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s -- in uk.ac.rhul.cs2800.model.exception.NoGradeAvailableExceptionTest
diff --git a/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest.txt b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest.txt
new file mode 100644
index 0000000000000000000000000000000000000000..249c6e8f97b822e156af90b922368388af21c3ae
--- /dev/null
+++ b/CW1/StudentGradeManagment/target/surefire-reports/uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest.txt
@@ -0,0 +1,4 @@
+-------------------------------------------------------------------------------
+Test set: uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest
+-------------------------------------------------------------------------------
+Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s -- in uk.ac.rhul.cs2800.model.exception.NoRegistrationExceptionTest
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/AppTest.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/AppTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..6b5ef3c00391a080c999167ce0764905562cb217
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/AppTest.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Grade.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Grade.class
new file mode 100644
index 0000000000000000000000000000000000000000..4a1854b977f3d5f5adb93c8424f6e7698e7d344e
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Grade.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/GradeTest.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/GradeTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..aa7943ad49894da36da9baa2bba385b2bd31d3b3
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/GradeTest.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Module.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Module.class
new file mode 100644
index 0000000000000000000000000000000000000000..b51c8ec86926f17d99b33a09480440f5addd771b
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Module.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/ModuleTest.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/ModuleTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..9e66b198aca1d061767bd5d2d0b3a5e206072fc9
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/ModuleTest.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Registration.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Registration.class
new file mode 100644
index 0000000000000000000000000000000000000000..274e37eb1fc678a2c935481536418641994f194e
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Registration.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/RegistrationTest.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/RegistrationTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..0996cc28d6d3f634dab8def22bbd97ac540cb5a7
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/RegistrationTest.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Student.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Student.class
new file mode 100644
index 0000000000000000000000000000000000000000..713c98967c6cd29692e23caa6eff3e6b9525eab8
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/Student.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/StudentTest.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/StudentTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..fc4962bda8dc6705b0b2b3c2dab64cf9b0fa6660
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/StudentTest.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoGradeAvailableException.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoGradeAvailableException.class
new file mode 100644
index 0000000000000000000000000000000000000000..17480f74de8378ff2a7ebc467efde5810854c828
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoGradeAvailableException.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoGradeAvailableExceptionTest.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoGradeAvailableExceptionTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..7afb97e124475cf26123ac3645a4fe241d234d31
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoGradeAvailableExceptionTest.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoRegistrationException.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoRegistrationException.class
new file mode 100644
index 0000000000000000000000000000000000000000..1eca89c1683833ef3dfb031336611f6027b92ae3
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoRegistrationException.class differ
diff --git a/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoRegistrationExceptionTest.class b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoRegistrationExceptionTest.class
new file mode 100644
index 0000000000000000000000000000000000000000..16be6b9d23c8bcdc68995b4cbca53f432ed8fbe5
Binary files /dev/null and b/CW1/StudentGradeManagment/target/test-classes/uk/ac/rhul/cs2800/model/exception/NoRegistrationExceptionTest.class differ