|
| 1 | +# Bug Test Report: Organization & Onboarding Flow |
| 2 | + |
| 3 | +**Project:** BoundlessFi |
| 4 | +**Date:** March 7, 2026 |
| 5 | +**Environment:** Frontend (Local) / Backend (Staging API) |
| 6 | +**Status:** Issue #448 Verification Complete |
| 7 | + |
| 8 | +--- |
| 9 | + |
| 10 | +## 1. Executive Summary |
| 11 | + |
| 12 | +Overall, core organization features (creation, search, and navigation) are stable. However, critical blockers exist within the **Invitation Lifecycle** and **Hackathon Publishing** flows. Additionally, UX refinements are needed for mobile navigation and input validation. |
| 13 | + |
| 14 | +--- |
| 15 | + |
| 16 | +## 2. Issue #448 Verification Status [COMPLETED] |
| 17 | + |
| 18 | +All items specified in Issue #448 have been verified for production readiness: |
| 19 | + |
| 20 | +| Feature | Status | Notes | |
| 21 | +| :----------------------- | :----- | :--------------------------------------------------- | |
| 22 | +| **Public Profile Route** | Pass | `/org/[slug]` functions correctly end-to-end. | |
| 23 | +| **OG Metadata** | Pass | Title, description, and images validated. | |
| 24 | +| **Settings Tabs** | Pass | Profile, Links, Members, and Transfer verified. | |
| 25 | +| **Sidebar Actions** | Pass | Host Hackathon and Grants (disabled state) verified. | |
| 26 | +| **Search/Sort** | Pass | Search and sort keys behave as expected. | |
| 27 | +| **Deep-linking** | Pass | Direct URL loading for organizations is functional. | |
| 28 | +| **Header Search** | Pass | `⌘K` navigation is bug-free. | |
| 29 | +| **Profile Validation** | Pass | Slug/Profile validation logic is functional. | |
| 30 | +| **Mobile Responsive** | Pass | Hamburger menu is functional on settings pages. | |
| 31 | + |
| 32 | +--- |
| 33 | + |
| 34 | +## 3. High-Priority Bugs |
| 35 | + |
| 36 | +### BUG-001: Invite Link Routing Mismatch (404) |
| 37 | + |
| 38 | +- **Issue:** Generated invite links point to `/signup` instead of the active `/auth` route. |
| 39 | +- **Example Link:** `https://staging.boundlessfi.xyz/signup?invitationId=...` |
| 40 | +- **Impact:** Users cannot join organizations via email. |
| 41 | +- **Recommended Fix:** Update `getInvitationUrl` in the backend/auth-config to target `/auth`. |
| 42 | + |
| 43 | +### BUG-002: Invite Acceptance Logic Failure |
| 44 | + |
| 45 | +- **Issue:** Manually correcting the URL to `/auth` allows sign-up, but the user is not associated with the organization. |
| 46 | +- **Actual Behavior:** User is redirected to home; status remains "Pending"; member list is not updated. |
| 47 | +- **Expected Behavior:** User should automatically join the organization and redirect to the org dashboard. |
| 48 | + |
| 49 | +### BUG-003: Hackathon Publish Endpoint (404) |
| 50 | + |
| 51 | +- **Action:** Click **Publish** in the Preview tab for a draft hackathon. |
| 52 | +- **Observed Error:** `PUT .../api/organizations/{orgId}/hackathons/draft/{hackathonId}/publish` returns **404 Not Found**. |
| 53 | +- **Likely Root Cause:** Wallet balance is insufficient for publish-related on-chain or fee-dependent operations. |
| 54 | +- **UX Gap:** The UI does not tell users that the publish failure is caused by **insufficient wallet funds**. |
| 55 | +- **Impact:** Users cannot move hackathons from "Draft" to "Live" and do not know how to resolve it. |
| 56 | +- **Suggestion:** Show a clear inline/toast error such as: `Insufficient wallet funds to publish. Please fund your wallet and try again.` |
| 57 | + |
| 58 | +**Suggested User Guidance (Fund Wallet Steps)** |
| 59 | + |
| 60 | +1. Open wallet settings from the profile/wallet menu. |
| 61 | +2. Copy your connected wallet address. |
| 62 | +3. Add funds to that wallet on the required network (via exchange transfer, bridge, or faucet for test/staging). |
| 63 | +4. Wait for transaction confirmation and refresh the app. |
| 64 | +5. Return to the hackathon draft and click **Publish** again. |
| 65 | + |
| 66 | +### BUG-004: Delete/Archive Organization Non-Functional |
| 67 | + |
| 68 | +- **Issue:** Actions to delete or archive an organization fail. |
| 69 | + |
| 70 | +**What I tested** |
| 71 | + |
| 72 | +- Opened `/organizations`. |
| 73 | +- Selected an organization. |
| 74 | +- Clicked the **Archive** button and completed the confirmation prompt. |
| 75 | +- Clicked the **Delete** button and completed the confirmation prompt. |
| 76 | + |
| 77 | +**Observed Result** |
| 78 | + |
| 79 | +- Both actions failed. |
| 80 | +- The organization was not archived and not deleted. |
| 81 | + |
| 82 | +**Expected Result** |
| 83 | + |
| 84 | +- Archive should move the organization to archived state. |
| 85 | +- Delete should remove the organization. |
| 86 | + |
| 87 | +**Scope** |
| 88 | + |
| 89 | +- Test type: Manual UI test. |
| 90 | +- Environment: Frontend local + staging backend. |
| 91 | +- Role: Owner. |
| 92 | +- Organizations tested: 1 organization in this pass. |
| 93 | + |
| 94 | +## 4. UI/UX Improvements |
| 95 | + |
| 96 | +### UX-001: Mobile Navigation Tabs (Host Hackathon) |
| 97 | + |
| 98 | +- **Observation:** Sub-navigation tabs (e.g., Participation, Edit) are difficult to access/truncated on mobile screens. |
| 99 | +- **Suggestion:** Implement **horizontal scrollable tabs** for sub-nav menus to improve mobile accessibility. |
| 100 | + |
| 101 | +### UX-002: Slug Availability Feedback |
| 102 | + |
| 103 | +- **Issue:** The UI displays "Slug available" even for taken slugs, only failing upon final form submission. |
| 104 | +- **Suggestion:** Real-time validation should return "Slug already taken" before the user attempts to submit. |
| 105 | + |
| 106 | +### UX-003: Password Strength Feedback |
| 107 | + |
| 108 | +- **Issue:** Form submission is blocked for weak passwords without explaining why. |
| 109 | +- **Suggestion:** Add a helper text: _"Password must be at least 8 characters and include a number."_ |
| 110 | + |
| 111 | +--- |
| 112 | + |
| 113 | +## 5. Technical Edge Cases |
| 114 | + |
| 115 | +### Route Guarding: Invalid Organization IDs |
| 116 | + |
| 117 | +- **Issue:** Manually entering an invalid ID (e.g., `/organizations/random123/settings`) still renders the settings UI shell. |
| 118 | +- **Recommendation:** Implement a check to return a 404 page if the Organization ID does not exist in the database. |
| 119 | + |
| 120 | +--- |
| 121 | + |
| 122 | +**Reported by:** QA Team |
| 123 | +**Branch:** `Test/Test-the-organization-flow---manual-QA-checklist` |
0 commit comments