How anup4944/resume-builder works
This is a resume-building web application: users create and edit resume content, preview its formatted output, and have changes saved; resume limits, premium customization, and subscriptions add monetization controls. The tree and source index also show AI-assisted writing and Stripe billing/webhook handling. Several route and form implementations were not sampled, so uncertain runtime links are omitted rather than inferred; indexed imports support the cited connections below.
Main entry points: page.tsx Resume library · actions.ts Resume persistence · subscription.ts Subscription lookup · prisma.ts Application database
Components 25
Resume authoring
- Resume library
src/app/(main)/resumes/page.tsx - Resume item actions
src/app/(main)/resumes/ResumeItem.tsx - Create resume
src/app/(main)/resumes/CreateResumeBtn.tsx - Resume editor
src/app/(main)/editor/page.tsx - Resume forms
src/app/(main)/editor/forms - Resume persistence
src/app/(main)/editor/actions.ts - Autosave
src/app/(main)/editor/useAutoSaveResume.tsx - Preview controls
src/app/(main)/editor/ResumePreviewSection.tsx - Resume preview
src/components/ResumePreview.tsx - AI writing tools
src/app/(main)/editor/forms
Accounts and access
- Sign-in and sign-up
src/app/(auth)
Subscriptions and billing
- Subscription level
src/app/(main)/SubscriptionLevelProvider.tsx - Plan permissions
src/lib/permission.ts - Subscription lookup
src/lib/subscription.ts - Billing page
src/app/(main)/billing/page.tsx - Billing actions
src/app/(main)/billing/actions.ts - Upgrade prompt
src/components/premium/PremiumModal.tsx - Checkout actions
src/components/premium/actions.ts - Stripe webhook
src/app/api/stripe-webhook/route.ts
Shared runtime
- Application database
src/lib/prisma.ts - Resume validation
src/lib/validation.ts - Resume data mapping
src/lib/utils.ts
Other components
- User
- Stripe
- OpenAI service
Connections 35
- User → Resume library: opens library
- Resume library → Resume item actions: renders items
src/app/(main)/resumes/page.tsx - Resume library → Create resume: offers creation
src/app/(main)/resumes/page.tsx - Resume library → Application database: loads resumes
src/app/(main)/resumes/page.tsx - Resume library → Subscription lookup: checks plan
src/app/(main)/resumes/page.tsx - Resume library → Plan permissions: checks limits
src/app/(main)/resumes/page.tsx - Resume item actions → Resume preview: renders preview
src/app/(main)/resumes/ResumeItem.tsx - Resume item actions → Resume data mapping: uses helpers
src/app/(main)/resumes/ResumeItem.tsx - Resume item actions → User: offers editing
- User → Resume editor: edits resume
- Resume editor → Resume forms: presents forms
- Resume editor → Autosave: autosaves changes
- Autosave → Resume persistence: calls save
src/app/(main)/editor/useAutoSaveResume.tsx - Resume persistence → Application database: persists resume
src/app/(main)/editor/actions.ts - Resume persistence → Resume validation: validates data
src/app/(main)/editor/actions.ts - Resume persistence → Subscription lookup: checks subscription
src/app/(main)/editor/actions.ts - Resume persistence → Plan permissions: checks access
src/app/(main)/editor/actions.ts - Resume editor → Preview controls: shows preview
- Preview controls → Resume preview: renders resume
src/app/(main)/editor/ResumePreviewSection.tsx - Preview controls → Resume validation: uses resume schema
src/app/(main)/editor/ResumePreviewSection.tsx - Resume preview → Resume validation: uses resume values
src/components/ResumePreview.tsx - Resume forms → AI writing tools: includes tools
- AI writing tools → OpenAI service: generates content
- User → Sign-in and sign-up: authenticates
- Billing page → Application database: reads subscription
src/app/(main)/billing/page.tsx - Billing page → Stripe: uses billing API
src/app/(main)/billing/page.tsx - Billing page → Billing actions: offers management
- Billing actions → Stripe: manages billing
- Upgrade prompt → Checkout actions: starts upgrade
src/components/premium/PremiumModal.tsx - Checkout actions → Stripe: creates checkout
src/components/premium/actions.ts - Stripe → Stripe webhook: sends events
- Stripe webhook → Application database: updates subscription
src/app/api/stripe-webhook/route.ts - Subscription level → Subscription lookup: provides plan
- Subscription lookup → Application database: reads plan record
src/lib/subscription.ts - Plan permissions → Subscription lookup: uses plan type
src/lib/permission.ts