Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/orestis-z/resume-compiler

A resume compiler with Markdown support. Converts a JSON serialized resume to PDF format
https://github.com/orestis-z/resume-compiler

nodejs pdf resume-creator

Last synced: 8 days ago
JSON representation

A resume compiler with Markdown support. Converts a JSON serialized resume to PDF format

Awesome Lists containing this project

README

        

# Resume Compiler

![Build Pipeline](https://github.com/orestis-z/resume-compiler/workflows/Build%20Pipeline/badge.svg)

A resume compiler with Markdown support. Converts a JSON serialized resume to PDF format.

Compatible with Google resume guidelines.

[Demo Resume](docs/Resume_Orestis_Zambounis.pdf)



## Prerequisites

`node v12` and `"type": "module"` enabled

## Install

```bash
yarn add https://github.com/orestis-z/resume-compiler.git
```

## Example Usage

Run the following command to generate an example resume:

```
node example/compileResume.js
```

Example code:

```js
import resumeCompiler, { cvChild } from "resume-compiler";

const profile = {
name: "Orestis Zambounis",
title: "MSc ETH Robotics Engineer",
birthdate: "10.7.1991",
address: "CH-4103 Bottmingen",
phone: "+41 78 637 35 91",
email: "[email protected]",
github: "github.com/orestis-z",
programmingLanguages:
"C++, Python, TensorFlow, Keras, Deep Learning, Computer Vision",
};

const cv = [
{
title: "Experience",
children: [
cvChild(
"Experience 1",
["Meta Infos", "Location A"],
["Sep 2010", "Today"],
"* Here comes the __Markdown__ description of your achievement"
),
cvChild(
"Experience 2",
["Meta Infos", "Location B"],
["Aug 2005", "Dec 2009"],
"* Here's another __Markdown__ description\n * Improved X by Y by doing Z"
),
],
},
{
title: "Software Projects",
children: [
cvChild(
"Personal Website",
null,
null,
"* Published my personal website with __React.js__ / __Next.js__ and __AWS__ Lambda on www.leanmind.ch (German)"
),
],
},
{
mini: true,
title: "Other",
children: [
cvChild(
"Languages",
[
"German (mother tongue)",
"English (fluent)",
"French (intermediate)",
"Italian (beginner)",
],
null
),
cvChild(
"Hobbies",
["Rock climbing", "Saxophone", "Programming", "Traveling"],
null
),
],
},
];

resumeCompiler({
profile,
cv,
google: true,
});
```

## Config

| Prop | description | default value |
| --------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------- |
| `profile` | Object containing personal information `{name, title, address, phone email, github, programmingLanguages, summary}` | `{}` |
| `cv` | Array containing sections and section-children `[{title, children: [{title, subtitles, meta, body}, ...]}, ...]` | `[]` |
| `fonts` | Absolute path to font files (`ttf` or `woff`) | Roboto and OpenSans |
| `pageCountOn` | Display page count | `false` |
| `color` | Font color | `#212121` |
| `linkColor` | Link font color | `#212121` |
| `mainTitleSize` | Size of main document title | `24` |
| `subtitleSize` | Size of main document subtitle | `12` |
| `headerSize` | Size of the section headers | `13` |
| `fontSize` | Body text font size | `10` |
| `lineHeight` | Body text line height | `1` |
| `unbreakableChildren` | Don't allow children to break to new page | `false` |
| `pageMargins` | Document page margins | `[60, 65, 60, 65]` |
| `google` | Google style resume | `false` |