diff --git a/django_project/myapp/templates/myapp/register.html b/django_project/myapp/templates/myapp/register.html
index f8943b581693736ee69a38857bc9b5ac4b74ffc5..e9501296f9ca45b4ca09bebea03131f44e81ad1d 100644
--- a/django_project/myapp/templates/myapp/register.html
+++ b/django_project/myapp/templates/myapp/register.html
@@ -29,7 +29,13 @@
         
         <label for="id_studentid">studentid:</label>
         <input type="studentid" name="studentid" id="id_studentid" required><br><br>
+       
+        <label for="id_startyear">Starting Year:</label>
+        <input type="starttear" name="startyear" id="id_startyear" required><br><br>
         
+        <label for="id_endyear">Ending Year:</label>
+        <input type="endyear" name="endyear" id="id_endyear" required><br><br>
+
         <button type="submit">Register</button>
     </form>
     <p>
diff --git a/django_project/myapp/views.py b/django_project/myapp/views.py
index 68e6b173e844d50a5b45a1ed2b9b2d28d4636b4b..f77ee730cf0e780c681c77fcd20f34cd9d2ebab0 100644
--- a/django_project/myapp/views.py
+++ b/django_project/myapp/views.py
@@ -29,9 +29,10 @@ def register_view(request):
         password = request.POST.get('password', '').strip()
         username = request.POST.get('username', '').strip()
         studentid_str = request.POST.get('studentid', '').strip()
-
+        startyear = request.POST.get('startyear', '').strip()
+        endyear = request.POST.get('endyear', '').strip()
         # 1. Check required fields
-        if not all([name, email, password, username, studentid_str]):
+        if not all([name, email, password, username, studentid_str, startyear, endyear]):
             context['error'] = "Name, email, username, student ID, and password are required."
             return render(request, 'myapp/register.html', context)
 
@@ -39,12 +40,23 @@ def register_view(request):
         try:
             studentid = int(studentid_str)
         except ValueError:
-            context['error'] = "Student ID must be an integer."
+            context['error'] = "Student ID must be an number."
+            return render(request, 'myapp/register.html', context)
+        
+        try:
+            startyear = int(startyear)
+        except ValueError:
+            context['error'] = "Start year must be an number."
+            return render(request, 'myapp/register.html', context)
+        
+        try:
+            endyear = int(endyear)
+        except ValueError:
+            context['error'] = "End year must be an number."
             return render(request, 'myapp/register.html', context)
-
         # 3. If the parse succeeded, call create_user in Rust
         try:
-            rust_crud_api.create_user(db_url, name, email, password, username, studentid)
+            rust_crud_api.create_user(db_url, name, email, password, username, studentid, startyear, endyear)
             # 4. Redirect on success
             return redirect('login')
         except Exception as e:
diff --git a/rust_crud_api/src/db/groups.rs b/rust_crud_api/src/db/groups.rs
index 73e349227711c35c6b813a32b1e2135a678ff09f..c6d5d7713a422f4f70bafeeddc7c6550deaa4f91 100644
--- a/rust_crud_api/src/db/groups.rs
+++ b/rust_crud_api/src/db/groups.rs
@@ -83,6 +83,8 @@ pub fn get_group_members(db_url: &str, group_id: i32) -> PyResult<Vec<User>> {
         email: row.get(2),
         username: row.get(3),
         studentid: row.get(4),
+        startyear: row.get(5),
+        endyear: row.get(6),
     }).collect();
     
     Ok(users)
