diff --git a/backend-services/user-service/controllers/appController.js b/backend-services/user-service/controllers/appController.js
index 735587686d87210627bd0ead44b542f937285a75..40e1ca87f5a69d7a72013d01ffa98ec8dc52ab45 100644
--- a/backend-services/user-service/controllers/appController.js
+++ b/backend-services/user-service/controllers/appController.js
@@ -70,7 +70,17 @@ export async function register(req,res){
 
                           // return save result as a response
                           user.save()
-                              .then(result => res.status(201).send({ msg: "User Registered Successfully"}))
+                              .then(async (result) => {
+                                const user = await UserModel.findOne({username: username})
+                                
+                                // create jwt token
+                                const token = jwt.sign({
+                                  userId: user._id,
+                                  username : user.username
+                              }, ENV.JWT_SECRET , { expiresIn : "24h"});
+
+                                res.status(201).send({ msg: "User Registered Successfully", username: user.username, token })
+                              })
                               .catch(error => res.status(500).send({error}))
 
                       }).catch(error => {
@@ -195,3 +205,49 @@ export async function updateUser(req,res){
     }
 }
 
+/**
+ * POST /userlist
+ * This DOES NOT return emails and passwords
+ * @param {*} req 
+ * @param {*} res 
+ * @returns 
+ * 
+ * body: {userIdList: []}
+ */
+export const GetUserList = async (req,res) => {
+  try {
+    const {userIdList} = req.body;
+    const users = await UserModel.find({ '_id': { $in: userIdList } }, {password: 0, email: 0});
+    return res.status(201).send({ userList: users});
+  } catch(error){
+    return res.status(401).send({ error });
+  }
+}
+
+/**
+ * GET /search
+ * This endpoint OMITS the password and email fields
+ * @param {*} req 
+ * @param {*} res 
+ * @returns 
+ * 
+ * query: {query: string}
+ */
+ export const Search = async (req,res) => {
+  try {
+    const {searchQuery} = req.query;
+
+    console.log(searchQuery)
+
+    if(searchQuery === undefined || searchQuery.length === 0){
+      throw new Error("Please provide a valid query!")
+    }
+
+    const usersWithMatchingUsername = await UserModel.find({"username": {"$regex": `^${searchQuery}`}}, {password: 0, email: 0})
+    const usersWithMatchingName = await UserModel.find({$or: [{"firstName": {"$regex": `^${searchQuery}`,"$options": 'i'}}, {"lastName": {"$regex": `^${searchQuery}`,"$options": 'i'}}]}, {password: 0, email: 0})
+    return res.status(201).send({ usersByUsername: usersWithMatchingUsername, usersByName: usersWithMatchingName});
+  } catch(error){
+    return res.status(401).send({ error: error.message });
+  }
+}
+
diff --git a/backend-services/user-service/router/route.js b/backend-services/user-service/router/route.js
index aecf0eae40f561bcbfd2c9a5deb8797c2511c881..fc224040c2ed55e216cd7465d5b0afde63403f78 100644
--- a/backend-services/user-service/router/route.js
+++ b/backend-services/user-service/router/route.js
@@ -8,9 +8,11 @@ const router = Router();
 /** POST Methods */
 router.route('/register').post(controller.register); // Register
 router.route('/login').post(controller.verifyUser, controller.login); // Login
+router.route('/userlist').post(controller.GetUserList) // Get user list
 
 /** GET Methods */
 router.route('/user/:username').get(controller.getUser); // GetUser
+router.route("/search").get(controller.Search) // Search
 
 
 /** PUT Methods */
diff --git a/daily-thought-frontend/src/pages/register.tsx b/daily-thought-frontend/src/pages/register.tsx
index f9e4f6bc66e1973a48db0d17f71955bf105eff36..079f32e568e80f077eea82e968b64652c47eef87 100644
--- a/daily-thought-frontend/src/pages/register.tsx
+++ b/daily-thought-frontend/src/pages/register.tsx
@@ -29,12 +29,14 @@ const Register = () => {
     const response = await fetch(endpoint, options)
     const result = await response.json()
 
-    console.log(result.error)
-
     if(result.error !== undefined){
       setError(result.error.error)
-    } else {  
-      Router.push("/feed")
+    } else {
+      if(result.token !== undefined && result.username !== undefined){
+        sessionStorage.setItem('username', result.username)
+        sessionStorage.setItem('token', result.token) 
+        Router.push("/feed")
+      } 
     }
   }