Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
320e97c
feat: full platform implementation — 25 domain routers + 10 backend s…
devin-ai-integration[bot] Jun 3, 2026
0a07210
feat: implement all remaining platform gaps — 18 routers + 59 service…
devin-ai-integration[bot] Jun 3, 2026
58e9ab9
fix: production readiness — Go compilation, test infra, config extern…
devin-ai-integration[bot] Jun 3, 2026
daf45ab
feat: P1+P2 production readiness — CI/CD, staging, accessibility, Ope…
devin-ai-integration[bot] Jun 3, 2026
eaec136
fix(ci): remove references to untracked directories
devin-ai-integration[bot] Jun 3, 2026
5ee6f49
fix(ussd-gateway): remove unused time import
devin-ai-integration[bot] Jun 3, 2026
8920e7f
feat: commit frontend app, server, and test files to git
devin-ai-integration[bot] Jun 3, 2026
27e0a1d
feat: production deployment, monitoring, and documentation
devin-ai-integration[bot] Jun 3, 2026
5660d3e
feat: extract InsurePortal — pure insurance platform codebase
devin-ai-integration[bot] Jun 3, 2026
0ebb53e
fix: production readiness P0/P1/P2 — build configs, tests, services, …
devin-ai-integration[bot] Jun 3, 2026
dfe0450
fix: correct underwriting risk threshold and KYC test data for accura…
devin-ai-integration[bot] Jun 3, 2026
a5acca6
fix: production readiness P1-P3 — banking cleanup, test expansion, in…
devin-ai-integration[bot] Jun 3, 2026
5ebcd3d
feat: add InsurePortal PWA dashboard — App.tsx, styling, and infrastr…
devin-ai-integration[bot] Jun 3, 2026
f64bacb
fix: resolve all 22 crashing pages — 109/109 routes now render withou…
devin-ai-integration[bot] Jun 4, 2026
ab771e5
feat: implement React Native mobile app with offline-first + Telegram…
devin-ai-integration[bot] Jun 4, 2026
1f0ec8e
fix: WhatsApp bot branding (NGApp → InsurePortal) + Telegram bot TS c…
devin-ai-integration[bot] Jun 4, 2026
bc40ec8
feat: replace mock tRPC server with PostgreSQL-backed queries + seed …
devin-ai-integration[bot] Jun 4, 2026
c152637
feat: add 155 missing tRPC route handlers — full frontend↔backend cov…
devin-ai-integration[bot] Jun 4, 2026
8b0d4da
fix: return paginated object shape for naicom.filings to match fronte…
devin-ai-integration[bot] Jun 4, 2026
6359278
feat: comprehensive ERPNext/ERP integration with real sync logic
devin-ai-integration[bot] Jun 4, 2026
b39c183
feat: implement 10 insurance business logic engines + comprehensive f…
devin-ai-integration[bot] Jun 4, 2026
c73f832
feat: admin config center, approval workflows, NAICOM reports, data f…
devin-ai-integration[bot] Jun 4, 2026
8b73daf
feat: wire 30+ stub routes to PostgreSQL + payment gateways + trial b…
devin-ai-integration[bot] Jun 4, 2026
341d27f
fix: align telematics/fraud/loyalty route response shapes with fronte…
devin-ai-integration[bot] Jun 4, 2026
3bee36e
feat: real AI/ML stack (4 trained PyTorch models) + login/signup with…
devin-ai-integration[bot] Jun 4, 2026
7338d39
feat: auth features (logout, reset password, 2FA) + tRPC perf optimiz…
devin-ai-integration[bot] Jun 4, 2026
42dc492
feat: eliminate all 162 mock routes + bcrypt auth + IFRS 17 + NAICOM …
devin-ai-integration[bot] Jun 5, 2026
d16b9a2
feat: production-grade IFRS 17 engine — discount curves, VFA/GMM/PAA,…
devin-ai-integration[bot] Jun 5, 2026
358e1df
feat: production-grade NAICOM/Reinsurance/USSD engines — 15 new route…
devin-ai-integration[bot] Jun 5, 2026
022d3ec
feat: production hardening — eliminate all hardcoded routes, add heal…
devin-ai-integration[bot] Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
78 changes: 78 additions & 0 deletions .agents/skills/testing-left-nav/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---
name: testing-left-nav-improvements
description: Test the left nav sidebar features (search, favorites, recents, collapsible groups) in the InsurePortal customer portal. Use when verifying sidebar UI changes or localStorage persistence.
---

# Testing Left Nav Improvements

