Commit graph

65 commits

Author SHA1 Message Date
Ashwin Kumar Sivakumar
f55a2dad77 feat: AI Credits Admin Panel
Some checks failed
build-and-release / build (push) Failing after 1m6s
- Add AiCreditsAdmin component for managing AI credits
- View user balance with detailed credit breakdown
- Transaction history (ledger) viewer with pagination
- Manual credit adjustment (ADD/DEDUCT) with audit reasons
- Reconcile tab for generating reports
- Integrate with backend /admin/ai-credits endpoints
2026-07-06 01:58:29 +05:30
Ashwin Kumar Sivakumar
da7898e083 fix(dashboard): change all API endpoints from /api/gateway to /api
Some checks failed
build-and-release / build (push) Failing after 1m17s
2026-07-05 18:29:07 +05:30
Ashwin Kumar Sivakumar
09e26d2935 fix(profile): change API path from /api/gateway to /api
Some checks failed
build-and-release / build (push) Failing after 1m11s
2026-07-05 18:00:39 +05:30
Ashwin Kumar Sivakumar
d7810ace96 fix(auth): change all /api/gateway/auth endpoints to /api/auth for forgot-password, login, and dashboard
Some checks failed
build-and-release / build (push) Failing after 1m6s
2026-07-05 16:25:32 +05:30
Ashwin Kumar Sivakumar
cbe49ff5ad fix: update CTAs and fix company signup validation
- Update homepage CTAs to point to new signup URLs
- Fix company signup to not validate lastName
- Add customer signup page
- Fix professionals page CTA
2026-07-03 17:55:45 +05:30
Ashwin Kumar Sivakumar
50a27aaed0 Remove dead fake card-entry UI from AI credits checkout
This form (card number/expiry/CVV/name) was never wired to anything -
PayU collects card details on its own hosted page. Now that AI credit
purchases actually open a real PayU checkout instead of faking a
payment_id/signature, this leftover UI was just misleading.
2026-07-02 18:58:51 +05:30
Tracewebstudio Dev
43f09b78d2 feat: notifications page, auto-apply settings, customer response profiles, job status UI
- NotificationsPage: full paginated notification list with unread filter, mark read, load more
- SettingsPage: AI auto-apply section for job seekers (toggle, preferences, skills/titles/locations, salary range)
- CustomerResponsesPage: enriched professional response cards with avatar, bio, skills, location
- CompanyJobsPage: show rejection reason banner and pending-approval notice on job cards
- NotificationBell: fix "View all" link to /dashboard?nav=notifications (deep-link support)
- dashboard.tsx: ?nav= param reads sidebar page on mount; Notifications added to all role sidebars
- PayU integration: payu.ts lib, payu-return route, wallet buy/invoice pages, marketplace route
- Razorpay removed, replaced by PayU across payments flow
- ProfilePage: photo upload UI with avatar preview for all roles
- PortfolioPage: showcase image upload with file picker and preview
- CompanyApplicationsPage: applicant profile snapshot with avatar, headline, skills, resume download
- profile-fields-config: removed resume_doc from job seeker (resume is now AI-generated)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-02 13:33:54 +02:00
Tracewebstudio Dev
ab054884eb Integrate Razorpay checkout flow 2026-06-26 20:50:39 +02:00
Ashwin Kumar Sivakumar
89ee3f8067 fix(ai): polish ask ash chat widget 2026-06-15 17:04:02 +05:30
Ashwin Kumar Sivakumar
5973e6216e fix(ai): align frontend with backend ai routes 2026-06-15 09:39:26 +05:30
Ashwin Kumar Sivakumar
5f535cba59 fix(ai): use authenticated ask ash chat path 2026-06-15 06:50:09 +05:30
Ashwin Kumar Sivakumar
b5d286ada3 Merge branch 'high-performance' of https://github.com/Traceworks2023/nxtgauge-frontend-solid into high-performance 2026-06-15 06:19:05 +05:30
Ashwin Kumar Sivakumar
491ade57c0 feat(ai): integrate AI usage/credits into dashboard and chat widget 2026-06-15 06:19:05 +05:30
Tracewebstudio Dev
3b8f75d836 feat: add AI usage widget to user dashboard
- Add AiUsageWidget showing:
  - Current plan
  - Monthly usage vs limit
  - Daily usage vs limit
  - Addon balance
  - Renewal date
