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.
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.
- 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.
-
Install Python 3.x.
-
Install the required dependencies using
requirements.txt
:pip install -r requirements.txt
- 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.
- Place your
user_data.json
file inside thedata/
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 - To display the resume in the terminal and generate the PDF, run the
main.py
file:
python src/main.py
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.
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.
Unit tests for each module are located in the tests/
folder. You can run the tests using:
python -m unittest discover -s tests/
This project is open-source and available under the MIT License. See the LICENSE
file for more information.