Index: backend/challenges/initialChallenges.json
===================================================================
--- backend/challenges/initialChallenges.json	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ backend/challenges/initialChallenges.json	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -704,13 +704,13 @@
     "examples": [
       {
-        "input": "Start:A End:D\nA:B,C\nB:A,D\nC:A,D\nD:B,C\n",
+        "input": "Start: A End: D\nA: B, C\nB: A, D\nC: A, D\nD: B, C\n",
         "output": "A B D"
       },
       {
-        "input": "Start:X End:Z\nX:Y\nY:X,Z\nZ:Y\n",
+        "input": "Start: X End: Z\nX: Y\nY: X, Z\nZ: Y\n",
         "output": "X Y Z"
       },
       {
-        "input": "Start:Hallway End:Control\nHallway:Engine\nEngine:Hallway\nControl:\n",
+        "input": "Start: Hallway End: Control\nHallway: Engine\nEngine: Hallway\nControl:\n",
         "output": "NO PATH"
       }
@@ -718,41 +718,41 @@
     "testcases": [
       {
-        "input": "Start: E10 End: E40\nE1: E2\nE2 :E1, E3\nE3:E2,E4\nE4:E3,E5\nE5: E4, E6\nE6: E5, E7\nE7: E6, E8\nE8: E7, E9\nE9: E8, E10\nE10: E9, E11\nE11: E10,E12\nE12: E11, E13\nE13: E12, E14\nE14: E13, E15\nE15: E14, E16\nE16:E15,E17\nE17:E16,E18\nE18: E17, E19\nE19: E18, E20\nE20: E19, E21\nE21: E20, E22\nE22:E21,E23\nE23:E22,E24\nE24:E23,E25\nE25:E24,E26\nE26:E25,E27\nE27:E26,E28\nE28:E27,E29\nE29:E28,E30\nE30:E29,E31\nE31:E30,E32\nE32:E31,E33\nE33:E32,E34\nE34:E33,E35\nE35:E34,E36\nE36:E35,E37\nE37:E36,E38\nE38:E37,E39\nE39:E38,E40\nE40:E39,E41\nE41:E40,E42\nE42:E41,E43\nE43:E42,E44\nE44:E43,E45\nE45:E44,E46\nE46:E45,E47\nE47:E46,E48\nE48:E47,E49\nE49:E48,E50\nE50:E49\n",
+        "input": "Start: E10 End: E40\nE1: E2\nE2: E1, E3\nE3: E2, E4\nE4: E3, E5\nE5: E4, E6\nE6: E5, E7\nE7: E6, E8\nE8: E7, E9\nE9: E8, E10\nE10: E9, E11\nE11: E10, E12\nE12: E11, E13\nE13: E12, E14\nE14: E13, E15\nE15: E14, E16\nE16: E15, E17\nE17: E16, E18\nE18: E17, E19\nE19: E18, E20\nE20: E19, E21\nE21: E20, E22\nE22: E21, E23\nE23: E22, E24\nE24: E23, E25\nE25: E24, E26\nE26: E25, E27\nE27: E26, E28\nE28: E27, E29\nE29: E28, E30\nE30: E29, E31\nE31: E30, E32\nE32: E31, E33\nE33: E32, E34\nE34: E33, E35\nE35: E34, E36\nE36: E35, E37\nE37: E36, E38\nE38: E37, E39\nE39: E38, E40\nE40: E39, E41\nE41: E40, E42\nE42: E41, E43\nE43: E42, E44\nE44: E43, E45\nE45: E44, E46\nE46: E45, E47\nE47: E46, E48\nE48: E47, E49\nE49: E48, E50\nE50: E49\n",
         "output": "E10 E11 E12 E13 E14 E15 E16 E17 E18 E19 E20 E21 E22 E23 E24 E25 E26 E27 E28 E29 E30 E31 E32 E33 E34 E35 E36 E37 E38 E39 E40"
       },
       {
-        "input": "Start:A5 End:A45\nA1:A2\nA2:A1,A3\nA3:A2,A4\nA4:A3,A5\nA5:A4,A6\nA6:A5,A7\nA7:A6,A8\nA8:A7,A9\nA9:A8,A10\nA10:A9,A11\nA11:A10,A12\nA12:A11,A13\nA13:A12,A14\nA14:A13,A15\nA15:A14,A16\nA16:A15,A17\nA17:A16,A18\nA18:A17,A19\nA19:A18,A20\nA20:A19,A21\nA21:A20,A22\nA22:A21,A23\nA23:A22,A24\nA24:A23,A25\nA25:A24,A26\nA26:A25,A27\nA27:A26,A28\nA28:A27,A29\nA29:A28,A30\nA30:A29,A31\nA31:A30,A32\nA32:A31,A33\nA33:A32,A34\nA34:A33,A35\nA35:A34,A36\nA36:A35,A37\nA37:A36,A38\nA38:A37,A39\nA39:A38,A40\nA40:A39,A41\nA41:A40,A42\nA42:A41,A43\nA43:A42,A44\nA44:A43,A45\nA45:A44,A46\nA46:A45,A47\nA47:A46,A48\nA48:A47,A49\nA49:A48,A50\nA50:A49\n",
+        "input": "Start: A5 End: A45\nA1: A2\nA2: A1, A3\nA3: A2, A4\nA4: A3, A5\nA5: A4, A6\nA6: A5, A7\nA7: A6, A8\nA8: A7, A9\nA9: A8, A10\nA10: A9, A11\nA11: A10, A12\nA12: A11, A13\nA13: A12, A14\nA14: A13, A15\nA15: A14, A16\nA16: A15, A17\nA17: A16, A18\nA18: A17, A19\nA19: A18, A20\nA20: A19, A21\nA21: A20, A22\nA22: A21, A23\nA23: A22, A24\nA24: A23, A25\nA25: A24, A26\nA26: A25, A27\nA27: A26, A28\nA28: A27, A29\nA29: A28, A30\nA30: A29, A31\nA31: A30, A32\nA32: A31, A33\nA33: A32, A34\nA34: A33, A35\nA35: A34, A36\nA36: A35, A37\nA37: A36, A38\nA38: A37, A39\nA39: A38, A40\nA40: A39, A41\nA41: A40, A42\nA42: A41, A43\nA43: A42, A44\nA44: A43, A45\nA45: A44, A46\nA46: A45, A47\nA47: A46, A48\nA48: A47, A49\nA49: A48, A50\nA50: A49\n",
         "output": "A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27 A28 A29 A30 A31 A32 A33 A34 A35 A36 A37 A38 A39 A40 A41 A42 A43 A44 A45"
       },
       {
-        "input": "Start: N15 End:N35\nN1:N2\nN2:N1,N3\nN3:N2,N4\nN4:N3,N5\nN5:N4,N6\nN6:N5,N7\nN7:N6,N8\nN8:N7,N9\nN9:N8,N10\nN10:N9,N11\nN11:N10,N12\nN12:N11,N13\nN13:N12,N14\nN14:N13,N15\nN15:N14,N16\nN16:N15,N17\nN17:N16,N18\nN18:N17,N19\nN19:N18,N20\nN20:N19,N21\nN21:N20,N22\nN22:N21,N23\nN23:N22,N24\nN24:N23,N25\nN25:N24,N26\nN26:N25,N27\nN27:N26,N28\nN28:N27,N29\nN29:N28,N30\nN30:N29,N31\nN31:N30,N32\nN32:N31,N33\nN33:N32,N34\nN34:N33,N35\nN35:N34,N36\nN36:N35,N37\nN37:N36,N38\nN38:N37,N39\nN39:N38,N40\nN40:N39,N41\nN41:N40,N42\nN42:N41,N43\nN43:N42,N44\nN44:N43,N45\nN45:N44,N46\nN46:N45,N47\nN47:N46,N48\nN48:N47,N49\nN49:N48,N50\nN50:N49\n",
-        "output": "N15 N16 N17 N18 N1920 N21 N22 N23 N24 N25 N26 N27 N28 N29 N30 N31 N32 N33 N34 N35"
-      },
-      {
-        "input": "Start:X10 End:X30\nX1:X2\nX2:X1,X3,X4\nX3:X2\nX4:X2,X5\nX5:X4,X6\nX6:X5,X7\nX7:X6,X8\nX8:X7,X9\nX9:X8,X10\nX10:X9,X11\nX11:X10,X12\nX12:X11,X13\nX13:X12,X14\nX14:X13,X15\nX15:X14,X16\nX16:X15,X17\nX17:X16,X18\nX18:X17,X19\nX19:X18,X20\nX20:X19,X21\nX21:X20,X22\nX22:X21,X23\nX23:X22,X24\nX24:X23,X25\nX25:X24,X26\nX26:X25,X27\nX27:X26,X28\nX28:X27,X29\nX29:X28,X30\nX30:X29,X31\nX31:X30,X32\nX32:X31,X33\nX33:X32,X34\nX34:X33,X35\nX35:X34,X36\nX36:X35,X37\nX37:X36,X38\nX38:X37,X39\nX39:X38,X40\nX40:X39,X41\nX41:X40,X42\nX42:X41,X43\nX43:X42,X44\nX44:X43,X45\nX45:X44,X46\nX46:X45,X47\nX47:X46,X48\nX48:X47,X49\nX49:X48,X50\nX50:X49\n",
+        "input": "Start: N15 End: N35\nN1: N2\nN2: N1, N3\nN3: N2, N4\nN4: N3, N5\nN5: N4, N6\nN6: N5, N7\nN7: N6, N8\nN8: N7, N9\nN9: N8, N10\nN10: N9, N11\nN11: N10, N12\nN12: N11, N13\nN13: N12, N14\nN14: N13, N15\nN15: N14, N16\nN16: N15, N17\nN17: N16, N18\nN18: N17, N19\nN19: N18, N20\nN20: N19, N21\nN21: N20, N22\nN22: N21, N23\nN23: N22, N24\nN24: N23, N25\nN25: N24, N26\nN26: N25, N27\nN27: N26, N28\nN28: N27, N29\nN29: N28, N30\nN30: N29, N31\nN31: N30, N32\nN32: N31, N33\nN33: N32, N34\nN34: N33, N35\nN35: N34, N36\nN36: N35, N37\nN37: N36, N38\nN38: N37, N39\nN39: N38, N40\nN40: N39, N41\nN41: N40, N42\nN42: N41, N43\nN43: N42, N44\nN44: N43, N45\nN45: N44, N46\nN46: N45, N47\nN47: N46, N48\nN48: N47, N49\nN49: N48, N50\nN50: N49\n",
+        "output": "N15 N16 N17 N18 N19 N20 N21 N22 N23 N24 N25 N26 N27 N28 N29 N30 N31 N32 N33 N34 N35"
+      },
+      {
+        "input": "Start: X10 End: X30\nX1: X2\nX2: X1, X3, X4\nX3: X2\nX4: X2, X5\nX5: X4, X6\nX6: X5, X7\nX7: X6, X8\nX8: X7, X9\nX9: X8, X10\nX10: X9, X11\nX11: X10, X12\nX12: X11, X13\nX13: X12, X14\nX14: X13, X15\nX15: X14, X16\nX16: X15, X17\nX17: X16, X18\nX18: X17, X19\nX19: X18, X20\nX20: X19, X21\nX21: X20, X22\nX22: X21, X23\nX23: X22, X24\nX24: X23, X25\nX25: X24, X26\nX26: X25, X27\nX27: X26, X28\nX28: X27, X29\nX29: X28, X30\nX30: X29, X31\nX31: X30, X32\nX32: X31, X33\nX33: X32, X34\nX34: X33, X35\nX35: X34, X36\nX36: X35, X37\nX37: X36, X38\nX38: X37, X39\nX39: X38, X40\nX40: X39, X41\nX41: X40, X42\nX42: X41, X43\nX43: X42, X44\nX44: X43, X45\nX45: X44, X46\nX46: X45, X47\nX47: X46, X48\nX48: X47, X49\nX49: X48, X50\nX50: X49\n",
         "output": "X10 X11 X12 X13 X14 X15 X16 X17 X18 X19 X20 X21 X22 X23 X24 X25 X26 X27 X28 X29 X30"
       },
       {
-        "input": "Start:R20 End:R40\nR1:R2\nR2:R1,R3\nR3:R2,R4\nR4:R3,R5\nR5:R4,R6\nR6:R5,R7\nR7:R6,R8\nR8:R7,R9\nR9:R8,R10\nR10:R9,R11\nR11:R10,R12\nR12:R11,R13\nR13:R12,R14\nR14:R13,R15\nR15:R14,R16\nR16:R15,R17\nR17:R16,R18\nR18:R17,R19\nR19:R18,R20\nR20:R19,R21\nR21:R20,R22\nR22:R21,R23\nR23:R22,R24\nR24:R23,R25\nR25:R24,R26\nR26:R25,R27\nR27:R26,R28\nR28:R27,R29\nR29:R28,R30\nR30:R29,R31\nR31:R30,R32\nR32:R31,R33\nR33:R32,R34\nR34:R33,R35\nR35:R34,R36\nR36:R35,R37\nR37:R36,R38\nR38:R37,R39\nR39:R38,R40\nR40:R39,R41\nR41:40,R42\nR42:R41,R43\nR43:R42,R44\nR44:R43,R45\nR45:R44,R46\nR46:R45,R47\nR47:R46,R48\nR48:R47,R49\nR49:R48,R50\nR50:R49\n",
+        "input": "Start: R20 End: R40\nR1: R2\nR2: R1, R3\nR3: R2, R4\nR4: R3, R5\nR5: R4, R6\nR6: R5, R7\nR7: R6, R8\nR8: R7, R9\nR9: R8, R10\nR10: R9, R11\nR11: R10, R12\nR12: R11, R13\nR13: R12, R14\nR14: R13, R15\nR15: R14, R16\nR16: R15, R17\nR17: R16, R18\nR18: R17, R19\nR19: R18, R20\nR20: R19, R21\nR21: R20, R22\nR22: R21, R23\nR23: R22, R24\nR24: R23, R25\nR25: R24, R26\nR26: R25, R27\nR27: R26, R28\nR28: R27, R29\nR29: R28, R30\nR30: R29, R31\nR31: R30, R32\nR32: R31, R33\nR33: R32, R34\nR34: R33, R35\nR35: R34, R36\nR36: R35, R37\nR37: R36, R38\nR38: R37, R39\nR39: R38, R40\nR40: R39, R41\nR41: R40, R42\nR42: R41, R43\nR43: R42, R44\nR44: R43, R45\nR45: R44, R46\nR46: R45, R47\nR47: R46, R48\nR48: R47, R49\nR49: R48, R50\nR50: R49\n",
         "output": "R20 R21 R22 R23 R24 R25 R26 R27 R28 R29 R30 R31 R32 R33 R34 R35 R36 R37 R38 R39 R40"
       },
       {
-        "input": "Start:C5 End:C45\nC1:C2\nC2:C1,C3\nC3:C2,C4\nC4:C3,C5\nC5:C4,C6\nC6:C5,C7\nC7:C6,C8\nC8:C7,C9\nC9:C8,C10\nC10:C9,C11\nC11:C10,C12\nC12:C11,C13\nC13:C12,C14\nC14:C13,C15\nC15:C14,C16\nC16:C15,C17\nC17:C16,C18\nC18:C17,C19\nC19:C18,C20\nC20:C19,C21\nC21:C20,C22\nC22:C21,C23\nC23:C22,C24\nC24:C23,C25\nC25:C24,C26\nC26:C25,C27\nC27:C26,C28\nC28:C27,C29\nC29:C28,C30\nC30:C29,C31\nC31:C30,C32\nC32:C31,C33\nC33:C32,C34\nC34:C33,C35\nC35:C34,C36\nC36:C35,C37\nC37:C36,C38\nC38:C37,C39\nC39:C38,C40\nC40:C39,C41\nC41:C40,C42\nC42:C41,C43\nC43:C42,C44\nC44:C43,C45\nC45:C44,C46\nC46:C45,C47\nC47:C46,C48\nC48:C47,C49\nC49:C48,C50\nC50:C49\n",
+        "input": "Start: C5 End: C45\nC1: C2\nC2: C1, C3\nC3: C2, C4\nC4: C3, C5\nC5: C4, C6\nC6: C5, C7\nC7: C6, C8\nC8: C7, C9\nC9: C8, C10\nC10: C9, C11\nC11: C10, C12\nC12: C11, C13\nC13: C12, C14\nC14: C13, C15\nC15: C14, C16\nC16: C15, C17\nC17: C16, C18\nC18: C17, C19\nC19: C18, C20\nC20: C19, C21\nC21: C20, C22\nC22: C21, C23\nC23: C22, C24\nC24: C23, C25\nC25: C24, C26\nC26: C25, C27\nC27: C26, C28\nC28: C27, C29\nC29: C28, C30\nC30: C29, C31\nC31: C30, C32\nC32: C31, C33\nC33: C32, C34\nC34: C33, C35\nC35: C34, C36\nC36: C35, C37\nC37: C36, C38\nC38: C37, C39\nC39: C38, C40\nC40: C39, C41\nC41: C40, C42\nC42: C41, C43\nC43: C42, C44\nC44: C43, C45\nC45: C44, C46\nC46: C45, C47\nC47: C46, C48\nC48: C47, C49\nC49: C48, C50\nC50: C49\n",
         "output": "C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25 C26 C27 C28 C29 C30 C31 C32 C33 C34 C35 C36 C37 C38 C39 C40 C41 C42 C43 C44 C45"
       },
       {
-        "input": "Start:N10 End:N30\nN1:N2,N3,N4\nN2:N1,N5\nN3:N1,N6\nN4:N1,N7\nN5:N2,N8\nN6:N3,N9\nN7:N4,N10\nN8:N5,N11\nN9:N6,N12\nN10:N7,N13\nN11:N8,N14\nN12:N9,N15\nN13:N10,N16\nN14:N11,N17\nN15:N12,N18\nN16:N13,N19\nN17:N14,N20\nN18:N15,N21\nN19:N16,N22\nN20:N17,N23\nN21:N18,N24\nN22:N19,N25\nN23:N20,N26\nN24:N21,N27\nN25:N22,N28\nN26:N23,N29\nN27:N24,N30\nN28:N25,N31\nN29:N26,N32\nN30:N27,N33\nN31:N28,N34\nN32:N29,N35\nN33:N30,N36\nN34:N31,N37\nN35:N32,N38\nN36:N33,N39\nN37:N34,N40\nN38:N35,N41\nN39:N36,N42\nN40:N37,N43\nN41:N38,N44\nN42:N39,N45\nN43:N40,N46\nN44:N41,N47\nN45:N42,N48\nN46:N43,N49\nN47:N44,N50\nN48:N45\nN49:N46\nN50:N47\n",
+        "input": "Start: N10 End: N30\nN1: N2, N3, N4\nN2: N1, N5\nN3: N1, N6\nN4: N1, N7\nN5: N2, N8\nN6: N3, N9\nN7: N4, N10\nN8: N5, N11\nN9: N6, N12\nN10: N7, N13\nN11: N8, N14\nN12: N9, N15\nN13: N10, N16\nN14: N11, N17\nN15: N12, N18\nN16: N13, N19\nN17: N14, N20\nN18: N15, N21\nN19: N16, N22\nN20: N17, N23\nN21: N18, N24\nN22: N19, N25\nN23: N20, N26\nN24: N21, N27\nN25: N22, N28\nN26: N23, N29\nN27: N24, N30\nN28: N25, N31\nN29: N26, N32\nN30: N27, N33\nN31: N28, N34\nN32: N29, N35\nN33: N30, N36\nN34: N31, N37\nN35: N32, N38\nN36: N33, N39\nN37: N34, N40\nN38: N35, N41\nN39: N36, N42\nN40: N37, N43\nN41: N38, N44\nN42: N39, N45\nN43: N40, N46\nN44: N41, N47\nN45: N42, N48\nN46: N43, N49\nN47: N44, N50\nN48: N45\nN49: N46\nN50: N47\n",
         "output": "N10 N13 N16 N19 N22 N25 N28 N30"
       },
       {
-        "input": "Start:P5 End:P25\nP1:P2,P3\nP2:P1,P4\nP3:P1,P5\nP4:P2,P6\nP5:P3,P7\nP6:P4,P8\nP7:P5,P9\nP8:P6,P10\nP9:P7,P11\nP10:P8,P12\nP11:P9,P13\nP12:P10,P14\nP13:P11,P15\nP14:P12,P16\nP15:P13,P17\nP16:P14,P18\nP17:P15,P19\nP18:P16,P20\nP19:P17,P21\nP20:P18,P22\nP21:P19,P23\nP22:P20,P24\nP23:P21,P25\nP24:P22,P26\nP25:P23,P27\nP26:P24,P28\nP27:P25,P29\nP28:P26,P30\nP29:P27,P31\nP30:P28,P32\nP31:P29,P33\nP32:P30,P34\nP33:P31,P35\nP34:P32,P36\nP35:P33,P37\nP36:P34,P38\nP37:P35,P39\nP38:P36,P40\nP39:P37,P41\nP40:P38,P42\nP41:P39,P43\nP42:P40,P44\nP43:P41,P45\nP44:P42,P46\nP45:P43,P47\nP46:P44,P48\nP47:P45,P49\nP48:P46,P50\nP49:P47\nP50:P48\n",
+        "input": "Start: P5 End: P25\nP1: P2, P3\nP2: P1, P4\nP3: P1, P5\nP4: P2, P6\nP5: P3, P7\nP6: P4, P8\nP7: P5, P9\nP8: P6, P10\nP9: P7, P11\nP10: P8, P12\nP11: P9, P13\nP12: P10, P14\nP13: P11, P15\nP14: P12, P16\nP15: P13, P17\nP16: P14, P18\nP17: P15, P19\nP18: P16, P20\nP19: P17, P21\nP20: P18, P22\nP21: P19, P23\nP22: P20, P24\nP23: P21, P25\nP24: P22, P26\nP25: P23, P27\nP26: P24, P28\nP27: P25, P29\nP28: P26, P30\nP29: P27, P31\nP30: P28, P32\nP31: P29, P33\nP32: P30, P34\nP33: P31, P35\nP34: P32, P36\nP35: P33, P37\nP36: P34, P38\nP37: P35, P39\nP38: P36, P40\nP39: P37, P41\nP40: P38, P42\nP41: P39, P43\nP42: P40, P44\nP43: P41, P45\nP44: P42, P46\nP45: P43, P47\nP46: P44, P48\nP47: P45, P49\nP48: P46, P50\nP49: P47\nP50: P48\n",
         "output": "P5 P7 P9 P11 P13 P15 P17 P19 P21 P23 P25"
       },
       {
-        "input": "Start:Z15 End:Z35\nZ1:Z2,Z3\nZ2:Z1,Z4,Z5\nZ3:Z1,Z6\nZ4:Z2,Z7\nZ5:Z2,Z8\nZ6:Z3,Z9\nZ7:Z4,Z10\nZ8:Z5,Z11\nZ9:Z6,Z12\nZ10:Z7,Z13\nZ11:Z8,Z14\nZ12:Z9,Z15\nZ13:Z10,Z16\nZ14:Z11,Z17\nZ15:Z12,Z18\nZ16:Z13,Z19\nZ17:Z14,Z20\nZ18:Z15,Z21\nZ19:Z16,Z22\nZ20:Z17,Z23\nZ21:Z18,Z24\nZ22:Z19,Z25\nZ23:Z20,Z26\nZ24:Z21,Z27\nZ25:Z22,Z28\nZ26:Z23,Z29\nZ27:Z24,Z30\nZ28:Z25,Z31\nZ29:Z26,Z32\nZ30:Z27,Z33\nZ31:Z28,Z34\nZ32:Z29,Z35\nZ33:Z30,Z36\nZ34:Z31,Z37\nZ35:Z32,Z38\nZ36:Z33,Z39\nZ37:Z34,Z40\nZ38:Z35,Z41\nZ39:Z36,Z42\nZ40:Z37,Z43\nZ41:Z38,Z44\nZ42:Z39,Z45\nZ43:Z40,Z46\nZ44:Z41,Z47\nZ45:Z42,Z48\nZ46:Z43,Z49\nZ47:Z44,Z50\nZ48:Z45\nZ49:Z46\nZ50:Z47\n",
+        "input": "Start: Z15 End: Z35\nZ1: Z2, Z3\nZ2: Z1, Z4, Z5\nZ3: Z1, Z6\nZ4: Z2, Z7\nZ5: Z2, Z8\nZ6: Z3, Z9\nZ7: Z4, Z10\nZ8: Z5, Z11\nZ9: Z6, Z12\nZ10: Z7, Z13\nZ11: Z8, Z14\nZ12: Z9, Z15\nZ13: Z10, Z16\nZ14: Z11, Z17\nZ15: Z12, Z18\nZ16: Z13, Z19\nZ17: Z14, Z20\nZ18: Z15, Z21\nZ19: Z16, Z22\nZ20: Z17, Z23\nZ21: Z18, Z24\nZ22: Z19, Z25\nZ23: Z20, Z26\nZ24: Z21, Z27\nZ25: Z22, Z28\nZ26: Z23, Z29\nZ27: Z24, Z30\nZ28: Z25, Z31\nZ29: Z26, Z32\nZ30: Z27, Z33\nZ31: Z28, Z34\nZ32: Z29, Z35\nZ33: Z30, Z36\nZ34: Z31, Z37\nZ35: Z32, Z38\nZ36: Z33, Z39\nZ37: Z34, Z40\nZ38: Z35, Z41\nZ39: Z36, Z42\nZ40: Z37, Z43\nZ41: Z38, Z44\nZ42: Z39, Z45\nZ43: Z40, Z46\nZ44: Z41, Z47\nZ45: Z42, Z48\nZ46: Z43, Z49\nZ47: Z44, Z50\nZ48: Z45\nZ49: Z46\nZ50: Z47\n",
         "output": "Z15 Z18 Z21 Z24 Z27 Z30 Z33 Z35"
       },
       {
-        "input": "Start:M10 End:M40\nM1:M2,M3,M4,M5\nM2:M1,M6\nM3:M1,M7\nM4:M1,M8\nM5:M1,M9\nM6:M2,M10\nM7:M3,M11\nM8:M4,M12\nM9:M5,M13\nM10:M6,M14\nM11:M7,M15\nM12:M8,M16\nM13:M9,M17\nM14:M10,M18\nM15:M11,M19\nM16:M12,M20\nM17:M13,M21\nM18:M14,M22\nM19:M15,M23\nM20:M16,M24\nM21:M17,M25\nM22:M18,M26\nM23:M19,M27\nM24:M20,M28\nM25:M21,M29\nM26:M22,M30\nM27:M23,M31\nM28:M24,M32\nM29:M25,M33\nM30:M26,M34\nM31:M27,M35\nM32:M28,M36\nM33:M29,M37\nM34:M30,M38\nM35:M31,M39\nM36:M32,M40\nM37:M33,M41\nM38:M34,M42\nM39:M35,M43\nM40:M36,M44\nM41:M37,M45\nM42:M38,M46\nM43:M39,M47\nM44:M40,M48\nM45:M41,M49\nM46:M42,M50\nM47:M43\nM48:M44\nM49:M45\nM50:M46\n",
+        "input": "Start: M10 End: M40\nM1: M2, M3, M4, M5\nM2: M1, M6\nM3: M1, M7\nM4: M1, M8\nM5: M1, M9\nM6: M2, M10\nM7: M3, M11\nM8: M4, M12\nM9: M5, M13\nM10: M6, M14\nM11: M7, M15\nM12: M8, M16\nM13: M9, M17\nM14: M10, M18\nM15: M11, M19\nM16: M12, M20\nM17: M13, M21\nM18: M14, M22\nM19: M15, M23\nM20: M16, M24\nM21: M17, M25\nM22: M18, M26\nM23: M19, M27\nM24: M20, M28\nM25: M21, M29\nM26: M22, M30\nM27: M23, M31\nM28: M24, M32\nM29: M25, M33\nM30: M26, M34\nM31: M27, M35\nM32: M28, M36\nM33: M29, M37\nM34: M30, M38\nM35: M31, M39\nM36: M32, M40\nM37: M33, M41\nM38: M34, M42\nM39: M35, M43\nM40: M36, M44\nM41: M37, M45\nM42: M38, M46\nM43: M39, M47\nM44: M40, M48\nM45: M41, M49\nM46: M42, M50\nM47: M43\nM48: M44\nM49: M45\nM50: M46\n",
         "output": "M10 M14 M18 M22 M26 M30 M34 M38 M40"
       }
Index: backend/controllers/reviewController.js
===================================================================
--- backend/controllers/reviewController.js	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ backend/controllers/reviewController.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -6,4 +6,8 @@
 const safeWords = require("../filters/safeWords");
 const verifyModeratorStatus = require("../services/checkModeratorStatus");
+const {
+  sendApprovalEmail,
+  sendDeletionEmail,
+} = require("../services/emailService");
 
 const createReviewPost = async (req, res) => {
@@ -90,4 +94,24 @@
 };
 
+const getPendingPosts = async (req, res) => {
+  try {
+    const userId = req.user.sub;
+    console.log(userId);
+    const pendingPosts = await prisma.to_be_reviewed.findMany({
+      where: {
+        author_id: userId,
+      },
+      orderBy: {
+        created_at: "desc",
+      },
+    });
+    console.log(pendingPosts);
+    res.status(200).json(pendingPosts);
+  } catch (err) {
+    console.error("Error fetching user's pending posts:", err);
+    res.status(500).json({ error: "Failed to fetch pending posts" });
+  }
+};
+
 const deleteReviewPost = async (req, res) => {
   const { id } = req.params;
@@ -101,7 +125,18 @@
   }
   try {
+    const post = await prisma.to_be_reviewed.findUnique({
+      where: { id },
+    });
+    const author = await prisma.users.findUnique({
+      where: { id: post.author_id },
+      select: { email: true },
+    });
     await prisma.to_be_reviewed.delete({
       where: { id },
     });
+
+    if (author && author.email) {
+      sendDeletionEmail(author.email, post.title);
+    }
 
     res.status(204).send();
@@ -136,4 +171,15 @@
       return res.status(404).json({ error: "Post not found" });
     }
+
+    const author = await prisma.users.findUnique({
+      where: { id: postToApprove.author_id },
+      select: { email: true },
+    });
+    if (!author || !author.email) {
+      console.error(
+        `Could not find email for author with ID: ${postToApprove.author_id}`
+      );
+    }
+
     const newForumPost = new ForumPost({
       id: postToApprove.id,
@@ -153,4 +199,7 @@
       where: { id },
     });
+    if (author && author.email) {
+      sendApprovalEmail(author.email, newForumPost.title);
+    }
 
     res.status(200).json({
@@ -169,3 +218,4 @@
   deleteReviewPost,
   approveReviewPost,
-};
+  getPendingPosts,
+};
Index: backend/node_modules/.package-lock.json
===================================================================
--- backend/node_modules/.package-lock.json	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ backend/node_modules/.package-lock.json	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -1574,4 +1574,13 @@
       }
     },
