https://github.com/pranavh-2004/resumebuilder
An automated resume builder in Python that generates professional PDFs based on user data and customizable templates
https://github.com/pranavh-2004/resumebuilder
automation cli developer-tools pdf-generation python reportlab resume-generator unit-testing
Last synced: 4 months ago
JSON representation
An automated resume builder in Python that generates professional PDFs based on user data and customizable templates
- Host: GitHub
- URL: https://github.com/pranavh-2004/resumebuilder
- Owner: Pranavh-2004
- License: mit
- Created: 2024-12-28T14:47:51.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-01-15T18:42:10.000Z (5 months ago)
- Last Synced: 2025-01-15T21:27:47.280Z (5 months ago)
- Topics: automation, cli, developer-tools, pdf-generation, python, reportlab, resume-generator, unit-testing
- Language: Python
- Homepage:
- Size: 13.7 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# ResumeBuilder
Welcome to the **ResumeBuilder** project! This project is a CLI tool that allows users to generate professional resumes by populating their details in a JSON format. The tool can display the resume in the terminal and also generate a PDF version.
## Overview
The **ResumeBuilder** project is designed to help users easily generate resumes from structured JSON data. It provides:
- Display of resume details in the terminal.
- PDF generation using the `reportlab` library.
- Validation for required fields like contact information, education, professional experience, projects, and skills.## Features
- **Load Data**: Loads user data from a `user_data.json` file.
- **Data Validation**: Validates the user data to ensure it meets all required fields.
- **Resume Display**: Displays the resume details in a formatted text layout in the terminal.
- **PDF Generation**: Generates a PDF version of the resume saved in the `output/` folder.## Getting Started
### Prerequisites
1. Install Python 3.x.
2. Install the required dependencies using `requirements.txt`:```bash
pip install -r requirements.txt
```## Folder Structure
- **data/**: Contains the JSON files for user data (`user_data.json`) and templates (`template.json`).
- **output/**: Directory where the generated PDFs are saved.
- **src/**: The source code for the project, including scripts for building the resume, handling files, generating PDFs, and validating data.
- **tests/**: Unit tests for each module in the project.
- **venv/**: Python virtual environment.## Running the Application
1. Place your `user_data.json` file inside the `data/` folder. This file should include the user’s information, such as name, contact details, education, professional experience, projects, and skills. Please use template.json as reference to fill your user_data.json
2. To display the resume in the terminal and generate the PDF, run the `main.py` file:```bash
python src/main.py
```## Data Validation
The `validator.py` module validates the user data to ensure all required fields are present and properly formatted. It checks:
- Valid email format.
- Valid phone number format (e.g., +1 234567890).
- Valid LinkedIn URL format.
- Required fields in education and professional experience.## PDF Generation
Once the data is validated, the ResumeBuilder will generate a PDF file named `name_resume.pdf` in the `output/` folder, where `name` is the user’s full name.
## Testing
Unit tests for each module are located in the `tests/` folder. You can run the tests using:
```bash
python -m unittest discover -s tests/
```## License
This project is open-source and available under the MIT License. See the `LICENSE` file for more information.