<h3><strong>User Story: Forgot Password (Mobile Application)</strong> </h3><p><strong>Title:</strong> Password Recovery for Mobile Users </p><p><strong>As a</strong> mobile user,<br><strong>I want</strong> to reset my password securely,<br><strong>So that</strong> I can regain access to my account if I forget my login credentials. </p><p><br> </p><div style="margin-top:14px;margin-bottom:14px;"><h3><strong>Acceptance Criteria:</strong> </h3><h4><strong><ol><li><strong>Basic Functionality:</strong> </li> </ol></strong> </h4><h4><span>&nbsp;The </span><strong>login screen</strong><span> must have a </span><strong>&quot;Forgot Password?&quot;</strong><span> link.</span> </h4><p>&nbsp;Tapping on <strong>&quot;Forgot Password?&quot;</strong> navigates the user to the password recovery screen. </p><p>&nbsp;Users should be prompted to enter their <strong>registered email </strong>. </p><p>&nbsp;If the provided email/phone number is valid: </p><ul><li>A <strong>verification code (OTP)</strong> via email. </li> </ul><p>&nbsp;If the email is <strong>not registered</strong>, an appropriate <strong>error message</strong> should be displayed (e.g., <em>&quot;No account found with this email.&quot;</em>). </p><p>&nbsp;After receiving the OTP or reset link, users should be able to: </p><ul><li><strong>Enter the OTP</strong> (if applicable) and proceed to the reset password screen. </li><li><strong>Click the reset link</strong>, which takes them to a password reset form. </li> </ul><p>&nbsp;Users must be able to <strong>set a new password</strong>, with validation rules (e.g., at least 8 characters, mix of letters, numbers, special symbols). </p><p>&nbsp;After successfully resetting the password, users should be able to <strong>log in with the new credentials</strong>. </p><p>&nbsp;Show a <strong>confirmation message</strong> (e.g., <em>&quot;Your password has been reset successfully. Please log in with your new password.&quot;</em>). </p><h3><strong>&nbsp;2. Mobile-Specific Considerations:</strong> </h3><p><strong>Optimized UI for mobile screens</strong> (easy to tap buttons, clear instructions). </p><p><strong>Password visibility toggle</strong> (eye icon to show/hide new password). </p><p><strong>Allow copy-pasting OTP</strong> from clipboard for convenience. </p><p><strong>Save session progress</strong> in case the user switches apps before completing the reset process. </p><p><strong>Deep linking support</strong> for password reset links (directly opening the app instead of a web browser). </p><div style="margin-top:14px;margin-bottom:14px;"><h3><strong>3. Security &amp; Validation:</strong> </h3><p><strong>Limit OTP attempts</strong> (e.g., max 5 retries before blocking for security). </p><p><strong>Expire OTP/reset link</strong> after a set time (e.g., 10 minutes). </p><p><strong>Enforce strong password rules</strong> for security. </p><p><strong>Verify identity</strong> before allowing a password reset (e.g., additional security questions or last login confirmation). </p><p><strong>Ensure reset links and OTPs are one-time use only</strong>. </p><h3><strong>4. Edge Cases &amp; Additional Scenarios:</strong> </h3><p><strong>User enters an incorrect email</strong>&nbsp;→ Show an appropriate message instead of generic errors. </p><p><strong>User requests multiple OTPs but doesn’t receive them</strong> → Allow retry but prevent abuse. </p><p><strong>User enters an expired OTP</strong> → Prompt them to request a new one. </p><p><strong>User resets password and tries logging in with the old one</strong> → Show an error and remind them to use the new password. </p><p><strong>User tries to use the reset link twice</strong> → Show a message (e.g., <em>&quot;This link has already been used. Please request a new reset link.&quot;</em>). </p><b style="box-sizing:border-box;">Refer Figma Design:</b><span style="display:inline !important;">&nbsp;</span><span style="box-sizing:border-box;"><a href="https://www.figma.com/proto/myyf6wXN6Tr5uTYDgCrI10/cleaning-service?page-id=331:5195&amp;node-id=1660-540&amp;p=f&amp;viewport=367%2c370%2c0.3&amp;t=26ZuN96jwOXu2hFt-1&amp;scaling=scale-down&amp;content-scaling=fixed&amp;starting-point-node-id=2939:3873" rel="noreferrer noopener" target=_blank title="https://www.figma.com/proto/myyf6wxn6tr5utydgcri10/cleaning-service?page-id=331%3a5195&amp;node-id=1660-540&amp;p=f&amp;viewport=367%2c370%2c0.3&amp;t=26zun96jwoxu2hft-1&amp;scaling=scale-down&amp;content-scaling=fixed&amp;starting-point-node-id=2939%3a3873" style="box-sizing:border-box;text-decoration:underline;cursor:pointer;">https://www.figma.com/proto/myyf6wXN6Tr5uTYDgCrI10/cleaning-service?page-id=331%3A5195&amp;node-id=1660-540&amp;p=f&amp;viewport=367%2C370%2C0.3&amp;t=26ZuN96jwOXu2hFt-1&amp;scaling=scale-down&amp;content-scaling=fixed&amp;starting-point-node-id=2939%3A3873</a></span><br> </div><br> </div><br><br>