bhavya-resume-generator 0.1.3
A Python package to generate professional resumes in Word format
Requires Python: >=3.6

# Resume Generator

A Python package to generate professional resumes in Word format. This package takes your resume sections as input and creates a beautifully formatted Word document.

## Installation

```bash
pip install resume-generator
```

## Usage

### Basic Usage

```python
from resume_generator import ResumeGenerator

# Create a resume generator instance
generator = ResumeGenerator()

# Add your resume sections
generator.add_candidate_details(
    name="John Doe",
    email="john@example.com",
    phone="(123) 456-7890",
    location="New York, NY",
    linkedin="linkedin.com/in/johndoe"
)

generator.add_summary("""
- Experienced software engineer with 5+ years in full-stack development
- Strong background in Python, JavaScript, and cloud technologies
- Proven track record of delivering scalable solutions
""")

generator.add_education(
    degree="Master of Science in Computer Science",
    university="Stanford University",
    graduation_year="2020"
)

generator.add_skills({
    "Programming Languages": "Python, JavaScript, Java, C++",
    "Frameworks": "Django, React, Spring Boot",
    "Cloud": "AWS, Azure, Google Cloud",
    "Tools": "Git, Docker, Kubernetes"
})

generator.add_experience([
    {
        "company": "Tech Corp",
        "location": "San Francisco, CA",
        "duration": "2020 - Present",
        "position": "Senior Software Engineer",
        "description": [
            "Led development of microservices architecture",
            "Implemented CI/CD pipelines",
            "Mentored junior developers"
        ],
        "skills": "Python, AWS, Docker"
    }
])

# Generate the resume
generator.generate("my_resume.docx")
```

### Reading from Files

You can also read resume content from files and generate the resume:

```python
from resume_generator import ResumeGenerator

def read_file_content(filename):
    with open(filename, 'r') as file:
        return file.read().strip()

def create_resume():
    # Create a resume generator instance
    generator = ResumeGenerator(add_h1b_header=True)

    # Read candidate details
    details = read_file_content('resume_content/candidate_details.txt')
    lines = details.split('\n')
    name = lines[0].replace('Name: ', '').strip()
    email = lines[1].replace('Email: ', '').strip()
    phone = lines[2].replace('Phone: ', '').strip()
    location = lines[3].replace('Location: ', '').strip()
    linkedin = lines[4].replace('LinkedIn: ', '').strip() if len(lines) > 4 else None

    # Add candidate details
    generator.add_candidate_details(
        name=name,
        email=email,
        phone=phone,
        location=location,
        linkedin=linkedin
    )

    # Add professional summary
    summary = read_file_content('resume_content/summary.txt')
    generator.add_summary(summary)

    # Add education
    education = read_file_content('resume_content/education.txt')
    degree = ''
    university = ''
    graduation_year = ''
    for line in education.split('\n'):
        if line.startswith('Education Degree:'):
            degree = line.replace('Education Degree:', '').strip()
        elif line.startswith('University Name:'):
            university = line.replace('University Name:', '').strip()
        elif line.startswith('Graduation Year:'):
            graduation_year = line.replace('Graduation Year:', '').strip()

    generator.add_education(
        degree=degree,
        university=university,
        graduation_year=graduation_year
    )

    # Add skills
    skills = read_file_content('resume_content/skills.txt')
    skills_dict = {}
    for line in skills.split('\n'):
        if ':' in line:
            category, details = line.split(':', 1)
            skills_dict[category.strip()] = details.strip()
    generator.add_skills(skills_dict)

    # Add experience
    experience = read_file_content('resume_content/experience.txt')
    experience_entries = []
    current_entry = {}
    
    for line in experience.split('\n'):
        if line.startswith('Company:'):
            if current_entry:
                experience_entries.append(current_entry)
                current_entry = {}
            current_entry['company'] = line.replace('Company:', '').strip()
        elif line.startswith('Location:'):
            current_entry['location'] = line.replace('Location:', '').strip()
        elif line.startswith('Duration:'):
            current_entry['duration'] = line.replace('Duration:', '').strip()
        elif line.startswith('Position:'):
            current_entry['position'] = line.replace('Position:', '').strip()
        elif line.startswith('Description:'):
            current_entry['description'] = []
        elif line.startswith('-') and 'description' in current_entry:
            current_entry['description'].append(line.lstrip('-').strip())
        elif line.startswith('Skills:'):
            current_entry['skills'] = line.replace('Skills:', '').strip()

    if current_entry:
        experience_entries.append(current_entry)

    generator.add_experience(experience_entries)

    # Generate the resume
    output_file = 'resume.docx'
    generator.generate(output_file)
    print(f"Resume has been generated successfully as '{output_file}'")

if __name__ == "__main__":
    create_resume()

## Features

- Professional formatting with consistent styling
- Support for all major resume sections
- Customizable margins and spacing
- H1B header option
- Page borders
- Bullet points and indentation
- Skills table with categories

## Requirements

- Python 3.6 or higher
- python-docx 0.8.11 or higher

## License

MIT License

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.