Here's a quick guide to where the code for the main features actually lives.
- React Pages:
LoginPage.tsx,RegisterPage.tsx,ForgotPasswordPage.tsx,ResetPasswordPage.tsx - React State:
authStore.ts - Express Routes:
/api/auth/* - Express Logic:
auth.controller.js(Handles things likeregisterUser,loginUser, andverifyEmail) - Database:
User.model.js
- React Pages:
DashboardPage.tsx,OnboardingPage.tsx - React Components:
ProfileManager.tsx,WorkExperienceSection.tsx,EducationSection.tsx,SkillsSection.tsx, etc. - React State:
profileStore.ts - Express Routes:
/api/profile/* - Express Logic:
profile.controller.js(Handles creating, updating, and fetching the profile) - Database:
Profile.model.js - Validation:
@resume-engine/shared/src/profile.schema.ts(This is the Zod file both sides use)
- React Pages:
TailorPage.tsx - React Components:
ResumeTailor.tsx,TailoredResumeView.tsx,TailorHistory.tsx - Express Routes:
/api/tailor/* - Express Logic:
tailor.controller.js(Handles checking for duplicates and saving history) - Backend Services:
tailor.service.js,ai.service.js(This is where the Groq AI magic happens) - Database:
TailoredResume.model.js
- React Components: Baked into
TailoredResumeView.tsx(it uses a Blob and an iframe to show the PDF) - Express Routes:
/api/resume/generate,/api/resume/preview-html - Express Logic:
resume.controller.js - Backend Services:
pdf.service.js,browser.js(This is the Puppeteer setup that creates the PDFs)