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
reportlablibrary. - Validation for required fields like contact information, education, professional experience, projects, and skills.
- Load Data: Loads user data from a
user_data.jsonfile. - 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.jsonfile 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.pyfile:
python src/main.pyThe 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.