<h3><strong>User Story: Profile and Address Management</strong> </h3><h4><strong>As a</strong> registered user, </h4><p><strong>I want to</strong> update my profile information, manage my addresses, and set default shipping/billing addresses,<br><strong>So that</strong> I can ensure accurate personal details and delivery preferences for my orders. </p><h3><strong>Acceptance Criteria</strong> </h3><h4><strong>1. Profile Information Management</strong> </h4><ul><li><p><strong>AC1.1</strong>: The user should be able to edit their <strong>name, email, and phone number</strong>. </p> </li><li><p><strong>AC1.2</strong>: The application should validate the email format and display an error for incorrect formats. </p> </li><li><p><strong>AC1.3</strong>: The <span style="display:inline !important;">application<span>&nbsp;</span></span>should validate the phone number format and reject invalid entries. </p> </li><li><p><strong>AC1.4</strong>: If any required fields are left empty, the system should prevent saving and display an appropriate error message. </p> </li><li><p><strong>AC1.5</strong>: The user should be able to upload a new <strong>profile picture</strong> successfully. </p> </li><li><p><strong>AC1.6</strong>: The <span style="display:inline !important;">application<span>&nbsp;</span></span>should reject unsupported image file formats and display an error message. </p> </li><li><p><strong>AC1.7</strong>: Upon successful update, the profile information should reflect the changes immediately. </p> </li> </ul><h4><strong>2. Address Management</strong> </h4><ul><li><p><strong>AC2.1</strong>: The user should be able to <strong>add a new address</strong> by providing all required fields (Name, Address, Country, State, Zip Code). </p> </li><li><p><strong>AC2.2</strong>: The <span style="display:inline !important;">application<span>&nbsp;</span></span>should validate the zip code format and prevent saving invalid entries. </p> </li><li><p><strong>AC2.3</strong>: The user should be able to <strong>edit an existing address</strong> and save changes. </p> </li><li><p><strong>AC2.4</strong>: The user should be able to <strong>delete an address</strong>, and a confirmation prompt should be displayed before deletion. </p> </li><li><p><strong>AC2.5</strong>: The user should be able to <strong>set an address as the default shipping address</strong>, and it should be marked as such. </p> </li><li><p><strong>AC2.6</strong>: The user should be able to <strong>set an address as the default billing address</strong>, and it should be marked as such. </p> </li><li><p><strong>AC2.7</strong>: The <span style="display:inline !important;">application<span>&nbsp;</span></span>should prevent setting multiple addresses as default shipping or billing. </p> </li><li><p><strong>AC2.8</strong>: If a default address is deleted, the <span style="display:inline !important;">application<span>&nbsp;</span></span>should prompt the user to select a new default address. </p> </li><li><p><strong>AC2.9</strong>: Address changes should be reflected in the profile immediately after saving. </p> </li> </ul><h4><strong>3. Error Handling &amp; Edge Cases</strong> </h4><ul><li><p><strong>AC3.1</strong>: If the user enters invalid characters in any profile or address fields, the system should reject the input with an error message. </p> </li><li><p><strong>AC3.2</strong>: If the user tries to update profile details with maximum allowed characters, the <span style="display:inline !important;">application<span>&nbsp;</span></span> should handle the input gracefully. </p> </li><li><p><strong>AC3.3</strong>: If the user attempts to save an address without an internet connection, an appropriate error message should be displayed. </p> </li><li><p><strong>AC3.4</strong>: If the session expires, the user should be redirected to the login page. </p> </li><li><p><strong>AC3.5</strong>: If the network is slow, the profile and address details should load with a delay but should not cause app crashes. </p> </li> </ul><br>