feat(frontend): implement full UI — landing page, auth flows, dashboard, apply, and tailored application results#3
Merged
Conversation
| queryClient.invalidateQueries({ queryKey: ["resumes"] }); | ||
| }, | ||
| }); | ||
| } |
Collaborator
There was a problem hiding this comment.
I think the real API paths here don’t match the backend currently merged on main, so these requests might 404 as soon as mocks are disabled. Please could you align this layer to the existing backend contract before merging.
| </Card> | ||
| </div> | ||
| ); | ||
| } |
Collaborator
There was a problem hiding this comment.
also here, the screen expects resume fields that the current backend detail endpoint does not return. pls can we map this page to the actual response shape?
Collaborator
Collaborator
|
since @iamwales changes addresses some of the concerns here, lgtm |
ugomichael33
approved these changes
Apr 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR delivers the complete frontend implementation for TalentStreamAI, built on Next.js 15, Tailwind CSS, shadcn/ui primitives, Clerk (auth), and TanStack Query (data fetching).
What's included
Auth & routing
[[...sign-in]],[[...sign-up]])createRouteMatcher+auth.protect()to guard all authenticated routes (/dashboard,/apply,/applications,/resume,/onboarding)Shared app shell
(app)route group wrapping all authenticated pages with a sharedAppShellnavbar<UserButton />for sign-outLanding page (full redesign)
Onboarding
/onboardingpage for first-time users to upload their base resume (PDF/DOCX/TXT)/applyon completion; "Skip for now" sends to dashboardDashboard
Apply page (tailored application)
Applications & Resumes
Data & API layer
lib/types.ts— shared TypeScript types (Application,Resume,TailorResponse,MatchAnalysis,DraftEmail, etc.)lib/api.ts—apiFetch<T>()helper attaching Clerk JWT to every request, typedApiErrorlib/mock-data.ts— full mock API with realistic data, gated byNEXT_PUBLIC_USE_MOCKSlib/hooks/use-api.ts— TanStack Query hooks for all data reads and mutations; automatically switches from mocks to real API whenNEXT_PUBLIC_USE_MOCKS=falsecomponents/providers.tsx—QueryClientProviderwrapperUI primitives (shadcn/ui)
Added:
Button,Card,Input,Textarea,Label,Badge,Tabs,Skeleton,SeparatorAdded domain components:
MatchBadge(score → green/amber/red),StatusBadge(application status)How to run locally