---
title: "Qejaverse Onboarding Context 02"
space: "Qejaverse UAT Docs"
url: "https://qejaverse-prod.jh.frappe.cloud/Qejaverse-Onboarding-Context-02"
updated: "2026-08-15"
---

<style>
  .wiki-content, .wiki-page-content, .from-markdown, .wiki-content .from-markdown {
    max-width: 100% !important;
    width: 100% !important;
  }
  .wiki-page-content > .from-markdown {
    max-width: 100% !important;
  }
  .container {
    max-width: 100% !important;
  }
  .col-md-12, .col-lg-12 {
    max-width: 100% !important;
  }
  main .container, main .container-fluid {
    max-width: 100% !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }
</style>

<div style="max-width: 100%; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">

<!-- Hero Banner -->
<div style="background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%); border-radius: 16px; padding: 40px; margin-bottom: 32px; color: white; text-align: center;">
  <h1 style="margin: 0 0 12px 0; font-size: 2em; color: white !important;">🏠 QejaVerse UAT Testing Guide</h1>
  <p style="margin: 0; font-size: 1.1em; opacity: 0.9;">Everything you need to know before you start testing</p>
</div>

<!-- What is QejaVerse -->
<div style="background: #f8fafc; border-left: 4px solid #3b82f6; border-radius: 8px; padding: 24px; margin-bottom: 24px;">
  <h2 style="margin-top: 0; color: #1e293b;">What is QejaVerse?</h2>
  <p style="font-size: 1.05em; line-height: 1.7; color: #334155;">
    QejaVerse is a real estate platform that connects <strong>Property Developers</strong>, <strong>Real Estate Agents</strong>, <strong>Legal teams</strong> and <strong>Property Buyers (Clients)</strong> through the full property purchase journey — from discovery to signed sale agreements.
  </p>
</div>

<!-- Role Cards -->
<h2 style="color: #1e293b; margin-bottom: 16px;">👥 Who are the users?</h2>

<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 32px;">

  <div style="background: white; border: 1px solid #e2e8f0; border-radius: 12px; padding: 20px; border-top: 4px solid #8b5cf6;">
    <h3 style="margin-top: 0; color: #8b5cf6;">🏗️ Developer</h3>
    <p style="color: #64748b; font-size: 0.9em; margin-bottom: 8px;"><strong>Who:</strong> Property development company staff</p>
    <p style="color: #64748b; font-size: 0.9em; margin-bottom: 12px;"><strong>Arrives via:</strong> Self-signup on the platform</p>
    <ul style="color: #475569; font-size: 0.9em; padding-left: 18px; margin: 0;">
      <li>Creates projects & adds units</li>
      <li>Sets up payment plans & pricing</li>
      <li>Invites Agents to sell on their behalf</li>
      <li>Books units for clients & sends invitations</li>
      <li>Manages full sales pipeline</li>
      <li>Invites Lawyers to review legal docs</li>
    </ul>
  </div>

  <div style="background: white; border: 1px solid #e2e8f0; border-radius: 12px; padding: 20px; border-top: 4px solid #f59e0b;">
    <h3 style="margin-top: 0; color: #f59e0b;">🤝 Agent</h3>
    <p style="color: #64748b; font-size: 0.9em; margin-bottom: 8px;"><strong>Who:</strong> Independent real estate agents</p>
    <p style="color: #64748b; font-size: 0.9em; margin-bottom: 12px;"><strong>Arrives via:</strong> Self-signup OR invited by Developer</p>
    <ul style="color: #475569; font-size: 0.9em; padding-left: 18px; margin: 0;">
      <li>Gets invited to projects by Developers</li>
      <li>Represents Developer to buyers</li>
      <li>Manages leads & client relationships</li>
      <li>Earns commission on sales</li>
      <li>Can self-signup & request to join projects</li>
    </ul>
  </div>

  <div style="background: white; border: 1px solid #e2e8f0; border-radius: 12px; padding: 20px; border-top: 4px solid #10b981;">
    <h3 style="margin-top: 0; color: #10b981;">🏡 Client</h3>
    <p style="color: #64748b; font-size: 0.9em; margin-bottom: 8px;"><strong>Who:</strong> Property buyers</p>
    <p style="color: #64748b; font-size: 0.9em; margin-bottom: 12px;"><strong>Arrives via:</strong> Developer invitation OR marketplace self-register</p>
    <ul style="color: #475569; font-size: 0.9em; padding-left: 18px; margin: 0;">
      <li>Browses properties on marketplace</li>
      <li>Receives portal invitation from Developer</li>
      <li>Completes identity verification & plan selection</li>
      <li>Signs offer letters & sale agreements</li>
      <li>Makes payments per schedule</li>
      <li>Tracks ownership journey on dashboard</li>
    </ul>
  </div>

  <div style="background: white; border: 1px solid #e2e8f0; border-radius: 12px; padding: 20px; border-top: 4px solid #ef4444;">
    <h3 style="margin-top: 0; color: #ef4444;">⚖️ Lawyer</h3>
    <p style="color: #64748b; font-size: 0.9em; margin-bottom: 8px;"><strong>Who:</strong> Legal document reviewers</p>
    <p style="color: #64748b; font-size: 0.9em; margin-bottom: 12px;"><strong>Arrives via:</strong> Magic-link invitation from Developer/Admin</p>
    <ul style="color: #475569; font-size: 0.9em; padding-left: 18px; margin: 0;">
      <li>Receives magic-link invitation</li>
      <li>Reviews offer letters & sale agreements</li>
      <li>Approves or requests changes</li>
      <li>Has dedicated legal review dashboard</li>
    </ul>
  </div>