## Prerequisites
- Dev server running on localhost:5002 (or configured port)
- Chrome browser available for interaction

## Devin Secrets Needed
- None — the app runs in demo mode with no authentication required

## Setup
1. Start the dev server: `cd /home/ubuntu/repos/NGApp/customer-portal-full && pnpm dev`
2. Navigate to `http://localhost:5002/dashboard`
3. Clear localStorage before testing for clean state:
```js
localStorage.removeItem('insureportal_recent_pages');
localStorage.removeItem('insureportal_favorites');
localStorage.removeItem('insureportal_collapsed_groups');
```
4. Refresh the page after clearing localStorage

## Key Files
- `customer-portal-full/client/src/components/UnifiedLayout.tsx` — Main sidebar component with all 3 features
- Custom hooks: `useRecentPages()`, `useFavorites()`, `useCollapsedGroups()` (all in UnifiedLayout.tsx)
- localStorage keys: `insureportal_recent_pages`, `insureportal_favorites`, `insureportal_collapsed_groups`

## Test Procedures

### 1. Search Filtering
- Click the search bar (placeholder: "Search... (Ctrl+K)")
- Type "claims" — expect exactly 6 results across 2 groups (Claims Centre + Intelligent Services)
- Clear search (click X) — all groups should reappear
- Press Ctrl+K — search bar should focus from anywhere on the page

### 2. Favorites
- Hover a nav item to reveal the star icon on the right side
- Click the star to favorite — "Favorites" section should appear at the top of the sidebar
- The star icon might not have its own devinid — use JavaScript to click:
```js
const items = document.querySelectorAll('.group\\/item');
for (const item of items) {
if (item.textContent.includes('Insurance Marketplace')) {
item.querySelectorAll('button')[1].click();
break;
}
}
```
- Refresh the page — favorites should persist (localStorage)
- Click the star again to unfavorite — Favorites section should disappear entirely

### 3. Recently Visited
- Click 3+ nav items via the sidebar
- "Recently Visited" section should appear below Favorites (or at top if no favorites)
- Items shown in most-recently-used (MRU) order, limited to 3 displayed
- Recently Visited persists across page refresh

### 4. Collapsible Groups
- Click a group header (e.g., "Insurance Products") to collapse
- All child items should hide; header remains visible with chevron indicator
- Refresh page — collapsed state should persist
- Click header again to re-expand — all items reappear

## Troubleshooting
- **Blank white page:** Check for `process is not defined` error. The vite.config.ts needs `define: { 'process.env': JSON.stringify({ NODE_ENV: 'development', DEMO_MODE: 'true' }) }` — this was fixed in PR #44.
- **Star icon not clickable via browser tool:** The star button uses CSS `opacity-0 group-hover/item:opacity-100` so it might not appear as a separate devinid. Use the JavaScript approach above.
- **Role switching:** Use the "Switch Role (Demo)" dropdown at the bottom of the sidebar to test different roles (Customer, Agent, Underwriter, Administrator). Each role shows a different subset of the 107 nav items.
- **Sidebar not visible:** The sidebar might be collapsed. Click the hamburger/toggle button in the header to expand it.

## Pass/Fail Criteria
- Search must filter items in real-time and show accurate result count
- Favorites must appear at top of sidebar and persist across refresh
- Recently Visited must track pages in MRU order and persist
- Collapsible groups must toggle and persist collapsed state
- All features must work independently and together without conflicts
22 changes: 22 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
node_modules
.pnpm-store
dist
.git
.github
coverage
*.log
.env*
.DS_Store
Thumbs.db
tb-sidecar/tb-sidecar
tb-sidecar/vendor
offline-queue
analytics-service/__pycache__
analytics-service/.venv
resilience-agent/vendor
k6
tests/integration
docs
archives
*.tar.gz
*.zip
15 changes: 15 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
NODE_ENV=development
PORT=5002
DATABASE_URL=postgres://ubuntu:ubuntu@localhost:5432/ngapp
POSTGRES_URL=postgres://ubuntu:ubuntu@localhost:5432/ngapp
REDIS_URL=redis://localhost:6379
REDIS_HOST=localhost
REDIS_PORT=6379
DEV_AUTH_BYPASS=true
JWT_SECRET=dev-secret-key-for-local-testing-only
APP_URL=http://localhost:5002
ALLOWED_ORIGINS=http://localhost:5002
KEYCLOAK_URL=http://localhost:8080
KEYCLOAK_REALM=ngapp
KEYCLOAK_CLIENT_ID=ngapp-client
KEYCLOAK_CLIENT_SECRET=dev-secret
Loading