├── public ├── logo.png ├── Resume.pdf ├── favicon.ico ├── fonts │ ├── cmunbx.ttf │ ├── cmunrm.ttf │ ├── Roboto-Bold.ttf │ ├── Unna-Bold.ttf │ ├── Raleway-Bold.ttf │ ├── Unna-Regular.ttf │ ├── Inconsolata-Bold.ttf │ ├── Mabry-Pro-Medium.ttf │ ├── Raleway-Regular.ttf │ ├── Roboto-Regular.ttf │ ├── SpaceMono-Bold.ttf │ ├── SpaceMono-Regular.ttf │ └── Inconsolata-Regular.ttf ├── splash_image.gif ├── splash_image.png ├── darkmoderesume.png ├── style_font_roboto.png ├── style_font_unna.png ├── style_mode_dark.png ├── style_mode_light.png ├── style_theme_oak.png ├── style_theme_tall.png ├── style_font_raleway.png ├── style_theme_classic.png ├── style_theme_modern.png ├── style_font_inconsolata.png ├── style_theme_minimalist.png ├── style_theme_one_column.png ├── style_theme_left_handed.png ├── style_theme_right_handed.png └── style_font_computermodern.png ├── .prettierrc ├── pages ├── test.jsx ├── .vscode │ └── settings.json ├── _app.jsx ├── _document.jsx ├── builder.jsx └── index.jsx ├── prettier.config.js ├── components ├── Section │ ├── headers │ │ ├── index.js │ │ ├── Center.jsx │ │ ├── LeftHanded.jsx │ │ └── RightHanded.jsx │ ├── themes │ │ ├── index.js │ │ ├── Simple.jsx │ │ ├── Modern.jsx │ │ ├── Classic.jsx │ │ ├── Minimalist.jsx │ │ └── Oak.jsx │ ├── index.jsx │ └── styles.jsx ├── index.js ├── Resume │ ├── Content.jsx │ ├── OneColumn.jsx │ ├── TwoColumn.jsx │ └── index.jsx ├── Menu │ ├── TabMenu │ │ ├── Tab.jsx │ │ └── index.jsx │ ├── Textbox │ │ └── index.jsx │ ├── index.jsx │ ├── Windows │ │ ├── ThemesWindow │ │ │ ├── index.jsx │ │ │ └── ImageSelect.jsx │ │ └── SectionsWindow │ │ │ └── index.jsx │ └── utils.js ├── Button │ └── index.jsx ├── Upload │ └── index.jsx ├── Footer │ └── index.jsx └── AutoLinkText │ ├── match_format.jsx │ ├── index.js │ ├── url_match.js │ ├── match_parser.js │ └── match_validator.js ├── constants ├── triggers.js ├── index.js ├── colors.js ├── fields.js ├── styling.js └── sections.js ├── .gitignore ├── .eslintrc.js ├── next.config.js ├── context └── state.jsx ├── README.md ├── jsconfig.json ├── .vscode └── settings.json ├── .babelrc ├── .github └── FUNDING.yml ├── LICENSE ├── package.json ├── styles └── global.css └── utils └── index.js /public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/logo.png -------------------------------------------------------------------------------- /public/Resume.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/Resume.pdf -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /public/fonts/cmunbx.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/cmunbx.ttf -------------------------------------------------------------------------------- /public/fonts/cmunrm.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/cmunrm.ttf -------------------------------------------------------------------------------- /public/splash_image.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/splash_image.gif -------------------------------------------------------------------------------- /public/splash_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/splash_image.png -------------------------------------------------------------------------------- /public/darkmoderesume.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/darkmoderesume.png -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "singleQuote": true, 4 | "trailingComma": "es5" 5 | } 6 | -------------------------------------------------------------------------------- /public/fonts/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Roboto-Bold.ttf -------------------------------------------------------------------------------- /public/fonts/Unna-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Unna-Bold.ttf -------------------------------------------------------------------------------- /public/style_font_roboto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_font_roboto.png -------------------------------------------------------------------------------- /public/style_font_unna.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_font_unna.png -------------------------------------------------------------------------------- /public/style_mode_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_mode_dark.png -------------------------------------------------------------------------------- /public/style_mode_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_mode_light.png -------------------------------------------------------------------------------- /public/style_theme_oak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_theme_oak.png -------------------------------------------------------------------------------- /public/style_theme_tall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_theme_tall.png -------------------------------------------------------------------------------- /public/fonts/Raleway-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Raleway-Bold.ttf -------------------------------------------------------------------------------- /public/fonts/Unna-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Unna-Regular.ttf -------------------------------------------------------------------------------- /public/style_font_raleway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_font_raleway.png -------------------------------------------------------------------------------- /public/style_theme_classic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_theme_classic.png -------------------------------------------------------------------------------- /public/style_theme_modern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_theme_modern.png -------------------------------------------------------------------------------- /public/fonts/Inconsolata-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Inconsolata-Bold.ttf -------------------------------------------------------------------------------- /public/fonts/Mabry-Pro-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Mabry-Pro-Medium.ttf -------------------------------------------------------------------------------- /public/fonts/Raleway-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Raleway-Regular.ttf -------------------------------------------------------------------------------- /public/fonts/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Roboto-Regular.ttf -------------------------------------------------------------------------------- /public/fonts/SpaceMono-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/SpaceMono-Bold.ttf -------------------------------------------------------------------------------- /public/style_font_inconsolata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_font_inconsolata.png -------------------------------------------------------------------------------- /public/style_theme_minimalist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_theme_minimalist.png -------------------------------------------------------------------------------- /public/style_theme_one_column.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_theme_one_column.png -------------------------------------------------------------------------------- /public/fonts/SpaceMono-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/SpaceMono-Regular.ttf -------------------------------------------------------------------------------- /public/style_theme_left_handed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_theme_left_handed.png -------------------------------------------------------------------------------- /public/style_theme_right_handed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_theme_right_handed.png -------------------------------------------------------------------------------- /pages/test.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export default function Test() { 4 | return
hello
; 5 | } 6 | -------------------------------------------------------------------------------- /public/fonts/Inconsolata-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/fonts/Inconsolata-Regular.ttf -------------------------------------------------------------------------------- /public/style_font_computermodern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cnnmon/ezcv/HEAD/public/style_font_computermodern.png -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | tabWidth: 2, 3 | semi: true, 4 | singleQuote: true, 5 | trailingComma: 'es5', 6 | }; 7 | -------------------------------------------------------------------------------- /components/Section/headers/index.js: -------------------------------------------------------------------------------- 1 | import Center from './Center'; 2 | import RightHanded from './RightHanded'; 3 | import LeftHanded from './LeftHanded'; 4 | 5 | export { Center, RightHanded, LeftHanded }; 6 | -------------------------------------------------------------------------------- /constants/triggers.js: -------------------------------------------------------------------------------- 1 | // globally used trigger 2 | export const trigger = '#'; 3 | export const stylingTrigger = '@'; 4 | export const commentTrigger = '/'; 5 | 6 | // mobile breakpoint 7 | // TODO: modify 8 | export const mobileBreakpoint = '800px'; 9 | -------------------------------------------------------------------------------- /components/Section/themes/index.js: -------------------------------------------------------------------------------- 1 | import Classic from './Classic'; 2 | import Modern from './Modern'; 3 | import Minimalist from './Minimalist'; 4 | import Simple from './Simple'; 5 | import Oak from './Oak'; 6 | 7 | export { Classic, Modern, Minimalist, Simple, Oak }; 8 | -------------------------------------------------------------------------------- /constants/index.js: -------------------------------------------------------------------------------- 1 | import COLORS from './colors'; 2 | import * as SECTIONS from './sections'; 3 | import * as FIELDS from './fields'; 4 | import * as STYLING from './styling'; 5 | import * as TRIGGERS from './triggers'; 6 | 7 | export { COLORS, SECTIONS, FIELDS, STYLING, TRIGGERS }; 8 | -------------------------------------------------------------------------------- /components/index.js: -------------------------------------------------------------------------------- 1 | import Menu, { Textbox } from './Menu'; 2 | import Resume, { Content } from './Resume'; 3 | import Button from './Button'; 4 | import Upload from './Upload'; 5 | import Footer from './Footer'; 6 | 7 | export { Upload, Menu, Resume, Button, Textbox, Content, Footer }; 8 | -------------------------------------------------------------------------------- /pages/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.exclude": { 3 | "**/.git": true, 4 | "**/.svn": true, 5 | "**/.hg": true, 6 | "**/CVS": true, 7 | "**/.DS_Store": true, 8 | "**/Thumbs.db": true, 9 | "**/.buckd": true, 10 | "**/buck-out": true, 11 | "**/.lsp.buckd": true, 12 | "**/.lsp-buck-out": true 13 | }, 14 | "hide-files.files": [] 15 | } 16 | -------------------------------------------------------------------------------- /pages/_app.jsx: -------------------------------------------------------------------------------- 1 | /* eslint-disable react/jsx-props-no-spreading */ 2 | import React from 'react'; 3 | import '../styles/global.css'; 4 | import { AppWrapper } from '../context/state'; 5 | 6 | function Application({ Component, pageProps }) { 7 | return ( 8 |
4 |
5 | a free resume builder that makes creating a resume as simple as typing. generate a beautiful, formatted cv instantly from the plaintext builder. customize in a few clicks with live preview
6 | and get hired faster.
7 |
8 | **Tools:**
9 |
10 | - nextjs
11 | - react
12 | - html/css/js
13 |
14 | go try it out at [**ezcv.pro**](https://ezcv.pro).
15 |
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "paths": {
5 | "components/*": ["src/components/*"],
6 | "constants/*": ["src/constants/*"],
7 | "utils/*": ["src/utils/*"]
8 | }
9 | },
10 | "target": "es5",
11 | "lib": ["dom", "dom.iterable", "esnext"],
12 | "allowJs": true,
13 | "skipLibCheck": true,
14 | "strict": true,
15 | "forceConsistentCasingInFileNames": true,
16 | "noEmit": true,
17 | "esModuleInterop": true,
18 | "module": "esnext",
19 | "moduleResolution": "node",
20 | "resolveJsonModule": true,
21 | "isolatedModules": true,
22 | "jsx": "preserve",
23 | "incremental": true
24 | }
25 |
--------------------------------------------------------------------------------
/components/Resume/OneColumn.jsx:
--------------------------------------------------------------------------------
1 | import Content from './Content';
2 | import { SECTIONS } from '../../constants';
3 |
4 | export default function OneColumn({ content, styling }) {
5 | const columns = {
6 | center: [],
7 | rest: [],
8 | };
9 |
10 | for (let i = 0; i < content.length; i += 1) {
11 | const c = content[i];
12 |
13 | if (c.type === SECTIONS.TYPES.HEADER) {
14 | columns.center.push(c);
15 | } else {
16 | columns.rest.push(c);
17 | }
18 | }
19 |
20 | return (
21 | <>
22 |