Resume Craft is a powerful, client-side React application designed to help users build professional, aesthetically pleasing, and ATS-friendly resumes effortlessly. Powered by modern web technologies, it offers real-time previewing, smart input handling, and diverse export options.
Choose from three distinct, professionally designed templates tailored to different industry needs:
- Standard Template: A modern, visual layout featuring skill-level dots and a clean, two-column grid. Perfect for creative and tech roles.
- Classic Template: A traditional, formal layout focusing on hierarchy and readability. Ideal for corporate, legal, and academic roles.
- ATS-Friendly Template: A parsing-optimized, text-based layout generated using
@react-pdf/renderer. This ensures maximum compatibility with Applicant Tracking Systems.
- Real-Time Preview: Instantly see changes as you type with a split-screen view.
- Smart Forms: Interactive inputs for Education, Experience, Skills, and more, including dynamic country/state/city selection via
country-state-city. - Privacy Focused: No database required. All data resides locally in the browser context during the session.
- High-Quality Export: Download resumes as high-resolution PDFs using
html2canvas+jspdf(Visual) or native PDF generation (ATS). - Customization: Toggle specific sections on/off and choose from multiple font styles (Roboto, Playwrite, etc.).
This project leverages a modern, opinionated stack for performance and developer experience:
- Core: React 19
- Build Tool: Vite
- Styling: CSS Modules (Scoped styling)
- Routing: React Router DOM v7
- State Management: React Context API +
useReducer - PDF Generation:
@react-pdf/renderer(for ATS layout)html2canvas&jspdf(for Visual layouts)
- Utilities:
country-state-city(Location logic),react-toastify(Notifications)
We maintain rigorous code quality standards using Vitest. The project boasts 100% Code Coverage across reducer logic and UI components.
- Unit Testing: Granular tests for
resumeReducerto ensure state integrity (CRUD operations on resume fields). - Component Testing: Testing Library (
@testing-library/react) integration to verify DOM rendering, user interactions, and conditional logic. - Integration Testing: Verifying workflows from input to display context updates.
To execute the test suite:
npm run testTo generate a coverage report:
npm run coverageThis repository employs a robust CI/CD pipeline and local quality checks to ensure stability.
We use Husky and lint-staged to enforce quality before every commit:
- Linting: Runs
eslintto catch syntax and logic errors. - Formatting: Runs
prettierto ensure consistent code style.
On every push or pull request, our automated workflow triggers:
- Lint: Checks code compliance with ESLint rules.
- Test: Runs the full Vitest suite to ensure no regressions.
- Build: Attempts a production build via Vite to verify deployability.
Note: The build only passes if linting and testing succeed.
Follow these steps to run the project locally.
- Node.js (v18 or higher recommended)
- npm
-
Clone the repository:
git clone https://github.com/umarSiddique010/resume-craft.git cd resume-craft -
Install dependencies:
npm install
Start the local development server:
npm run devOpen your browser and navigate to http://localhost:5173.
To create an optimized production build:
npm run buildTo preview the production build locally:
npm run previewsrc/
├── assets/ # Static images and icons
├── components/
│ ├── DisplayTemplate/ # Resume renderers (Standard, Classic, ATS)
│ ├── HomePage/ # Main split-screen container
│ ├── UserInput/ # Input forms (Personal, Educations, Skills, etc.)
│ └── WelcomePage/ # Landing page
├── context/
│ └── UserInputContext/ # Global State (Context + Reducer)
├── App.jsx # Main Routing Logic
└── main.jsx # Entry point
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Please ensure all tests pass (npm run test) before submitting.
Distributed under the MIT License. See LICENSE for more information.
Crafted by Md Umar Siddique