mirror of
https://github.com/pezkuwichain/pezkuwi-mobile-app.git
synced 2026-04-30 03:47:58 +00:00
279 lines
11 KiB
Markdown
279 lines
11 KiB
Markdown
#====================================================================================================
|
|
# START - Testing Protocol - DO NOT EDIT OR REMOVE THIS SECTION
|
|
#====================================================================================================
|
|
|
|
# THIS SECTION CONTAINS CRITICAL TESTING INSTRUCTIONS FOR BOTH AGENTS
|
|
# BOTH MAIN_AGENT AND TESTING_AGENT MUST PRESERVE THIS ENTIRE BLOCK
|
|
|
|
# Communication Protocol:
|
|
# If the `testing_agent` is available, main agent should delegate all testing tasks to it.
|
|
#
|
|
# You have access to a file called `test_result.md`. This file contains the complete testing state
|
|
# and history, and is the primary means of communication between main and the testing agent.
|
|
#
|
|
# Main and testing agents must follow this exact format to maintain testing data.
|
|
# The testing data must be entered in yaml format Below is the data structure:
|
|
#
|
|
## user_problem_statement: {problem_statement}
|
|
## backend:
|
|
## - task: "Task name"
|
|
## implemented: true
|
|
## working: true # or false or "NA"
|
|
## file: "file_path.py"
|
|
## stuck_count: 0
|
|
## priority: "high" # or "medium" or "low"
|
|
## needs_retesting: false
|
|
## status_history:
|
|
## -working: true # or false or "NA"
|
|
## -agent: "main" # or "testing" or "user"
|
|
## -comment: "Detailed comment about status"
|
|
##
|
|
## frontend:
|
|
## - task: "Task name"
|
|
## implemented: true
|
|
## working: true # or false or "NA"
|
|
## file: "file_path.js"
|
|
## stuck_count: 0
|
|
## priority: "high" # or "medium" or "low"
|
|
## needs_retesting: false
|
|
## status_history:
|
|
## -working: true # or false or "NA"
|
|
## -agent: "main" # or "testing" or "user"
|
|
## -comment: "Detailed comment about status"
|
|
##
|
|
## metadata:
|
|
## created_by: "main_agent"
|
|
## version: "1.0"
|
|
## test_sequence: 0
|
|
## run_ui: false
|
|
##
|
|
## test_plan:
|
|
## current_focus:
|
|
## - "Task name 1"
|
|
## - "Task name 2"
|
|
## stuck_tasks:
|
|
## - "Task name with persistent issues"
|
|
## test_all: false
|
|
## test_priority: "high_first" # or "sequential" or "stuck_first"
|
|
##
|
|
## agent_communication:
|
|
## -agent: "main" # or "testing" or "user"
|
|
## -message: "Communication message between agents"
|
|
|
|
# Protocol Guidelines for Main agent
|
|
#
|
|
# 1. Update Test Result File Before Testing:
|
|
# - Main agent must always update the `test_result.md` file before calling the testing agent
|
|
# - Add implementation details to the status_history
|
|
# - Set `needs_retesting` to true for tasks that need testing
|
|
# - Update the `test_plan` section to guide testing priorities
|
|
# - Add a message to `agent_communication` explaining what you've done
|
|
#
|
|
# 2. Incorporate User Feedback:
|
|
# - When a user provides feedback that something is or isn't working, add this information to the relevant task's status_history
|
|
# - Update the working status based on user feedback
|
|
# - If a user reports an issue with a task that was marked as working, increment the stuck_count
|
|
# - Whenever user reports issue in the app, if we have testing agent and task_result.md file so find the appropriate task for that and append in status_history of that task to contain the user concern and problem as well
|
|
#
|
|
# 3. Track Stuck Tasks:
|
|
# - Monitor which tasks have high stuck_count values or where you are fixing same issue again and again, analyze that when you read task_result.md
|
|
# - For persistent issues, use websearch tool to find solutions
|
|
# - Pay special attention to tasks in the stuck_tasks list
|
|
# - When you fix an issue with a stuck task, don't reset the stuck_count until the testing agent confirms it's working
|
|
#
|
|
# 4. Provide Context to Testing Agent:
|
|
# - When calling the testing agent, provide clear instructions about:
|
|
# - Which tasks need testing (reference the test_plan)
|
|
# - Any authentication details or configuration needed
|
|
# - Specific test scenarios to focus on
|
|
# - Any known issues or edge cases to verify
|
|
#
|
|
# 5. Call the testing agent with specific instructions referring to test_result.md
|
|
#
|
|
# IMPORTANT: Main agent must ALWAYS update test_result.md BEFORE calling the testing agent, as it relies on this file to understand what to test next.
|
|
|
|
#====================================================================================================
|
|
# END - Testing Protocol - DO NOT EDIT OR REMOVE THIS SECTION
|
|
#====================================================================================================
|
|
|
|
|
|
|
|
#====================================================================================================
|
|
# Testing Data - Main Agent and testing sub agent both should log testing data below this section
|
|
#====================================================================================================
|
|
|
|
user_problem_statement: |
|
|
PezkuwiChain Mobile App - Kurdish Digital Citizenship Platform
|
|
Complete rebuild from scratch with Kurdish design theme, user authentication (Supabase),
|
|
and blockchain integration (HEZ/PEZ tokens). Multi-language support, profile management,
|
|
wallet functionality with 30 quick actions, and bottom tab navigation.
|
|
|
|
backend:
|
|
- task: "Supabase Authentication - Sign Up"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "backend/server.py"
|
|
stuck_count: 0
|
|
priority: "high"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Implemented /api/auth/signup endpoint with Supabase integration. Creates user in Supabase Auth and stores profile data in users table with first_name, last_name, phone, referral_code, language, tiki_count, trust_score."
|
|
|
|
- task: "Supabase Authentication - Sign In"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "backend/server.py"
|
|
stuck_count: 0
|
|
priority: "high"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Implemented /api/auth/signin endpoint with Supabase. Returns user profile data along with access and refresh tokens."
|
|
|
|
- task: "Get User Profile"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "backend/server.py"
|
|
stuck_count: 0
|
|
priority: "medium"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Implemented /api/auth/user/{user_id} endpoint to fetch user profile from Supabase users table."
|
|
|
|
- task: "Blockchain Balance API"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "backend/server.py"
|
|
stuck_count: 0
|
|
priority: "medium"
|
|
needs_retesting: false
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Previously implemented. Fetches HEZ/PEZ balances from blockchain via localtunnel RPC."
|
|
|
|
frontend:
|
|
- task: "Language Selection Screen"
|
|
implemented: true
|
|
working: true
|
|
file: "frontend/src/screens/LanguageScreen.tsx"
|
|
stuck_count: 0
|
|
priority: "high"
|
|
needs_retesting: false
|
|
status_history:
|
|
- working: true
|
|
agent: "main"
|
|
comment: "Kurdish-themed design with gradient, sun logo, 6 language options. Navigation to HumanVerification screen working."
|
|
|
|
- task: "Human Verification Screen"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "frontend/src/screens/HumanVerificationScreen.tsx"
|
|
stuck_count: 0
|
|
priority: "high"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Simple math captcha (5+3) with Kurdish design theme. Navigates to Auth screen on correct answer."
|
|
|
|
- task: "Auth Screen (Sign In/Sign Up)"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "frontend/src/screens/AuthScreen.tsx"
|
|
stuck_count: 0
|
|
priority: "high"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Complete auth flow with toggle between Sign In and Sign Up. Integrates with AuthContext. Sign Up requires: first_name, last_name, phone, email, password, optional referral_code. Loading states implemented."
|
|
|
|
- task: "Auth Context & AsyncStorage"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "frontend/src/contexts/AuthContext.tsx"
|
|
stuck_count: 0
|
|
priority: "high"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Created AuthContext with signIn, signUp, signOut functions. User data persisted in AsyncStorage. Calls backend auth endpoints."
|
|
|
|
- task: "Home Screen - Profile & Navigation"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "frontend/src/screens/HomeScreen.tsx"
|
|
stuck_count: 0
|
|
priority: "high"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Bottom tab navigation (Home, Wallet, Citizens, Referral, Profile). Home tab shows profile image upload (base64), trust score badge, QR/notifications/settings buttons, announcement widget, and 30 quick action buttons."
|
|
|
|
- task: "Wallet Screen"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "frontend/src/screens/HomeScreen.tsx"
|
|
stuck_count: 0
|
|
priority: "medium"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "Displays HEZ and PEZ balance cards with logos (currently mock data). Send/Receive/Swap action buttons. Need to integrate with blockchain balance API."
|
|
|
|
- task: "Profile Image Upload (Base64)"
|
|
implemented: true
|
|
working: "NA"
|
|
file: "frontend/src/screens/HomeScreen.tsx"
|
|
stuck_count: 0
|
|
priority: "medium"
|
|
needs_retesting: true
|
|
status_history:
|
|
- working: "NA"
|
|
agent: "main"
|
|
comment: "expo-image-picker integrated. User can select profile image, converted to base64. Currently stored locally, need backend endpoint to save."
|
|
|
|
metadata:
|
|
created_by: "main_agent"
|
|
version: "1.0"
|
|
test_sequence: 1
|
|
run_ui: false
|
|
|
|
test_plan:
|
|
current_focus:
|
|
- "Supabase Authentication - Sign Up"
|
|
- "Supabase Authentication - Sign In"
|
|
- "Auth Screen (Sign In/Sign Up)"
|
|
- "Auth Context & AsyncStorage"
|
|
- "Home Screen - Profile & Navigation"
|
|
stuck_tasks: []
|
|
test_all: false
|
|
test_priority: "high_first"
|
|
|
|
agent_communication:
|
|
- agent: "main"
|
|
message: |
|
|
Implemented complete authentication flow with Supabase:
|
|
- Backend: signup, signin, get user profile endpoints
|
|
- Frontend: AuthContext with AsyncStorage persistence
|
|
- AuthScreen with loading states and error handling
|
|
- HomeScreen with profile image upload (base64) and bottom tab navigation
|
|
- 30 quick action buttons in HomeTab
|
|
- Wallet tab with HEZ/PEZ balance display (mock data currently)
|
|
|
|
Ready for backend testing. Need to test:
|
|
1. Auth endpoints (signup, signin)
|
|
2. User profile creation in Supabase
|
|
3. Token persistence
|
|
4. Navigation flow: Language -> HumanVerification -> Auth -> Home
|
|
|
|
After backend testing passes, frontend testing will validate UI flow. |