+    "node_modules/nodemailer": {
+      "version": "7.0.5",
+      "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.5.tgz",
+      "integrity": "sha512-nsrh2lO3j4GkLLXoeEksAMgAOqxOv6QumNRVQTJwKH4nuiww6iC2y7GyANs9kRAxCexg3+lTWM3PZ91iLlVjfg==",
+      "license": "MIT-0",
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
     "node_modules/nodemon": {
       "version": "3.1.10",
Index: backend/package-lock.json
===================================================================
--- backend/package-lock.json	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ backend/package-lock.json	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -21,4 +21,5 @@
         "leo-profanity": "^1.7.0",
         "node-schedule": "^2.1.1",
+        "nodemailer": "^7.0.5",
         "openai": "^5.1.1",
         "supabase": "^2.24.3"
@@ -1599,4 +1600,13 @@
       }
     },
+    "node_modules/nodemailer": {
+      "version": "7.0.5",
+      "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-7.0.5.tgz",
+      "integrity": "sha512-nsrh2lO3j4GkLLXoeEksAMgAOqxOv6QumNRVQTJwKH4nuiww6iC2y7GyANs9kRAxCexg3+lTWM3PZ91iLlVjfg==",
+      "license": "MIT-0",
+      "engines": {
+        "node": ">=6.0.0"
+      }
+    },
     "node_modules/nodemon": {
       "version": "3.1.10",
Index: backend/package.json
===================================================================
--- backend/package.json	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ backend/package.json	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -24,4 +24,5 @@
     "leo-profanity": "^1.7.0",
     "node-schedule": "^2.1.1",
+    "nodemailer": "^7.0.5",
     "openai": "^5.1.1",
     "supabase": "^2.24.3"
Index: backend/prisma/schema.prisma
===================================================================
--- backend/prisma/schema.prisma	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ backend/prisma/schema.prisma	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -30,4 +30,6 @@
   comment_count Int?     @default(0) @db.SmallInt
   users         users?   @relation(fields: [author_id], references: [id], onDelete: NoAction, onUpdate: NoAction, map: "to_be_reviewed_author_id_fkey")
+
+  @@index([author_id])
 }
 