</div>

<!-- How Users Get Access -->
<h2 style="color: #1e293b; margin-bottom: 16px;">🚪 How do users get access?</h2>
<p style="color: #475569; margin-bottom: 16px;">There are <strong>4 distinct entry points</strong> into the platform:</p>

<div style="margin-bottom: 32px;">

  <div style="background: #eff6ff; border-radius: 10px; padding: 20px; margin-bottom: 12px;">
    <h3 style="margin-top: 0; color: #1d4ed8;">1️⃣ Self-Signup <span style="font-weight: normal; font-size: 0.8em;">(the "front door")</span></h3>
    <ol style="color: #334155; margin: 0; padding-left: 20px;">
      <li>User visits the app → clicks Sign Up</li>
      <li>Creates account with <strong>email/password</strong> OR <strong>Google OAuth</strong></li>
      <li>Accepts Terms & Conditions</li>
      <li>Chooses their role (Developer or Agent)</li>
      <li>Lands on their role dashboard</li>
    </ol>
  </div>

  <div style="background: #fef3c7; border-radius: 10px; padding: 20px; margin-bottom: 12px;">
    <h3 style="margin-top: 0; color: #92400e;">2️⃣ Invitation Links <span style="font-weight: normal; font-size: 0.8em;">(the "side doors")</span></h3>
    <ul style="color: #334155; margin: 0; padding-left: 20px;">
      <li><strong>Team Invitation:</strong> Developer invites Agent/Manager to a project via email. Invitee clicks link, signs up (or logs in), gets the role automatically.</li>
      <li><strong>Client Portal Invitation:</strong> Developer books a unit for a client → system sends invite email → Client clicks link, verifies phone via OTP, completes onboarding wizard.</li>
      <li><strong>Lawyer Invitation:</strong> Admin/Developer sends a magic-link → Lawyer clicks → gets access to legal review dashboard.</li>
    </ul>
  </div>

  <div style="background: #ecfdf5; border-radius: 10px; padding: 20px; margin-bottom: 12px;">
    <h3 style="margin-top: 0; color: #065f46;">3️⃣ Marketplace Discovery <span style="font-weight: normal; font-size: 0.8em;">(the "discovery door")</span></h3>
    <ol style="color: #334155; margin: 0; padding-left: 20px;">
      <li>Anonymous user browses public project listings at <code>/discover</code></li>
      <li>Shows interest in a property → completes 9-question qualification flow</li>
      <li>If scored <strong>"Hot"</strong> lead → offered to self-register as Client</li>
      <li>If <strong>"Warm/Cold"</strong> → an agent will contact them</li>
    </ol>
  </div>

  <div style="background: #fdf2f8; border-radius: 10px; padding: 20px; margin-bottom: 12px;">
    <h3 style="margin-top: 0; color: #9d174d;">4️⃣ Add Role <span style="font-weight: normal; font-size: 0.8em;">(existing users)</span></h3>
    <ul style="color: #334155; margin: 0; padding-left: 20px;">
      <li>A user who already has one role (e.g. Agent) can add another role (e.g. Developer)</li>
      <li>Phone verification required</li>
      <li>Both roles accessible via a role switcher in the navigation</li>
    </ul>
  </div>

</div>

<!-- Key Things to Know -->
<h2 style="color: #1e293b; margin-bottom: 16px;">⚠️ Key things to know while testing</h2>

