Commit graph

182 commits

Author SHA1 Message Date
Ashwin Kumar
f1e68632ad fix(docker): add .env file and API URLs for build
- Copy .env file before npm install

- Set VITE_API_URL and PUBLIC_API_URL env vars

- Use npm ci instead of npm install
2026-04-10 18:18:20 +02:00
Ashwin Kumar
dc3c53e3e7 fix(docker): use npm ci and set NODE_ENV=production
- Use npm ci for cleaner installs

- Set NODE_ENV=production

- Fallback to npm install if npm ci fails
2026-04-10 18:17:36 +02:00
Ashwin Kumar
c68494d79b fix(docker): revert to node:20-slim with 3GB memory
- Use node:20-slim for builder stage (better memory handling)

- Keep node:20-alpine for runtime (smaller image)

- Increase memory to 3072MB for build
2026-04-10 18:11:35 +02:00
Ashwin Kumar
c3dc751df9 fix(woodpecker): remove detect-changes step - always build 2026-04-10 17:56:41 +02:00
Ashwin Kumar
5d73c7046a fix(docker): use Alpine and reduce memory for build
- Switch from node:20-slim to node:20-alpine for smaller image

- Reduce NODE_OPTIONS memory from 4096 to 2048

- Use Alpine apk instead of apt-get
2026-04-10 17:46:17 +02:00
Ashwin Kumar
47b129c0d7 fix(woodpecker): handle shallow git clone for change detection 2026-04-10 17:42:53 +02:00
Ashwin Kumar
21de1cb7e4 feat(woodpecker): use internal registry docker-registry.registry.svc.cluster.local:5000 2026-04-10 17:39:34 +02:00
Ashwin Kumar
a7013c7093 chore: trigger woodpecker build
Empty commit to re-trigger CI pipeline
2026-04-10 12:05:34 +02:00
Ashwin Kumar
349bd8f961 perf(woodpecker): add Docker layer caching for faster builds 2026-04-10 05:43:43 +02:00
Ashwin Kumar
cc53e7d43e fix(woodpecker): remove deploy step - deployment handled externally 2026-04-10 05:34:51 +02:00
Ashwin Kumar
85b9ca810b fix(woodpecker): use exit code 78 to skip builds instead of evaluate 2026-04-10 05:27:33 +02:00
Ashwin Kumar
89b78b59aa fix(woodpecker): fix secrets syntax - use environment with from_secret 2026-04-10 05:24:37 +02:00
Ashwin Kumar
f47c681073 feat(woodpecker): add change detection and selective builds
- Add detect-changes step to check for code changes

- Add multiple tags (commit SHA, latest, branch-latest)

- Add Kubernetes deployment step

- Skip build/deploy if no relevant file changes

- Consistent with backend CI pipeline
2026-04-10 05:21:37 +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
6f88aa9627 fix: Chrome rendering and scrolling issues
- Changed overflow-x: clip to overflow-x: hidden for better Chrome support
- Changed auth-layout align-items from center to start to prevent clipping
- Added overflow-y: auto and overflow-x: hidden to body for consistent scrolling

Fixes issues where header and signup form were not visible in Chrome
and users were unable to scroll.
2026-04-10 02:48:46 +02:00
Ashwin Kumar
f27713a136 docs: document that DashboardDesignPreview uses real APIs, not mock data
DashboardDesignPreview fetches live data from 12+ API endpoints:
- Wallet/credits balance
- Marketplace leads
- Lead requests
- Customer requirements
- Jobs
- User profile
- Professional services
- Portfolio
- User roles
- Pricing packages
- Knowledge base
- Notification counts (polling every 30s)

Key insight: Preview shows REAL DATA with generic UI, not mock data.
2026-04-10 01:53:02 +02:00
Ashwin Kumar
ba38d12331 docs: complete sidebar status for all 4 role types
Documented all 48 sidebar items across all roles:
- Job Seeker: 12/12 real
- Company: 12/12 real
- Customer: 12/12 real
- Professional: 12/12 real

