A modern, web-based resume builder application built with Next.js, TypeScript, and Tailwind CSS.
- Interactive Resume Builder: Drag-and-drop interface for easy resume creation
- Multiple Templates: Choose from Modern, Classic, and Minimal designs
- Real-time Preview: See changes instantly as you edit
- PDF Export: Download your resume as a high-quality PDF
- User Authentication: Secure login with NextAuth.js
- Cloud Storage: Save and manage multiple resumes
- Responsive Design: Works perfectly on desktop and mobile
- Frontend: Next.js 14, React 18, TypeScript
- Styling: Tailwind CSS, Radix UI Components
- Authentication: NextAuth.js
- Database: Prisma ORM with PostgreSQL
- PDF Generation: jsPDF, html2canvas
- Drag & Drop: DND Kit
- Form Handling: React Hook Form with Zod validation
Before running this application, make sure you have:
- Node.js 18+ installed
- npm or yarn package manager
- PostgreSQL database (local or cloud)
-
Clone the repository
git clone <repository-url> cd resume-builder
-
Install dependencies
npm install # or yarn install -
Set up environment variables
cp .env.example .env.local
Fill in your environment variables:
# Database DATABASE_URL="postgresql://username:password@localhost:5432/resume_builder" # NextAuth.js NEXTAUTH_URL="http://localhost:3000" NEXTAUTH_SECRET="your-secret-key" # OAuth Providers (optional) GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret" GITHUB_CLIENT_ID="your-github-client-id" GITHUB_CLIENT_SECRET="your-github-client-secret" LINKEDIN_CLIENT_ID="your-linkedin-client-id" LINKEDIN_CLIENT_SECRET="your-linkedin-client-secret"
-
Set up the database
npx prisma generate npx prisma db push
-
Run the development server
npm run dev # or yarn dev -
Open your browser Navigate to http://localhost:3000
src/
├── app/ # Next.js 14 App Router
│ ├── builder/ # Resume builder page
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Landing page
├── components/
│ ├── resume/ # Resume-related components
│ │ ├── forms/ # Form components
│ │ ├── templates/ # Resume templates
│ │ ├── ResumeForm.tsx
│ │ └── ResumePreview.tsx
│ └── ui/ # Reusable UI components
├── lib/
│ └── utils.ts # Utility functions
└── types/
└── resume.ts # TypeScript type definitions
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run type-check- Run TypeScript compiler
- Create Account: Sign up or log in using your preferred method
- Choose Template: Select from available resume templates
- Fill Information: Add your personal info, experience, education, skills, etc.
- Preview: See real-time preview of your resume
- Download: Export your resume as PDF
- Save: Your resume is automatically saved to your account
- Modern: Clean, contemporary design with accent colors
- Classic: Traditional, professional layout
- Minimal: Simple, elegant design with plenty of whitespace
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions, please open an issue on GitHub.