Index: backend/controllers/apiController.js
===================================================================
--- backend/controllers/apiController.js	(revision 3faaf6b495d1dcaaabbcdc28b9384ba465de6acc)
+++ backend/controllers/apiController.js	(revision 06a79c8eacdedd9c14cb682fde382d6cb45ced7d)
@@ -1,26 +1,54 @@
 const supabase = require('../supabaseClient');
+const User = require('../models/User');
+
+async function createUserInSupabase(userInstance) {
+  const { data, error } = await supabase.from('users').insert([
+    {
+      id: userInstance.id,
+      username: userInstance.username,
+      email: userInstance.email,
+      name: userInstance.name,
+      solved_problems: 0,
+      rank: 'Novice',
+      points: 0,
+      commentCounter: 3,
+      commentCheckCounter: 0,
+      postCounter: 3,
+      postCheckCounter: 0,
+    },
+  ]);
+  return { data, error };
+}
 
 const registerPOST = async (req, res) => {
   try {
-    const { username, email, password } = req.body;
-    if (!username || !email || !password) {
+    const { username, name, email, password } = req.body;
+
+    const userModel = new User({ username, email, name });
+
+    const validationErrors = userModel.validate();
+
+    if (validationErrors) {
       return res.status(400).json({
-        message: 'Missing required fields',
+        message: 'Validation failed',
+        errors: validationErrors,
         success: false,
       });
     }
-    if (!email.endsWith('@students.finki.ukim.mk')) {
+
+    if (!password) {
       return res.status(400).json({
-        message: 'Email must be a valid FINKI student email',
+        message: 'Password is required',
         success: false,
       });
     }
-    // Create user in Supabase Auth
+
     const { data, error } = await supabase.auth.admin.createUser({
       email,
       password,
       user_metadata: { username },
-      email_confirm: true
+      email_confirm: true,
     });
+
     if (error) {
       if (error.message.includes('already registered')) {
@@ -35,16 +63,20 @@
       });
     }
-    // Optionally, store additional user info in a public 'users' table
-    await supabase.from('users').insert([
-      { id: data.user.id, username, email }
-    ]);
+
+    userModel.id = data.user.id;
+
+    const { error: dbError } = await createUserInSupabase(userModel);
+    if (dbError) {
+      console.error('Database insert error:', dbError);
+      return res.status(500).json({
+        message: 'Failed to save user in database',
+        success: false,
+      });
+    }
+
     res.status(200).json({
       message: 'Registration successful',
       success: true,
-      user: {
-        id: data.user.id,
-        username,
-        email,
-      },
+      user: userModel.toJSON(),
     });
   } catch (error) {
Index: backend/models/User.js
===================================================================
--- backend/models/User.js	(revision 06a79c8eacdedd9c14cb682fde382d6cb45ced7d)
+++ backend/models/User.js	(revision 06a79c8eacdedd9c14cb682fde382d6cb45ced7d)
@@ -0,0 +1,32 @@
+class User {
+  constructor(data = {}) {
+    this.id = data.id || null;
+    this.username = data.username || '';
+    this.name = data.name;
+    this.isModerator = false;
+    this.email = data.email || '';
+  }
+
+  validate() {
+    const errors = {};
+
+    if (!this.username) errors.username = 'Username is required';
+    if (!this.email) errors.email = 'Email is required';
+    if (this.email && !this.email.endsWith('@students.finki.ukim.mk')) {
+      errors.email = 'Email must be a valid FINKI student email';
+    }
+
+    return Object.keys(errors).length > 0 ? errors : null;
+  }
+
+  toJSON() {
+    return {
+      id: this.id,
+      username: this.username,
+      email: this.email,
+      createdAt: this.createdAt,
+    };
+  }
+}
+
+module.exports = User;
Index: backend/node_modules/.package-lock.json
===================================================================
--- backend/node_modules/.package-lock.json	(revision 3faaf6b495d1dcaaabbcdc28b9384ba465de6acc)
+++ backend/node_modules/.package-lock.json	(revision 06a79c8eacdedd9c14cb682fde382d6cb45ced7d)
@@ -519,19 +519,4 @@
       }
     },
-    "node_modules/fsevents": {
-      "version": "2.3.3",
-      "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
-      "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
-      "dev": true,
-      "hasInstallScript": true,
-      "license": "MIT",
-      "optional": true,
-      "os": [
-        "darwin"
-      ],
-      "engines": {
-        "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
-      }
-    },
     "node_modules/function-bind": {
       "version": "1.1.2",
Index: client/src/Register/Register.jsx
===================================================================
--- client/src/Register/Register.jsx	(revision 3faaf6b495d1dcaaabbcdc28b9384ba465de6acc)
+++ client/src/Register/Register.jsx	(revision 06a79c8eacdedd9c14cb682fde382d6cb45ced7d)
@@ -1,17 +1,18 @@
-import React from "react";
-import { Link, useNavigate } from "react-router-dom";
-import { useState } from "react";
+import React from 'react';
+import { Link, useNavigate } from 'react-router-dom';
+import { useState } from 'react';
 
 const Register = () => {
-  const [error, setError] = React.useState("");
+  const [error, setError] = React.useState('');
   const nav = useNavigate();
   const [formData, setFormData] = useState({
-    username: "",
-    email: "",
-    password: "",
-    confirmPassword: "",
+    username: '',
+    email: '',
+    password: '',
+    confirmPassword: '',
+    name: '',
   });
   function validateEmail(email) {
-    return email.endsWith("@students.finki.ukim.mk");
+    return email.endsWith('@students.finki.ukim.mk');
   }
   const handleInputChange = (e) => {
@@ -26,38 +27,38 @@
 
     if (!validateEmail(formData.email)) {
-      setError("Email must end with @students.finki.ukim.mk");
+      setError('Email must end with @students.finki.ukim.mk');
     }
-    if (formData.username === "") {
-      setError("Must enter username");
+    if (formData.username === '') {
+      setError('Must enter username');
     }
-    if (formData.password === "") {
-      setError("Password is required");
+    if (formData.password === '') {
+      setError('Password is required');
       return;
     }
-    if (formData.confirmPassword === "") {
-      setError("Please confirm your password");
+    if (formData.confirmPassword === '') {
+      setError('Please confirm your password');
       return;
     }
     if (formData.password !== formData.confirmPassword) {
-      setError("Passwords do not match");
+      setError('Passwords do not match');
       return;
     }
     if (formData.password.length < 8) {
-      setError("Password must be at least 8 characters long");
+      setError('Password must be at least 8 characters long');
       return;
     }
     if (!/[A-Z]/.test(formData.password)) {
-      setError("Password must contain at least one uppercase letter");
+      setError('Password must contain at least one uppercase letter');
       return;
     }
     if (!/[0-9]/.test(formData.password)) {
-      setError("Password must contain at least one number");
+      setError('Password must contain at least one number');
       return;
     }
     try {
-      const response = await fetch("/api/register", {
-        method: "POST",
+      const response = await fetch('/api/register', {
+        method: 'POST',
         headers: {
-          "Content-Type": "application/json",
+          'Content-Type': 'application/json',
         },
         body: JSON.stringify({
@@ -65,4 +66,5 @@
           email: formData.email,
           password: formData.password,
+          name: formData.name,
         }),
       });
@@ -70,8 +72,8 @@
       const data = await response.json();
       if (data.success) {
-        nav("/dashboard");
+        nav('/dashboard');
       }
     } catch (error) {
-      console.error("Registration error:", error);
+      console.error('Registration error:', error);
       throw error;
     }
@@ -88,4 +90,19 @@
         className="fieldset bg-base-200 border-base-300 rounded-box w-96 border p-8 space-y-6"
       >
+        <div>
+          <label className="label text-lg" htmlFor="name">
+            Name
+          </label>
+          <input
+            id="name"
+            name="name"
+            type="text"
+            value={formData.name}
+            onChange={handleInputChange}
+            className="input input-lg w-full"
+            placeholder="John Doe"
+          />
+        </div>
+
         <div>
           <label className="label text-lg" htmlFor="username">
