Index: backend/controllers/apiController.js
===================================================================
--- backend/controllers/apiController.js	(revision a15318ce37884d12c5e962ed96d7d8178c0547d4)
+++ backend/controllers/apiController.js	(revision a15318ce37884d12c5e962ed96d7d8178c0547d4)
@@ -0,0 +1,18 @@
+const registerPOST = (req, res) => {
+  console.log('Register request received:');
+  console.log('Username:', req.body.username);
+  console.log('Email:', req.body.email);
+  console.log('Password:', req.body.password);
+
+  res.status(200).json({
+    message: 'Registration successful',
+    success: true,
+    user: {
+      username: req.body.username,
+      email: req.body.email,
+    },
+  });
+};
+module.exports = {
+  registerPOST,
+};
Index: backend/routers/apiRouter.js
===================================================================
--- backend/routers/apiRouter.js	(revision a15318ce37884d12c5e962ed96d7d8178c0547d4)
+++ backend/routers/apiRouter.js	(revision a15318ce37884d12c5e962ed96d7d8178c0547d4)
@@ -0,0 +1,8 @@
+const { Router } = require('express');
+const router = Router();
+const path = require('path');
+const apiController = require('../controllers/apiController');
+
+router.post('/register', apiController.registerPOST);
+
+module.exports = router;
Index: backend/server.js
===================================================================
--- backend/server.js	(revision b006471d9f73788fb4d2a0c3de63148f3bcffc92)
+++ backend/server.js	(revision a15318ce37884d12c5e962ed96d7d8178c0547d4)
@@ -3,4 +3,7 @@
 const indexRouter = require('./routers/indexRouter');
 const path = require('path');
+
+app.use(express.json());
+app.use(express.urlencoded({ extended: true }));
 app.use(express.static(path.join(__dirname, '../client/dist')));
 app.use(
@@ -8,4 +11,5 @@
   express.static(path.join(__dirname, '../client/dist/assets'))
 );
+app.use('/api', require('./routers/apiRouter'));
 app.get('/', indexRouter);
 app.use((req, res, next) => {
@@ -15,10 +19,10 @@
       (err) => {
         if (err) {
-          next(err); // Pass errors to default handler
+          next(err);
         }
       }
     );
   } else {
-    next(); // Continue if not a GET request for HTML
+    next();
   }
 });
Index: client/src/Register/Register.jsx
===================================================================
--- client/src/Register/Register.jsx	(revision b006471d9f73788fb4d2a0c3de63148f3bcffc92)
+++ client/src/Register/Register.jsx	(revision a15318ce37884d12c5e962ed96d7d8178c0547d4)
@@ -1,6 +1,54 @@
-import React from "react";
-import { Link } from "react-router-dom";
+import React from 'react';
+import { Link, useNavigate } from 'react-router-dom';
+import { useState } from 'react';
 
 const Register = () => {
+  const [error, setError] = React.useState('');
+  const nav = useNavigate();
+  const [formData, setFormData] = useState({
+    username: '',
+    email: '',
+    password: '',
+    confirmPassword: '',
+  });
+  function validateEmail(email) {
+    return email.endsWith('@students.finki.ukim.mk');
+  }
+  const handleInputChange = (e) => {
+    const { name, value } = e.target;
+    setFormData({
+      ...formData,
+      [name]: value,
+    });
+  };
+  const handleSubmit = async (e) => {
+    e.preventDefault();
+
+    if (!validateEmail(formData.email)) {
+      setError('Email must end with @students.finki.ukim.mk');
+    }
+    try {
+      const response = await fetch('/api/register', {
+        method: 'POST',
+        headers: {
+          'Content-Type': 'application/json',
+        },
+        body: JSON.stringify({
+          username: formData.username,
+          email: formData.email,
+          password: formData.password,
+        }),
+      });
+
+      const data = await response.json();
+      if (data.success) {
+        nav('/dashboard');
+      }
+    } catch (error) {
+      console.error('Registration error:', error);
+      throw error;
+    }
+  };
+
   return (
     <div
@@ -9,5 +57,8 @@
     >
       <h1 className="text-4xl font-bold mb-6">Create an account</h1>
-      <fieldset className="fieldset bg-base-200 border-base-300 rounded-box w-96 border p-8 space-y-6">
+      <form
+        onSubmit={handleSubmit}
+        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="username">
@@ -16,5 +67,8 @@
           <input
             id="username"
+            name="username"
             type="text"
+            value={formData.username}
+            onChange={handleInputChange}
             className="input input-lg w-full"
             placeholder="User123"
@@ -29,10 +83,17 @@
             id="email"
             type="email"
+            name="email"
+            value={formData.email}
+            onChange={handleInputChange}
             className="input input-lg w-full"
             placeholder="user123@students.finki.ukim.mk"
           />
-          <p className="text-sm mt-1">
-            *Must register with your students address
-          </p>
+          {error ? (
+            <p className="text-red-500 text-sm mt-1">{error}</p>
+          ) : (
+            <p className="text-sm mt-1">
+              *Must register with your students address
+            </p>
+          )}
         </div>
 
@@ -43,5 +104,8 @@
           <input
             id="password"
+            name="password"
             type="password"
+            value={formData.password}
+            onChange={handleInputChange}
             className="input input-lg w-full"
             placeholder="Password"
@@ -56,12 +120,18 @@
             id="confirmPassword"
             type="password"
+            name="confirmPassword"
+            value={formData.confirmPassword}
+            onChange={handleInputChange}
             className="input input-lg w-full"
             placeholder="Confirm Password"
           />
         </div>
-        <button className="btn bg-black btn-xs sm:btn-sm md:btn-md lg:btn-lg xl:btn-xl">
+        <button
+          type="submit"
+          className="btn bg-black btn-xs sm:btn-sm md:btn-md lg:btn-lg xl:btn-xl"
+        >
           Register
         </button>
-      </fieldset>
+      </form>
 
       <Link to="/login" className="underline mt-1.5">