<div style="background: #fefce8; border: 1px solid #fde047; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
  <table style="width: 100%; border-collapse: collapse;">
    <tr style="border-bottom: 1px solid #fde047;">
      <td style="padding: 10px 8px; font-weight: bold; color: #854d0e; width: 160px; vertical-align: top;">T&C Gate</td>
      <td style="padding: 10px 8px; color: #334155;">Every new user MUST accept Terms & Conditions after first login. You cannot bypass this.</td>
    </tr>
    <tr style="border-bottom: 1px solid #fde047;">
      <td style="padding: 10px 8px; font-weight: bold; color: #854d0e; vertical-align: top;">OTP Verification</td>
      <td style="padding: 10px 8px; color: #334155;">Phone verification is required for invitations and marketplace flows.</td>
    </tr>
    <tr style="border-bottom: 1px solid #fde047;">
      <td style="padding: 10px 8px; font-weight: bold; color: #854d0e; vertical-align: top;">Emails & OTPs</td>
      <td style="padding: 10px 8px; color: #334155;">This is staging — emails and OTPs go to the actual address/number you enter. If using fake credentials, retrieve OTPs from the backend (see below).</td>
    </tr>
    <tr style="border-bottom: 1px solid #fde047;">
      <td style="padding: 10px 8px; font-weight: bold; color: #854d0e; vertical-align: top;">Google OAuth</td>
      <td style="padding: 10px 8px; color: #334155;">Works with any real Google account. Creates a platform account on first use.</td>
    </tr>
    <tr style="border-bottom: 1px solid #fde047;">
      <td style="padding: 10px 8px; font-weight: bold; color: #854d0e; vertical-align: top;">Invitation Tokens</td>
      <td style="padding: 10px 8px; color: #334155;">Links expire after 30 days. Email must match exactly.</td>
    </tr>
    <tr>
      <td style="padding: 10px 8px; font-weight: bold; color: #854d0e; vertical-align: top;">Role Gate</td>
      <td style="padding: 10px 8px; color: #334155;">Only appears for self-signup users. Invited users skip it (role is pre-assigned).</td>
    </tr>
  </table>
</div>

<!-- How to Retrieve OTPs -->
<h2 style="color: #1e293b; margin-bottom: 16px;">🔑 How to retrieve OTPs and verification codes</h2>

<div style="background: #f0fdf4; border: 1px solid #86efac; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
  <p style="color: #166534; font-weight: 600; margin-top: 0;">When testing with emails/phones that can't receive messages:</p>
  <ol style="color: #334155; line-height: 2;">
    <li>Log into Frappe desk at <a href="https://staging.qejaverse.com/app" target="_blank" style="color: #16a34a;"><strong>staging.qejaverse.com/app</strong></a></li>
    <li>In the search bar, type <strong>"OTP"</strong> and open the OTP list</li>
    <li>Find your entry by email or phone number</li>
    <li>The code and expiry time will be visible</li>
  </ol>
  <p style="color: #166534; margin-bottom: 0;">💡 <em>If you use a real email address, OTPs will arrive in your inbox normally.</em></p>
</div>

<!-- URLs -->
<h2 style="color: #1e293b; margin-bottom: 16px;">🔗 URLs you'll use</h2>

<div style="background: white; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; margin-bottom: 24px;">
  <table style="width: 100%; border-collapse: collapse;">
    <thead>
      <tr style="background: #f1f5f9;">
        <th style="padding: 12px 16px; text-align: left; color: #475569; font-size: 0.85em; text-transform: uppercase;">URL</th>
        <th style="padding: 12px 16px; text-align: left; color: #475569; font-size: 0.85em; text-transform: uppercase;">Purpose</th>
      </tr>
    </thead>
    <tbody>
      <tr style="border-top: 1px solid #f1f5f9;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/</code></td>
        <td style="padding: 10px 16px; color: #475569;">Public homepage</td>
      </tr>
      <tr style="border-top: 1px solid #f1f5f9; background: #fafafa;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/signup</code></td>
        <td style="padding: 10px 16px; color: #475569;">Create new account</td>
      </tr>
      <tr style="border-top: 1px solid #f1f5f9;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/login</code></td>
        <td style="padding: 10px 16px; color: #475569;">Sign in to existing account</td>
      </tr>
      <tr style="border-top: 1px solid #f1f5f9; background: #fafafa;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/discover</code></td>
        <td style="padding: 10px 16px; color: #475569;">Browse marketplace (no login needed)</td>
      </tr>
      <tr style="border-top: 1px solid #f1f5f9;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/portal/invite?token=xxx</code></td>
        <td style="padding: 10px 16px; color: #475569;">Client invitation landing</td>
      </tr>
      <tr style="border-top: 1px solid #f1f5f9; background: #fafafa;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/onboarding/agreement</code></td>
        <td style="padding: 10px 16px; color: #475569;">T&C acceptance (auto-redirected here)</td>
      </tr>
      <tr style="border-top: 1px solid #f1f5f9;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/client/dashboard</code></td>
        <td style="padding: 10px 16px; color: #475569;">Client home</td>
      </tr>
      <tr style="border-top: 1px solid #f1f5f9; background: #fafafa;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/agent/dashboard</code></td>
        <td style="padding: 10px 16px; color: #475569;">Agent home</td>
      </tr>
      <tr style="border-top: 1px solid #f1f5f9;">
        <td style="padding: 10px 16px;"><code style="background: #f1f5f9; padding: 2px 8px; border-radius: 4px;">/manager/dashboard</code></td>
        <td style="padding: 10px 16px; color: #475569;">Developer home</td>
      </tr>
    </tbody>
  </table>