Index: backend/routers/reviewRouter.js
===================================================================
--- backend/routers/reviewRouter.js	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ backend/routers/reviewRouter.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -5,4 +5,5 @@
 router.post("/posts/:id/:userId", reviewController.approveReviewPost);
 router.get("/posts", reviewController.getReviewPosts);
+router.get("/pendingPosts", reviewController.getPendingPosts);
 router.post("/posts/approval", reviewController.createReviewPost);
 router.delete("/posts/:id/:userId", reviewController.deleteReviewPost);
Index: backend/scripts/addChallenge.js
===================================================================
--- backend/scripts/addChallenge.js	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ backend/scripts/addChallenge.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -10,8 +10,8 @@
 //   const challengesData = JSON.parse(data);
 
-//   const challenge = challengesData[challengesData.length - 2];
+//   const challenge = challengesData[challengesData.length - 3];
 
 //   let currentDate = new Date();
-//   currentDate.setDate(currentDate.getDate() + 2);
+//   currentDate.setDate(currentDate.getDate());
 //   const newChallenge = new Challenge({
 //     title: challenge.title,
Index: backend/services/emailService.js
===================================================================
--- backend/services/emailService.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
+++ backend/services/emailService.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -0,0 +1,60 @@
+const nodemailer = require("nodemailer");
+
+const transporter = nodemailer.createTransport({
+  host: process.env.EMAIL_HOST,
+  port: parseInt(process.env.EMAIL_PORT, 10),
+  secure: process.env.EMAIL_PORT === "465",
+  auth: {
+    user: process.env.EMAIL_USER,
+    pass: process.env.EMAIL_PASS,
+  },
+});
+
+const sendApprovalEmail = async (userEmail, postTitle) => {
+  const mailOptions = {
+    from: "FinkiRanked",
+    to: userEmail,
+    subject: "Your Forum Post has been Approved!",
+    html: `
+        <h1>Success!</h1>
+        <p>Your forum post, "<strong>${postTitle}</strong>", has been reviewed and approved by a moderator.</p>
+        <p>It is now live on the forum for everyone to see.</p>
+        <p>Thank you for your contribution!</p>
+        <br>
+        <p>The FinkiRanked Team</p>
+    `,
+  };
+
+  try {
+    await transporter.sendMail(mailOptions);
+    console.log(`Approval email sent successfully to ${userEmail}`);
+  } catch (error) {
+    console.error(`Failed to send approval email to ${userEmail}:`, error);
+  }
+};
+
+const sendDeletionEmail = async (userEmail, postTitle) => {
+  const mailOptions = {
+    from: "FinkiRanked",
+    to: userEmail,
+    subject: "Your Forum Post has been discared",
+    html: `
+        <h1>Your Forum Post contains harmfull or innapropriate language</h1>
+        <p>We have reviewed your recent forum post, "<strong>${postTitle}</strong>".</p>
+        <p>Unfortunately, it could not be approved as it was found to be in violation of our community guidelines.</p>
+        <p>We encourage you to review our content policies before submitting a new post in the future.</p>
+        <br>
+        <p>Thank you for your understanding.</p>
+        <p>The FinkiRanked Team</p>
+    `,
+  };
+
+  try {
+    await transporter.sendMail(mailOptions);
+    console.log(`Deletion email sent successfully to ${userEmail}`);
+  } catch (error) {
+    console.error(`Failed to send approval email to ${userEmail}:`, error);
+  }
+};
+
+module.exports = { sendApprovalEmail, sendDeletionEmail };
Index: client/src/Dashboard/components/Profile.jsx
===================================================================
--- client/src/Dashboard/components/Profile.jsx	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ client/src/Dashboard/components/Profile.jsx	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -1,4 +1,3 @@
-// Example for Profile.jsx
-import React from "react";
+import React, { use, useState } from "react";
 import pp from "../../assets/images/pp.svg";
 import Navbar from "./Navbar";
