diff --git a/src/repositories/passwordResetTokenRepository.ts b/src/repositories/passwordResetTokenRepository.ts
new file mode 100644
index 0000000..ccf2b64
--- /dev/null
+++ b/src/repositories/passwordResetTokenRepository.ts
@@ -0,0 +1,31 @@
+import prisma from '../utilities/prisma' // Import the global Prisma instance
+
+class PasswordResetTokenRepository {
+  async getById(id: number): Promise<any> {
+    try {
+      return await prisma.passwordResetToken.findUnique({
+        where: {
+          id
+        }
+      })
+    } catch (error: any) {
+      // Handle error
+      throw new Error(`Failed to get password reset token by ID: ${error.message}`)
+    }
+  }
+
+  async getByUserId(userId: number): Promise<any> {
+    try {
+      return await prisma.passwordResetToken.findFirst({
+        where: {
+          userId
+        }
+      })
+    } catch (error: any) {
+      // Handle error
+      throw new Error(`Failed to get password reset token by user ID: ${error.message}`)
+    }
+  }
+}
+
+export default new PasswordResetTokenRepository()
diff --git a/src/services/userService.ts b/src/services/userService.ts
index bca4298..f3a4927 100644
--- a/src/services/userService.ts
+++ b/src/services/userService.ts
@@ -1,5 +1,6 @@
 import bcrypt from 'bcryptjs'
 import UserRepository from '../repositories/userRepository'
+import PasswordResetTokenRepository from '../repositories/passwordResetTokenRepository'
 import prisma from '../utilities/prisma'
 import { User, PasswordResetToken } from '@prisma/client'
 import config from '../utilities/config'
@@ -61,12 +62,13 @@ class UserService {
    * Reset password
    * @param email
    */
-  async resetPassword(email: string): Promise<boolean | undefined> {
+  async resetPassword(email: string): Promise<boolean> {
 
     const user = await UserRepository.getByEmail(email)
-    if ( !user ) return
-    const token = await bcrypt.genSalt(10)
-    const latestToken = await prisma.passwordResetToken.findFirst({ where: { userId: user.id } })
+    if ( !user ) return false
+
+    const token = await bcrypt.hash(new Date().getTime().toString(), 10)
+    const latestToken = await PasswordResetTokenRepository.getByUserId(user.id)
 
     //Check if password reset has been requested recently
     if (latestToken) {
@@ -74,7 +76,7 @@ class UserService {
       const tokenExpiryDate = new Date(Date.now() - 24 * 60 * 60 * 1000);
       const isTokenExpired = latestToken.createdAt < tokenExpiryDate
 
-      if (!isTokenExpired) return
+      if (!isTokenExpired) return false
     }
 
     prisma.passwordResetToken.create({
@@ -84,31 +86,31 @@ class UserService {
       }
     });
 
-    return
+    const transporter = NodeMailer.createTransport({
+      host: config.SMTP_HOST,
+      port: config.SMTP_PORT,
+      secure: false,
+      auth: {
+        user: config.SMTP_USER,
+        pass: config.SMTP_PASSWORD,
+      },
+    });
 
-    // const transporter = NodeMailer.createTransport({
-    //   host: config.SMTP_HOST,
-    //   port: config.SMTP_PORT,
-    //   secure: false,
-    //   auth: {
-    //     user: config.SMTP_USER,
-    //     pass: config.SMTP_PASSWORD,
-    //   },
-    // });
-    //
-    // const info = await transporter.sendMail({
-    //   from: config.SMTP_USER,
-    //   to: email,
-    //   subject: "Reset your password",
-    //   text: "A password reset has been requested, reset your password here: " + config.CLIENT_URL + "/" + token, // Plain text body
-    //   html: "<p>A password reset has been requested, reset your password here: " + config.CLIENT_URL + "/" + token + "</p>", // Html body
-    // });
-    // console.log("Message sent: %s", info.messageId);
+    try {
+      await transporter.sendMail({
+        from: config.SMTP_USER,
+        to: email,
+        subject: "Reset your password",
+        text: "A password reset has been requested, reset your password here: " + config.CLIENT_URL + "/#" + token, // Plain text body
+        html: "<p>A password reset has been requested, reset your password here: <a href='" + config.CLIENT_URL + "/#" + token + "'>" + config.CLIENT_URL + "/#token=" + token + "</a></p>", // Html body
+      });
 
+      return true
+    } catch (error: any) {
+      return false
+    }
+  }
 
-    // if (info) {
-    //   return true
-    // }
   }
 }
 
diff --git a/src/utilities/http.ts b/src/utilities/http.ts
index 4e103df..912f652 100644
--- a/src/utilities/http.ts
+++ b/src/utilities/http.ts
@@ -62,7 +62,7 @@ async function addHttpRoutes(app: Application) {
   })
 
   /**
-   * Register
+   * Reset password
    * @param req
    * @param res
    */