</div>

<!-- Testing Environment -->
<h2 style="color: #1e293b; margin-bottom: 16px;">🖥️ Your testing environment</h2>

<div style="background: white; border: 1px solid #e2e8f0; border-radius: 12px; overflow: hidden; margin-bottom: 24px;">
  <table style="width: 100%; border-collapse: collapse;">
    <tr style="border-bottom: 1px solid #f1f5f9;">
      <td style="padding: 14px 16px; font-weight: 600; color: #1e293b; width: 180px; background: #f8fafc;">Base URL</td>
      <td style="padding: 14px 16px;"><a href="https://staging.qejaverse.com/qeja" target="_blank" style="color: #2563eb; text-decoration: none; font-weight: 500;">https://staging.qejaverse.com/qeja ↗</a></td>
    </tr>
    <tr style="border-bottom: 1px solid #f1f5f9;">
      <td style="padding: 14px 16px; font-weight: 600; color: #1e293b; background: #f8fafc;">Backend (Frappe Desk)</td>
      <td style="padding: 14px 16px;"><a href="https://staging.qejaverse.com/app" target="_blank" style="color: #2563eb; text-decoration: none; font-weight: 500;">https://staging.qejaverse.com/app ↗</a> <span style="color: #64748b; font-size: 0.9em;">(login with provided credentials)</span></td>
    </tr>
    <tr>
      <td style="padding: 14px 16px; font-weight: 600; color: #1e293b; background: #f8fafc;">Test Plan Document</td>
      <td style="padding: 14px 16px;"><a href="https://docs.google.com/spreadsheets/d/1kwTH0nv1NZgVpMdaNwqZt7Ex9YAMUgf6mWeHPZyuBX8/edit?usp=sharing" target="_blank" style="color: #2563eb; text-decoration: none; font-weight: 500;">Google Sheets — UAT Test Plan ↗</a></td>
    </tr>
  </table>
</div>

<!-- Bug Reporting -->
<h2 style="color: #1e293b; margin-bottom: 16px;">🐛 Bug Reporting</h2>

<div style="background: #fef2f2; border: 1px solid #fecaca; border-radius: 12px; padding: 24px; margin-bottom: 24px;">
  <p style="color: #991b1b; font-weight: 600; margin-top: 0;">When you find a bug:</p>
  <ol style="color: #334155; line-height: 2;">
    <li>Mark the test case as <span style="background: #fee2e2; color: #dc2626; padding: 2px 8px; border-radius: 4px; font-weight: 600;">FAIL</span> in the spreadsheet</li>
    <li>In the <strong>Notes/Bugs</strong> column, include:
      <ul style="margin-top: 4px;">
        <li>What actually happened (vs. what was expected)</li>
        <li>Screenshot if possible (paste link or attach)</li>
        <li>Browser you used (Chrome, Safari, etc.)</li>
        <li>Whether you were on mobile or desktop</li>
      </ul>
    </li>
    <li>If it's a <strong>blocker</strong> (prevents you from continuing), flag it immediately to the test coordinator</li>
  </ol>
</div>

<!-- Footer CTA -->
<div style="background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); border-radius: 12px; padding: 24px; text-align: center; color: white;">
  <p style="margin: 0; font-size: 1.1em;">✅ RYou are now ready to open your assigned test sheet and start working through it row by row.</p>
</div>

</div>