Each item includes:
- Component name
- Status (all REAL)
- API endpoints used
- Features available

Common pages detail:
- Explore Nxtgauge (role switching)
- Settings (password, notifications, delete)
- Switch Services (quick role switch)
- Credits (wallet, packages, transactions)
2026-04-10 01:51:00 +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
c1c9e79945 docs: document common pages wiring status and missing pricing feature
Common pages status:
- Credits: Partial (balance only, missing pricing/packages)
- Explore Services: Fully wired
- Settings: Fully wired
- Help Center: Fully wired
- Switch Services: Basic
- Logout: Fully wired

Identified missing pricing/payment flow for credits.
2026-04-10 01:32:06 +02:00
Ashwin Kumar
b706c8a828 docs: document all sidebar items are wired to real data 2026-04-10 01:29:15 +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
01d37fb109 fix: add missing @tailwindcss/vite dependency 2026-04-09 05:41:11 +02:00
Ashwin Kumar
fa7683477f fix: correct invalid package versions in devDependencies 2026-04-09 05:00:34 +02:00
Ashwin Kumar
e81265e4d9 fix: install python3/make/g++ for native npm package builds 2026-04-09 03:20:29 +02:00
Ashwin Kumar
aa6cc97f12 ci: trigger pipeline 2026-04-09 03:09:37 +02:00
Ashwin Kumar
d946dde999 ci: trigger pipeline 2026-04-09 03:00:14 +02:00
Ashwin Kumar
c7d0c3dcd0 fix: use node:20-slim builder to fix Rollup musl/glibc native binary issue 2026-04-09 02:16:41 +02:00
Ashwin Kumar
c97d54bade fix: increase Node memory and skip scripts in Docker build 2026-04-09 02:08:03 +02:00
Ashwin Kumar
36d26b5439 fix: use npm install --legacy-peer-deps in Docker build 2026-04-09 01:19:44 +02:00
Ashwin Kumar
c3a03b7829 ci: trigger pipeline 2026-04-09 01:16:44 +02:00
Ashwin Kumar
a162e85d1e ci: pin docker-buildx to 5.0.0 to match PLUGINS_PRIVILEGED allowlist 2026-04-09 01:11:14 +02:00
Ashwin Kumar
b73c99b264 ci: trigger pipeline 2026-04-09 01:10:02 +02:00
Ashwin Kumar
9125a7ceab ci: revert privileged flag 2026-04-09 01:03:36 +02:00
Ashwin Kumar
d10bd7a17d ci: add privileged flag for docker-buildx plugin 2026-04-09 01:01:53 +02:00
Ashwin Kumar
a52eb04c64 ci: trigger pipeline 2026-04-09 01:00:55 +02:00
Ashwin Kumar
1248daf87f ci: add Woodpecker CI pipeline and Dockerfile for containerized deployment
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 00:09:02 +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
f990b9a9e0 feat: comprehensive testing infrastructure (without workflow pending token scope)
- Add vitest, Playwright, ESLint, Prettier configs
- Add unit tests and e2e accessibility/visual tests
- Add MSW mocks and test setup
- Update scripts and .gitignore
- Install required dev dependencies

Note: GitHub Actions workflow will be added after token scope is granted.
2026-04-08 02:43:29 +02:00
Ashwin Kumar
86e1bbd268 fix: resolve solid-markdown build error
- Update solid-markdown from ^0.5.0 to ^2.1.1 (old version no longer exists)
- Replace Markdown component with innerHTML rendering for help center articles
- Build now succeeds without errors
2026-04-07 12:55:15 +02:00
Ashwin Kumar
d3630dbaa8 feat: use solid-markdown for Help Center article rendering
- Added solid-markdown dependency
- Replaced manual paragraph splitting with Markdown component
- Articles now render proper markdown (headings, lists, links, etc.)
- Improves readability and matches reference implementation
2026-04-06 18:39:32 +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