Sign inSign up

alh477/resume-builder

By alh477

•Updated 8 months ago

GTK3 and web-based application for creating professional HTML resumes with clean, modern styling.

Image
Developer tools
Web servers
Content management system
0

632

alh477/resume-builder repository overview

⁠Resume Builder

A GTK3 and web-based application for creating professional HTML resumes with clean, modern styling.

⁠Overview

Resume Builder provides two interfaces for generating polished, professional resumes:

  • Desktop Interface (GTK3): Full-featured desktop application with visual form editing image
  • Web Interface (Flask): Browser-based application suitable for containers and remote access image

Both interfaces produce identical, professionally styled HTML output optimized for printing and PDF conversion.

⁠Features

⁠Desktop Interface
  • Visual form interface for entering resume data
  • Multiple sections: Experience, Projects, Education, and Skills
  • Save and load resume data as JSON for future editing
  • Live preview of HTML output
  • Keyboard shortcuts: Ctrl+S (save), Ctrl+O (load), Ctrl+E (export), Ctrl+P (preview)
⁠Web Interface
  • Responsive web UI accessible from any browser
  • REST API for programmatic access
  • Real-time preview updates
  • JSON import/export functionality
  • Docker-ready deployment
⁠Generated HTML Output
  • Professional letter-sized layout (8.5" x 11")
  • Print-optimized styling
  • Timeline visualization with decorative elements
  • Clean typography using Open Sans font
  • Sidebar layout with contact information and skills
  • PDF-ready via browser print function

⁠Installation

For systems with Nix and flakes enabled:

# Run directly without installation
nix run github:ALH477/resume-builder

# Install to user profile
nix profile install github:ALH477/resume-builder

# Launch application
resume-builder
⁠Local Development with Nix
# Clone the repository
git clone https://github.com/ALH477/resume-builder.git
cd resume-builder

# Enter development shell
nix develop

# Run the desktop application
python3 resume_builder.py

# Or build and run
nix build
./result/bin/resume-builder
⁠Traditional Installation
⁠Requirements
  • Python 3.8+
  • GTK 3.0
  • PyGObject (gi)
⁠Ubuntu/Debian
sudo apt-get install python3-gi python3-gi-cairo gir1.2-gtk-3.0
⁠Fedora
sudo dnf install python3-gobject gtk3
⁠Arch Linux
sudo pacman -S python-gobject gtk3
⁠Web Interface Installation
# Install dependencies
pip install flask

# Run web server
python3 resume_builder.py --web --port 5000

# Access at http://localhost:5000

⁠Usage

⁠Desktop Application
  1. Launch the application:

    python3 resume_builder.py
    
  2. Enter your information using the form sections:

    • Header: Full name and professional subtitle
    • Contact: Website, email, and phone number
    • Experience: Add work history with bullet points
    • Projects: Add notable projects with descriptions
    • Education: Add educational background
    • Skills: Organize skills by category
  3. Export your resume:

    • Use Update Preview to view HTML output
    • Use Export HTML to save the resume file
    • Use Save JSON to preserve data for later editing
    • Use Load JSON to restore previously saved data
⁠Web Interface
  1. Start the web server:

    python3 resume_builder.py --web --port 5000
    
  2. Open http://localhost:5000⁠ in your web browser

  3. Use the form to enter resume data and click Preview or Export

⁠Docker Deployment
docker run -p 5000:5000 alh477/resume-builder:web
⁠Desktop Container (Requires X11 Forwarding)
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix alh477/resume-builder:latest

⁠Tips

  • Date Formats: Use consistent formats such as "2024", "Present", or "Jan 2024"
  • Bullet Points: Enter one achievement per line in text areas
  • Skills: Separate individual skills with commas (e.g., "Python, JavaScript, C++")
  • Data Preservation: Use the Save JSON feature regularly to preserve work

⁠File Structure

FileDescription
resume_builder.pyMain application with GTK and web interfaces
web_app.pyFlask web application module
setup.pyPython package configuration
flake.nixNix flake for reproducible builds
DockerfileContainer definition for web interface

⁠API Reference (Web Interface)

EndpointMethodDescription
/GETWeb UI
/api/previewPOSTGenerate HTML preview
/api/exportPOSTDownload HTML file
/api/savePOSTDownload JSON data
/api/loadPOSTUpload and load JSON data

⁠Customization

The HTML template is embedded in the application. To customize the output:

  1. Export an HTML file
  2. Modify the <style> section directly
  3. Use the customized output as needed

The CSS uses CSS variables for easy customization of:

  • Page dimensions
  • Color scheme
  • Spacing and padding
  • Font sizes and typography

⁠License

This project is licensed under the Apache License 2.0. See the LICENSE⁠ file for details.

⁠Contributing

Contributions are welcome. Please submit pull requests through GitHub.

⁠Repository

Tag summary

Content type

Image

Digest

sha256:8c6ef581f…

Size

253.7 MB

Last updated

8 months ago

docker pull alh477/resume-builder