diff --git a/rust_crud_api/src/db/init.rs b/rust_crud_api/src/db/init.rs
index 12f9545840230dfe2f4883ff7ad29cfdb832e4e8..73abf8369720de3ead2891a5fd5a40819e1f9114 100644
--- a/rust_crud_api/src/db/init.rs
+++ b/rust_crud_api/src/db/init.rs
@@ -17,7 +17,9 @@ pub fn init_db(db_url: &str) -> PyResult<()> {
             email VARCHAR NOT NULL UNIQUE,
             password_hash VARCHAR NOT NULL,
             username VARCHAR NOT NULL,
-            studentid INT NOT NULL UNIQUE
+            studentid INT NOT NULL UNIQUE,
+            startyear INT NOT NULL,
+            endyear INT NOT NULL
         );
         CREATE TABLE IF NOT EXISTS groups (
             id SERIAL PRIMARY KEY,
diff --git a/rust_crud_api/src/db/users.rs b/rust_crud_api/src/db/users.rs
index 3689f1b482f97b204d769edec6325ca85d1fbdc8..edb56a483c050d0b30c2ab7e7c403756df210311 100644
--- a/rust_crud_api/src/db/users.rs
+++ b/rust_crud_api/src/db/users.rs
@@ -11,13 +11,13 @@ fn pg_err(e: postgres::Error) -> PyErr {
 
 #[pyfunction]
 pub fn create_user(
-    db_url: &str, name: &str, email: &str, password: &str, username: &str, studentid: i32,) -> PyResult<()> {
+    db_url: &str, name: &str, email: &str, password: &str, username: &str, studentid: i32, startyear: i32, endyear: i32) -> PyResult<()> {
     let password_hash = hash_password(password)?;
     let mut client = Client::connect(db_url, NoTls).map_err(pg_err)?;
     let result = client.execute(
-        "INSERT INTO users (name, email, password_hash, username, studentid)
-         VALUES ($1, $2, $3, $4, $5)",
-        &[&name, &email, &password_hash, &username, &studentid],
+        "INSERT INTO users (name, email, password_hash, username, studentid, startyear, endyear)
+         VALUES ($1, $2, $3, $4, $5, $6, $7)",
+        &[&name, &email, &password_hash, &username, &studentid, &startyear, &endyear],
     );
 
     match result {
@@ -42,7 +42,7 @@ pub fn create_user(
 pub fn get_user(db_url: &str, user_id: i32) -> PyResult<Option<User>> {
     let mut client = Client::connect(db_url, NoTls).map_err(pg_err)?;
     let row_opt = client.query_opt(
-        "SELECT id, name, email, username, studentid FROM users WHERE id = $1",
+        "SELECT id, name, email, username, studentid, startyear, endyear FROM users WHERE id = $1",
         &[&user_id]
     ).map_err(pg_err)?;
     
@@ -53,6 +53,9 @@ pub fn get_user(db_url: &str, user_id: i32) -> PyResult<Option<User>> {
             email: row.get(2),
             username: row.get(3),
             studentid: row.get(4),
+            startyear: row.get(5),
+            endyear: row.get(6),
+
         };
         Ok(Some(user))
     } else {
@@ -64,7 +67,7 @@ pub fn get_user(db_url: &str, user_id: i32) -> PyResult<Option<User>> {
 #[pyfunction]
 pub fn get_all_users(db_url: &str) -> PyResult<Vec<User>> {
     let mut client = Client::connect(db_url, NoTls).map_err(pg_err)?;
-    let rows = client.query("SELECT id, name, email, username, studentid FROM users", &[])
+    let rows = client.query("SELECT id, name, email, username, studentid, startyear, endyear FROM users", &[])
         .map_err(pg_err)?;
     
     let mut users = Vec::new();
@@ -75,6 +78,9 @@ pub fn get_all_users(db_url: &str) -> PyResult<Vec<User>> {
             email: row.get(2),
             username: row.get(3),
             studentid: row.get(4),
+            startyear: row.get(5),
+            endyear: row.get(6),
+
         });
     }
     Ok(users)
diff --git a/rust_crud_api/src/models/user.rs b/rust_crud_api/src/models/user.rs
index 2b50363a945b46d6af3412e69f8c6620145b44e2..ef54873266322a7b5b1026f21d87eeafc7205e8e 100644
--- a/rust_crud_api/src/models/user.rs
+++ b/rust_crud_api/src/models/user.rs
@@ -14,5 +14,9 @@ pub struct User {
     pub username: String,
     #[pyo3(get,set)]
     pub studentid: i32,
+    #[pyo3(get,set)]
+    pub startyear: i32, 
+    #[pyo3(get,set)]
+    pub endyear: i32,
 }