@@ -7,6 +6,10 @@
 import { useNavigate } from "react-router-dom";
 import { useEffect } from "react";
+import { getPendingPosts } from "@/services/reviewService";
 const Profile = () => {
   const { user, loading, logout } = useAuth();
+  const [pendingPosts, setPendingPosts] = useState([]);
+  const [loadingPosts, setLoadingPosts] = useState(false);
+
   const navigate = useNavigate();
 
@@ -14,4 +17,20 @@
     navigate("/logout");
   };
+  useEffect(() => {
+    if (user) {
+      const fetchPendingPosts = async () => {
+        try {
+          const data = await getPendingPosts();
+
+          setPendingPosts(data);
+        } catch (error) {
+          console.error("Error fetching pending posts:", error);
+        } finally {
+          setLoadingPosts(false);
+        }
+      };
+      fetchPendingPosts();
+    }
+  }, []);
 
   return (
@@ -50,4 +69,20 @@
                   </p>
                 </div>
+                <div className="w-full mt-6">
+                  <h3 className="text-xl font-bold">Posts Awaiting Approval</h3>
+                  {loadingPosts ? (
+                    <span className="loading loading-spinner loading-md mt-2"></span>
+                  ) : pendingPosts.length > 0 ? (
+                    <ul className="mt-2 text-left list-disc list-inside bg-base-200 p-4 rounded-lg">
+                      {pendingPosts.map((post) => (
+                        <li key={post.id}>{post.title}</li>
+                      ))}
+                    </ul>
+                  ) : (
+                    <p className="mt-2 text-gray-500">
+                      You have no posts waiting for review.
+                    </p>
+                  )}
+                </div>
                 <div className="mt-6">
                   <a
Index: client/src/LandingPage/components/NavbarLanding.jsx
===================================================================
--- client/src/LandingPage/components/NavbarLanding.jsx	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ client/src/LandingPage/components/NavbarLanding.jsx	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -3,6 +3,8 @@
 import logoText from "../../assets/images/logoText.png";
 import { useNavigate } from "react-router-dom";
+import { useAuth } from "../../contexts/AuthContext";
 const NavbarLanding = () => {
-  const user = JSON.parse(localStorage.getItem("user"));
+  const { user } = useAuth();
+
   const navigate = useNavigate();
   const handleRegisterClick = () => {
Index: client/src/services/reviewService.js
===================================================================
--- client/src/services/reviewService.js	(revision 9d2acd31dbb917937c5d53bf1f570b01a80bced0)
+++ client/src/services/reviewService.js	(revision db6c39447bc2212ca42a63030e5e2d227af33490)
@@ -16,2 +16,6 @@
   return await apiClient.post(`/review/posts/${postId}/${userId}`, postData);
 };
+
+export const getPendingPosts = async () => {
+  return await apiClient.get(`/review/pendingPosts`);
+};