- Widget added to all role dashboards
2026-06-14 20:28:32 +02:00
Tracewebstudio Dev
031d332a1d feat: add cover letter generation and improve AI chat widget
- Add AI cover letter generation button on JobSeekerJobsPage
- Generate cover letters via /api/ai/generate-cover-letter
- Show generated cover letter preview before applying
- Update AI Chat Widget quick actions to focus on support & KB search
- Update welcome message to explain Ask Ash capabilities
2026-06-14 18:04:47 +02:00
Ashwin Kumar Sivakumar
4c61bcaf31 fix: remove DPR scaling from CaptchaCanvas to fix zoomed-in appearance
- Fixed canvas dimensions to 176x52 pixels (no DPR scaling)
- All drawing operations now use fixed pixel values
- Prevents captcha from appearing zoomed in on high-DPI displays
- Characters, lines, and circles are now properly positioned within bounds
2026-06-12 05:03:54 +05:30
Ashwin Kumar Sivakumar
aabfacc735 fix: route client /api/* through /api/gateway/* proxy\n\nLogin, signup, forgot-password, dashboard, contact, help-center, and all dashboard component fetches were calling bare /api/* paths. The SolidStart server has no /api/auth/*, /api/support/*, or /api/kb/* handlers -- only /api/gateway/[...path] proxies to the Rust gateway. So those calls returned HTML (SPA catch-all), the JSON parse threw silently, and the buttons looked dead. Sign In / Sign Up / Forgot Password all appeared to be no-ops.\n\nThis routes every client-side fetch through the existing gateway proxy, matching the pattern already used by src/lib/api.ts.\n\nAlso fixes hardcoded test121 -> test111 in canonical/og:url tags across index, professionals, help-center, and RoleLandingPage. 2026-06-11 14:10:10 +05:30
Ashwin Kumar Sivakumar
d888466f19 feat: Add Ask Ash AI credit components 2026-05-29 20:47:15 +05:30
Tracewebstudio Dev
eee67d9ff7 Update components (CaptchaCanvas, DashboardLayout, MyDashboardPage, PortfolioPage, ProfilePage), form-validation, routes (dashboard, login, signup), app.css, add e2e tests and helpers, add manual test files and config 2026-05-08 15:34:49 +02:00
Tracewebstudio Dev
8b90959f1e chore: update AI chat widget - add logo, remove powered by gemma 2026-05-05 20:14:56 +02:00
Tracewebstudio Dev
eb61206810 feat: dashboard session timer and verification UI improvements
- Add SessionTimer component with 13min warning / 15min idle auto-logout
- Move VerificationSubmissionGuide from ProfilePage to MyDashboardPage
- Remove duplicate VerificationSubmissionGuide from ProfilePage
- Fix 'Go to My Portfolio' button to navigate properly
- Change error messages to 'Service unavailable' for failed widget loads
- Brand color updates for VerificationSubmissionGuide
2026-05-05 17:22:04 +02:00
Tracewebstudio Dev
0d63bb304e Add comprehensive test infrastructure and AI guardrails
- Add Vitest unit tests for AiChatWidget component
- Add Playwright E2E tests: ai-chat-widget, api, security, guardrails
- Add AI guardrails tests validating no phone/email leaks from Ollama
- Add security tests: auth, rate limiting, input validation, token handling
- Add API tests for AI endpoints and authentication
- Fix playwright.config.ts reporter path conflict
- Update CompanyJobsPage with AI generate buttons (orange icon, loading state)
- Fix AiChatWidget accessibility (role=dialog, aria-label, aria-modal)
- Add app.css spin animation for AI loading spinner
- Add Gitea Actions workflow for nightly CI tests
- Add TESTING.md documentation
2026-05-01 02:54:25 +02:00
Tracewebstudio Dev
d7ddd3d9e0 fix(ui): wire and restyle dashboard notifications dropdown 2026-04-29 11:51:37 +02:00
Tracewebstudio Dev
d3f3850e1d fix(wallet): fetch pricing by concrete role key 2026-04-29 09:59:41 +02:00
Tracewebstudio Dev
f386b0c298 chore: checkpoint workspace updates 2026-04-26 23:58:43 +02:00
Tracewebstudio Dev
35abb6e7aa fix: add Authorization header to all dashboard apiFetch calls; change Buy Credits/Buy Now buttons to BTN_ORANGE 2026-04-22 01:32:43 +02:00
Tracewebstudio Dev
6a4688c854 style: match role dashboard UI to admin solid dashboard - card padding 14px radius 16px, input height 36px, label 11px uppercase, tab underline style, title 18px #111827 2026-04-22 01:26:36 +02:00
Tracewebstudio Dev
188de040ae fix: MyDashboardPage reads role from URL directly, skips stale prop closure; loadRoleBundle uses auth; no fallback config fetch 2026-04-22 01:13:56 +02:00
Tracewebstudio Dev
fe81ce54c7 feat: add floating AI chat widget to all pages
- Add AiChatWidget component with floating button in bottom-right
- Routes to /api/ai/chat/message for chat, ticket, form, cover letter intents
- Quick action buttons for common tasks
- Appears on all public pages via app.tsx root layout
- Appears on all dashboard pages via DashboardShell
2026-04-15 20:03:47 +02:00
Tracewebstudio Dev
4c9ce597f8 fix: remove duplicate/malformed fields in ProfilePage BASIC_FIELDS 2026-04-15 14:35:19 +02:00
Tracewebstudio Dev
5922b98c93 fix: update forms to match DB schema - first_name/last_name, role keys 2026-04-15 06:23:28 +02:00
Tracewebstudio Dev
c2cbafc159 Wire external runtime preview mode and backend data in dashboard preview 2026-04-15 00:15:11 +02:00
Tracewebstudio Dev
a94498e3bf fix: update vitest config and msw v2 API, remove orphaned tests 2026-04-13 01:36:15 +02:00
Ashwin Kumar
e2c91fb413 fix(build): restore dashboard layout + api client compatibility 2026-04-10 20:20:00 +02:00
Ashwin Kumar
f32cefeab9 feat(frontend): add lead requests, accepted leads, checkout, invoice detail, notification bell
- Add Lead Requests page with filters and cancel functionality
- Add Accepted Leads page with contact details and WhatsApp integration
- Add Buy Tracecoins checkout flow with Beeceptor payment
- Add Invoice Detail page with GST breakdown
- Add NotificationBell component with 30s polling
- Add manual E2E test script
- Update Playwright tests for company verification flow
2026-04-10 03:36:26 +02:00
Ashwin Kumar
4795ef2910 feat: wire Credits page to pricing management and payment APIs
Updated CreditsPage with full pricing and transaction support:
- Load pricing packages from /api/packages (role-specific)
- Create payment orders via /api/payments/create-order
- Display transaction history from wallet ledger + payments
- New tabbed interface: Overview, Buy Credits, Transactions
- Shows package details: name, price, tracecoins amount
- Format currency in INR with proper locale

Data sources:
- Packages: GET /api/packages?role={role_key}
- Wallet: GET /api/{prefix}/wallet/me
- Ledger: GET /api/{prefix}/wallet/me/ledger
- Payments: POST /api/payments/create-order
2026-04-10 01:38:44 +02:00
Ashwin Kumar
b242161fd7 docs: add API endpoint documentation for all role dashboard pages
Documented real backend API connections for:
- Company: Jobs, Applications, Shortlisted Candidates
- Customer: Requirements, Responses
- Professional: Leads, Responses (all profession types)
- Job Seeker: Jobs, Applications, Saved Jobs

All pages already wired to real data from backend.
2026-04-10 01:25:49 +02:00
Ashwin Kumar
30750f3797 docs: clarify real data implementations are wired to backend APIs
All job seeker pages are already connected to real APIs:
- Jobs: /api/jobseeker/jobs (real company job postings)
- Applications: /api/jobseeker/applications (my applied jobs)
- Saved Jobs: Custom data storage for bookmarked jobs
- Apply: POST /api/jobseeker/jobs/{id}/apply

Dashboard shows real data from backend, not mock preview.
2026-04-10 01:21:36 +02:00
Ashwin Kumar
7671ad8e55 feat: improve Help Center UI with mixed dark/light theme and structured content
- Updated Help Center with dark hero and light content sections
- Added ArticleContent component for rendering structured content blocks
- Updated seed data with detailed articles matching admin KB categories
- Fixed article alignment and spacing issues
- Uses ContentBlock[] instead of HTML strings for type-safe content
2026-04-09 21:52:16 +02:00
Ashwin Kumar
b8faf752e9 feat: align external dashboards, profile settings split, and role flows 2026-04-08 22:40:43 +02:00
Ashwin Kumar
eee2c367ca feat: add notification bell polling to dashboard shell
- Poll /api/me/notifications/unread-count every 30 seconds
- Show orange dot badge when unread count > 0
- Matches PRD requirement for real-time notifications
2026-04-06 18:23:12 +02:00
Ashwin Kumar
bbf11b91e1 feat(dashboard): real My Profile, My Portfolio, Verification pages
- DashboardShell: sticky sidebar + header wrapper with shared style tokens
- ProfilePage: 3-tab form (Basic, Documents, Settings) per role, save/submit-for-verification
- PortfolioPage: full CRUD wired to /api/:prefix/portfolio/me endpoints
- VerificationStatusPage: 7-state status display with progress timeline and resubmit flow
- dashboard.tsx: REAL_PAGES routing intercepts these three sidebar items and renders
  real components instead of DashboardDesignPreview mock

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-06 17:20:48 +02:00
Ashwin Kumar
ed68a636f5 feat(dashboard): add notification bell with unread count polling
- Add unreadCount state and polling interval (30s) to DashboardDesignPreview
- Fetch from GET /api/me/notifications/unread-count with auth
- Display orange dot badge on bell when unreadCount > 0
- Uses existing bell icon in header; integrates with notifications page

Implements PRD item: Notification bell on dashboard
2026-04-06 15:06:29 +02:00
Ashwin Kumar
3703d66df5 feat: auth provider, route guards, forgot password, API client
- Add AuthProvider context, RequireAuth guard
- Create API client with endpoint helpers
- Add forgot-password route wired to backend
- Remove dummy login button, add forgot-password link
- Dashboard: RequireAuth, auth context integration
- DashboardDesignPreview: replace Beeceptor with internal payments API
- DashboardDesignPreview: add coupon state, validation, apply
- DashboardDesignPreview: credit wallet on verify, ledger entry
- DashboardDesignPreview: adjust total with discount
- misc: getToken import, API constant
- fix: token storage (use getToken)
2026-04-06 08:24:22 +02:00
Ashwin Kumar
e5406a0061 feat: add auth context, route guards, password reset, and API client
- Add AuthProvider context and RequireAuth route guard
- Create API client with all endpoint helpers
- Add forgot-password route wired to backend reset endpoints
- Remove dummy login button from login page
- Wire dashboard to auth context for user data
- Enhance profile save to send all fields
- Wire profile submit-for-verification to backend API
2026-04-06 06:19:23 +02:00
Ashwin Kumar
19a0850c49 feat: integrate dynamic help center with runtime-configured knowledge base 2026-04-06 03:33:29 +02:00
Ashwin Kumar
d008cd184d feat: improve public role pages and help center content 2026-04-06 01:47:05 +02:00
Ashwin Kumar
564a383a10 Wire user dashboard to real APIs — profile, credits, leads, requirements, jobs
- dashboard.tsx: fetch session for real user name/ID/role, fallback to
  localStorage; show dashboard with role defaults when runtime config unavailable
- DashboardDesignPreview: add liveData prop; createResource for credits,
  marketplace, lead requests, customer requirements, jobs, and profile
- Profile form: inputs now track state via profileFormData signal; pre-filled
  from GET /api/${prefix}/profile/me; Save Changes PATCHes real endpoint
- Lead actions: Send Request POSTs to /api/${prefix}/leads/request; Cancel
  DELETEs /api/${prefix}/leads/requests/{id}; both refetch after completion
- Requirement submit: POSTs to /api/customers/requirements then submits for approval
- Replace hardcoded "Alex" with real session name; credits from wallet balance API
- Fix launch.json PATH so npm is found in sh shell

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-05 21:13:54 +02:00
Ashwin Kumar
a8ad2b0620 chore: sync latest dashboard and role flow updates 2026-04-05 16:52:02 +02:00
Ashwin Kumar
f5d294abbf Add unread notification badge and poll to dashboard layout
- Import onCleanup, getAuthHeader in DashboardLayout
- Poll /api/me/notifications every 60s for unread_count
- Show orange badge on bell icon when unread > 0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 18:13:14 +02:00