Coder Social home page Coder Social logo

cv-generator-dsl's Introduction

DSL for generating CVs (Curriculum Vitae)

Python TextX project for Domain Specific Languages course at Faculty of Technical Sciences.

This DSL enables automatic CV generation and export as a PDF. The main purpose of this DSL is to save time by providing a way to quickly create and edit CVs, instead of manually editing files.


Features:

  • Specifying basic and contact info
    • name, surname, email, phone number
    • optional parameters such as CV picture, linkedin, etc.
  • Specifying work experience
    • with company name, time period, and experience bullets to explain specified position
  • Specifying education
    • with school name, title and time period
  • Specifying skills, languages (optional) and interests (optional)
  • Specifying output format
    • CV can be generated as PDF and HTML
  • Specifying different CV styles
    • Standard, Elegant, Modern

Instructions:

After installing the project, you can list languages and generators using TextX commands:

textx list-languages
textx list-generators

This way, you confirm that CV language and generator are registered properly.

You can generate the CVs using the following TextX command:

textx generate [PATH TO .cv FILE] --target HTML/PDF

Alternatively, you can run main.py, but remember to change cv_file_path variable to your .cv file.


Examples:

CV specified with DSL:

Basic Info:
    Name: 'John'
    Surname: 'Doe'
    Title: 'Senior Software Engineer'
    Picture: examples/images/john_doe.png

Contact Info:
    Email: [email protected]
    Phone Number: +12345678901
    LinkedIn: https://www.linkedin.com/in/johndoe
    Other:
        GitHub: 'https://github.com/johndoe'

Experience:
    Title: 'Lead Developer'
    Company Name: 'Tech Innovations Inc.'
    Time Period:
        Start: Jan 2018
        End: Present
    Description:
        ExperienceBullet: 'Developed and maintained a suite of high-availability microservices.'
        ExperienceBullet: 'Led a team of 10 software engineers.'
        ExperienceBullet: 'Coordinated the successful migration of legacy systems to a modern cloud-based architecture.'

Experience:
    Title: 'Software Engineer'
    Company Name: 'DevSoft Solutions'
    Time Period:
        Start: Aug 2014
        End: Dec 2017
    Description:
        ExperienceBullet: 'Implemented new features for a range of client web applications.'
        ExperienceBullet: 'Improved system performance by optimizing existing code.'
        ExperienceBullet: 'Actively contributed to team meetings and provided valuable input during planning stages.'

//This is a comment before education
Education:
    School: 'University of Technology'
    Title: 'Bachelor of Science in Computer Science'
    Time Period:
        Start: Sep 2010
        End: Jun 2014

Skills:
    Skill: 'Python'
    //Java comment :)
    Skill: 'Java'
    Skill: 'Docker'
    Skill: 'Kubernetes'
    Skill: 'Continuous Integration/Continuous Deployment'

Languages:
    Language:
      Name: 'Italian'
      Proficiency: Native
    Language:
      Name: 'English'
      Proficiency: Professional

Interests:
    Interest: 'Open-Source Software'
    Interest: 'Travel'
    Interest: 'Photography'

Output Format: PDF

Style: Modern

Generated CV for given example: cv.pdf

cv-generator-dsl's People

Contributors

vukv avatar

Watchers

 avatar

cv-generator-dsl's Issues

Complete README

Define the following:

  • Language features
  • Project instructions
  • Language examples

Config

Add config files and configure and register project for textx.

CV templates

Define structure and style for CV templates:

  • standard
  • elegant
  • modern

VS Code extension

Create a language extension for VS Code that supports syntax highlighting

Parser

Geta metamodel from defined .tx file and create a model from passed file path

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.