Seach Field ‐ Developer Task Breakdown - saayam-for-all/docs GitHub Wiki
Universal Search Functionality – Phase 1 (MVP)
Phase 0: Planning & Alignment
Review Functional Specification
-
Review the functional specification document in detail
-
Walk through:
- Search scope
- Supported entities
- Ranking rules
- Security constraints
-
Confirm MVP boundaries:
- No autocomplete
- No semantic or intent-based search
Define Searchable Entities & Fields
Finalize entity list:
- Help Requests
- Users
- Organizations
- Categories / Tags
- Companies (if applicable)
Identify searchable fields per entity:
- ID
- Title / Name
- Description
- Tags
Define Role-Based Search Access Matrix
-
Document which roles can search which entities
-
Define authorization rules per entity:
- Ownership
- Assignment
- Visibility / scope
-
Get sign-off from Product and Security teams
Phase 1: Backend – Authorization & Search Core
Implement Authorization Context Resolver
-
Extract user context from auth token/session:
user_idroleorganization_id- Permissions / scopes
-
Create a reusable authorization context object
Define Secure Search Query Scoping
- Implement authorization-aware filters per entity
- Ensure filters are applied before search execution
- Prevent full-table or unscoped searches
Design Unified Search Service
-
Create a centralized search service/module in Flask
-
Accept:
- Search text
- Authorization context
- Result limit
-
Return a unified result structure across all entity types
Implement Help Request Search (Secure by Design)
-
Query only help requests the user is authorized to access
-
Support partial keyword matching
-
Apply weighted relevance:
- ID and title matches (highest weight)
- Description matches (lower weight)
-
Validate that no unauthorized records are queried
Implement Search for Other Entities
- Users (role-filtered)
- Organizations (visibility-based)
- Categories / Tags (public or scoped)
- Companies (if applicable)
Phase 2: Ranking, Results & Navigation Logic
Implement Relevance Ranking
-
Apply weighted scoring:
- Exact ID matches
- Name / title matches
- Description matches
-
Normalize scores across entity types
Create Unified Ranked Result List
- Merge results from multiple entities
- Sort results by relevance score
- Enforce strict result limits for performance
Implement Single-Match Auto-Navigation Logic
-
If only one high-confidence result exists:
- Return navigation target directly
- Skip result list view
Define Navigation Targets
- Map each entity type to its corresponding detail/context page
- Include entity identifiers and routing metadata
Phase 3: API Contract & Integration
Define Search API Contract
- Endpoint:
/api/search
Request:
- Query text
Response:
- Entity type
- Entity ID
- Display title
- Navigation URL
- Relevance score
Integrate Role-Based Access Checks
- Validate that the API rejects unauthorized access attempts
- Ensure consistent authorization behavior across all entity types
Phase 4: Frontend Integration
Implement Universal Search Bar
- Add search input to the dashboard header
- Visible only to authenticated users
- Trigger search on submit / Enter key
Display Unified Search Results
- Render ranked results
- Show entity type indicators
- Support direct navigation on click
Handle Edge Cases
- No results found
- Input too short or invalid
- Single auto-navigation scenario
Phase 5: Performance & Security Validation
Optimize Query Performance
- Add database indexes on searchable fields
- Validate response time ≤ 500 ms
- Enforce strict result limits
Security Testing
- Verify search does not expose unauthorized entities
- Attempt cross-role searches
- Validate no metadata leakage
Logging & Monitoring
- Log search queries (excluding sensitive data)
- Track latency and error rates
- Monitor unusual or suspicious search patterns
Phase 6: QA & Validation
Create Test Scenarios
- Role-based search access
- Mixed keyword searches
- Partial matches
- Auto-navigation behavior
End-to-End Testing
- Backend and frontend integration flow
- Permission enforcement validation
UAT Sign-Off
- Product validation
- Security validation
- Performance validation
Final Deliverables
- Secure universal search API
- Dashboard-integrated search bar
- Role-aware search enforcement
- QA test cases and supporting documentation