Testing Guide: Developer / Property Manager Role
What is this? A feature-by-feature reference for testers. Go through each section below, verify the expected behaviour, and log any issues you find.
Dev App URL:
https://casahub.jh.frappe.cloud/qejaYour role for this test: Property Manager / Developer (they share the same portal)
1. Registration
| Step | What to do | Expected result |
|---|---|---|
| 1 | Go to /qeja and click Create Account |
Sign-up form appears |
| 2a | Enter first name, last name, email, password and submit | Account is created, you are logged in automatically |
| 2b | Or click Sign in with Google | Google OAuth flow completes, account is created |
| 3 | After sign-up | You land on /onboarding-check -- you cannot access any dashboard yet |
Things to check:
-
Duplicate email is rejected with a clear message
-
Password requires 8+ characters
-
Empty required fields show validation errors
-
Welcome email arrives
2. Login
| Step | What to do | Expected result |
|---|---|---|
| 1 | Go to /qeja/login, enter credentials |
Logged in successfully |
| 2a | If onboarding incomplete | Redirected to /onboarding-check |
| 2b | If onboarding complete | Redirected to /manager/dashboard |
| 3 | Wrong password | Clear error message, not a generic server error |
| 4 | Forgot password link | Password reset email is sent |
3. Logout
| Step | What to do | Expected result |
|---|---|---|
| 1 | Click profile/avatar in sidebar, click Logout | Session ends, redirected to login page |
| 2 | Try to visit /manager/dashboard directly |
Redirected to login -- no access |
4. Onboarding -- Profile Completion
| Step | What to do | Expected result |
|---|---|---|
| 1 | You land on /onboarding/profile |
Form shows: phone number (with +254 default), gender, date of birth |
| 2 | Fill in all fields and click Continue | Data saves, you move to /onboarding/role |
| 3 | Try to skip without filling required fields | Validation blocks you |
5. Onboarding -- Role Selection
| Step | What to do | Expected result |
|---|---|---|
| 1 | You land on /onboarding/role |
4 role cards: Property Owner, Property Manager, Real Estate Agent, Client/Tenant |
| 2 | Click Property Manager (or Property Owner) | Card highlights with a checkmark |
| 3 | Click Continue | You are assigned the role and land on /manager/dashboard |
Things to check:
- Only one role can be selected at a time
- You cannot proceed without selecting a role
- After this, the onboarding flow should not repeat on next login
6. Dashboard
| Section | What you should see | Expected behaviour |
|---|---|---|
| KPI cards | Managed Projects, Pending Requests, Total Units (+ available), Active Agents | Values match actual data; cards are clickable and navigate to the right page |
| Financial metrics | Total Collected, Pending Payments, Overdue, Collection Rate | Currency is KES; period filter (Month/Quarter/Year) updates the numbers |
| Recent activity | Latest access requests | Shows agent name, project, date, status |
| Project breakdown | Projects grouped by status | Counts are accurate |
Things to check:
- Dashboard loads without errors or stuck spinners
- Period filter actually changes the data shown
- All KPI card clicks navigate correctly
7. Developer Profile
This is your company profile visible in the developer directory.
| Feature | What to do | Expected result |
|---|---|---|
| View profile | Navigate to profile page | Shows your company info, completeness %, KYC status |
| Edit Tier 1 fields | Company name, logo, year established, specializations, description, city, county, phone, email | Saves successfully; completeness % updates |
| Edit Tier 2 fields | Registration number, company type, NCA number, website, cover image, market segments, property types, geographic focus | Saves successfully |
| Edit Tier 3 fields | Social media links, date of incorporation, KRA PIN, VAT number, NEMA ref, awards | Saves successfully |
| Payment details | Bank name, account name, account number, M-Pesa paybill, payment instructions | Saves successfully |
| Publish profile | Click Publish | Profile appears in developer directory; requires Tier 1+2 fields filled |
| Unpublish profile | Click Unpublish | Profile removed from directory |
Things to check:
- Year established validates between 1900 and current year
- Completeness percentage reflects actual filled fields
- Cannot publish without minimum required fields
8. Projects -- List & Create
8a. View Projects
| Step | What to do | Expected result |
|---|---|---|
| 1 | Click Projects in sidebar | Project list page loads with your projects as cards |
| 2 | Search by project name | Results filter in real-time |
| 3 | Filter by status or category | List updates correctly |
| 4 | Click a project card | Opens project detail page |
Things to check:
-
Pagination works if you have 20+ projects
-
Empty state shows if no projects exist
8b. Create Project
| Step | What to do | Expected result |
|---|---|---|
| 1 | Click Create Project | Setup wizard opens |
| 2 | Step 1 -- Basics | Fill project name, company, template, category, dev type, description |
| 3 | Step 2 -- Location | Address, county, coordinates |
| 4 | Step 3 -- Media | Cover image, gallery images |
| 5 | Step 4 -- Structure | Phases and buildings config |
| 6 | Step 5 -- Units | Bulk unit creation or skip |
| 7 | Step 6 -- Team | Add team members (optional) |
| 8 | Step 7 -- Review | Review all info, click Create Project |
| 9 | After creation | Redirected to project detail; toast confirms success |
Things to check:
-
Wizard shows progress indicator
-
Can navigate back to previous steps
-
Required fields are validated before moving forward
-
Subscription limits are enforced (Free plan = 1 project max)
-
Image uploads show progress and preview
9. Project Management (Manage View)
After opening a project, click Manage to access the tabbed management interface.
9a. Tabs Overview
| Tab | What it shows |
|---|---|
| Units | All units in the project with search/filter |
| Buildings | Building cards with unit counts |
| Phases | Phase list with dates and status |
| Team | Team members and pending invitations |
| Templates | Unit type templates |
| Payment Plans | Payment plan templates |
| Settings | Edit project details |
Things to check:
-
All tabs load their content
-
Active tab is visually highlighted
-
No console errors when switching tabs
9b. Units Management
| Feature | What to do | Expected result |
|---|---|---|
| View units | Open Units tab | Table with unit number, type, status, price, building |
| Search/filter | Search by unit number; filter by status, type, building | Results update correctly |
| Add single unit | Click Add Unit, fill fields (number, type, price, building) | Unit created with status "Available" |
| Bulk create | Click Bulk Create, pick building, count, naming pattern | Units created with sequential names (e.g. Unit-001, Unit-002) |
| Edit unit | Click a unit, click Edit, change fields, save | Changes persist |
| Delete units | Select units, click Delete | Units removed |
Things to check:
-
Subscription unit limit enforced
-
Bulk create shows progress for large batches
-
Status options: Available, Reserved, Booked, Sold
9c. Buildings Management
| Feature | What to do | Expected result |
|---|---|---|
| View buildings | Open Buildings tab | Cards showing building name, floors, unit count |
| Add building | Click Add Building, enter name | Building created and appears in list |
| Edit building | Click building, modify fields | Changes save |
9d. Phases Management
| Feature | What to do | Expected result |
|---|---|---|
| View phases | Open Phases tab | List showing phase name, dates, unit count |
| Add phase | Click Add Phase, enter name and optional dates | Phase created |
| Edit phase | Click phase, modify | Changes save; end date must be after start date |
9e. Unit Type Templates
| Feature | What to do | Expected result |
|---|---|---|
| Create template | Define a reusable unit type (e.g. "2BR Apartment" with specs) | Template saved |
| Apply template | Select units, bulk apply template | Unit specs updated from template |
| Edit/delete template | Modify or remove a template | Changes take effect |
9f. Payment Plans
| Feature | What to do | Expected result |
|---|---|---|
| Create plan | Define payment milestones with amounts and due dates | Plan template saved |
| View plans | Open Payment Plans tab | All plan templates listed |
10. Project Settings
| Feature | What to do | Expected result |
|---|---|---|
| Edit mode | Toggle Edit Mode on | Fields become editable |
| Update basics | Change name, description, status | Saves with toast confirmation |
| Commission settings | Set commission mode (percentage or flat), amount | Settings save |
| Team access settings | Toggle "Require contract for agent access" | Setting saves |
| Publish/Unpublish | Publish or unpublish project | Project visibility changes for agents/public |
11. Team Management
| Feature | What to do | Expected result |
|---|---|---|
| View team | Open Team tab | Shows members with name, email, role, join date |
| Invite member | Click Invite Member, enter email and role | Invitation email sent; shows in Pending Invitations |
| Remove member | Click Remove on a member, confirm | Member removed; loses project access immediately |
Things to check:
-
Cannot remove yourself
-
Confirmation dialog appears before removal
-
Subscription team member limits enforced
12. Applications & Contracts
12a. Access Requests
| Feature | What to do | Expected result |
|---|---|---|
| View requests | Click Applications in sidebar, Requests tab | List of agent access requests with status |
| Approve | Click Approve on a pending request | Status changes to Approved; agent gets project access + notification |
| Reject | Click Reject, enter reason | Status changes to Rejected; agent notified with reason |
| Filter | Filter by status or project | List updates correctly |
Things to check:
-
Pending count matches dashboard KPI
-
Agent actually gains access after approval (test from agent side)
12b. Contracts
| Feature | What to do | Expected result |
|---|---|---|
| View contracts | Click Contracts tab | List with agent name, project, status, dates |
| Create contract | Click Create Contract, fill agent, project, title, type, dates, terms | Contract created in Draft status |
| Send to agent | Click Send on a draft contract | Status changes to Sent; agent gets email notification |
| Activate | After agent signs, click Activate/Confirm | Status changes to Active; agent gets full project access |
| Terminate | Click Terminate, enter reason | Contract ended; agent access revoked |
| Extend | Click Extend, set new end date | Contract period updated |
Things to check:
-
Contract workflow: Draft -> Sent -> Signed -> Active
-
Can create from template or custom content
-
Contract timeline shows all status changes
-
PDF preview generation works
13. Agent Directory
| Feature | What to do | Expected result |
|---|---|---|
| Browse agents | Click Agents in sidebar | Grid of agent cards with photo, name, company, KYC badge |
| Search | Type agent name in search | Results filter in real-time |
| Filter by KYC | Select "Verified Only" filter | Only verified agents shown |
| View profile | Click an agent card | Full profile: bio, contact info, KYC status, active projects |
14. Payments & Financials
| Feature | What to do | Expected result |
|---|---|---|
| Add payment | On a unit, click Add Payment, enter date, amount, method | Payment recorded; schedule updates |
| View payments | Navigate to payments list | Filterable by project, status, method, date range |
| Payment summary | View summary section | Shows total collected, pending, overdue, collection rate, due in 30 days |
| Edit payment | Click a payment, modify details | Changes save |
| Deactivate payment | Click Deactivate, enter reason | Payment marked inactive |
Things to check:
-
Currency displays as KES
-
Payment allocation to milestones works correctly
-
Overdue payments are correctly flagged
15. Due Diligence / Compliance
| Feature | What to do | Expected result |
|---|---|---|
| View required docs | Open due diligence section on a project | Shows required vs optional documents with upload status |
| Upload documents | Upload compliance docs (licenses, certificates, etc.) | Documents save with correct type |
| View status | Check due diligence status | Shows completion breakdown |
16. Billing & Subscription
| Feature | What to do | Expected result |
|---|---|---|
| View plans | Go to Settings > Billing, Plans tab | See Free and Enterprise plans; current plan marked |
| Toggle pricing | Switch between Monthly/Annual | Prices update |
| Payment history | Click Payment History tab | Past payments listed with date, amount, method, status |
| Payment methods | Click Payment Methods tab | Saved methods shown; can add/remove |
| Upgrade | Click Upgrade on Enterprise plan | Payment flow: M-Pesa STK push or card entry; subscription upgrades on success |
Things to check:
-
Free tier limits: 1 project, 5 units, 1 agent, 1 building, 1 phase, 1 template, 1 payment plan
-
Limit reached shows upgrade prompt
-
After upgrade, limits increase immediately
17. Customers / Leads
| Feature | What to do | Expected result |
|---|---|---|
| View customers | Open customer section for a project | List of project customers |
| Add customer | Click Add Customer, fill name, contact, preferences | Customer record created |
| Search | Search by name or phone | Results filter |
| View details | Click a customer | Full profile with contact history |
18. Route Access / Permissions
| Route | Should you have access? |
|---|---|
/manager/dashboard |
Yes |
/projects |
Yes |
/projects/:id |
Yes (only your projects) |
/projects/:id/manage |
Yes (only your projects) |
/manager/applications |
Yes |
/manager/agents |
Yes |
/billing |
Yes |
/profile |
Yes |
/agent/* |
No -- should redirect to /unauthorized |
/admin/* |
No -- should redirect to /unauthorized |
/client/* |
No -- should redirect to /unauthorized |
Quick Checklist Summary
Use this to track your progress:
- Mobile Responsiveness
- Registration (email + Google SSO)
- Login / Logout
- Onboarding (profile + role selection)
- Dashboard loads with correct data
- Developer profile CRUD + publish/unpublish
- Create project via wizard
- View project list with search/filter
- Project manage view -- all tabs load
- Units: create, bulk create, edit, delete, search/filter
- Buildings: create, edit
- Phases: create, edit
- Unit templates: create, apply, edit, delete
- Payment plans: create, view
- Project settings: edit, publish/unpublish
- Team: view, invite, remove
- Access requests: view, approve, reject
- Contracts: create, send, activate, terminate, extend
- Agent directory: browse, search, filter, view profile
- Payments: add, view, filter, summary, deactivate
- Due diligence: view requirements, upload docs
- Billing: view plans, payment history, payment methods, upgrade
- Customers: view, add, search
- Route permissions: cannot access agent/admin/client routes
- Subscription limits enforced on Free plan