├── .github └── workflows │ └── deploy.yml ├── .gitignore ├── README.md ├── docs ├── CONFIGURATION.md ├── DEPLOYMENT.md └── assets │ ├── logo.png │ ├── promo-1.png │ ├── promo-2.png │ ├── promo-3.png │ ├── promo-4.png │ └── spacer.png ├── index.html ├── npm ├── npm-resume-clear.js └── snippets │ ├── _npm-files.js │ ├── _npm-json.js │ └── _npm-log.js ├── package-lock.json ├── package.json ├── public ├── data │ ├── categories.json │ ├── profile.json │ ├── sections.json │ ├── sections │ │ ├── achievements.json │ │ ├── contact.json │ │ ├── cover.json │ │ ├── education.json │ │ ├── experience.json │ │ ├── hobbies.json │ │ ├── portfolio.json │ │ └── skills.json │ ├── settings.json │ └── strings.json └── images │ ├── flags │ ├── _more-flags.txt │ ├── ar-dz.png │ ├── ar-ma.png │ ├── ar-tn.png │ ├── cs.png │ ├── da.png │ ├── de-ch.png │ ├── de-li.png │ ├── de.png │ ├── dk.png │ ├── el.png │ ├── en-au.png │ ├── en-ca.png │ ├── en-nz.png │ ├── en-uk.png │ ├── en-us.png │ ├── es-ar.png │ ├── es-cl.png │ ├── es-co.png │ ├── es-mx.png │ ├── es-pr.png │ ├── es-uy.png │ ├── es-vz.png │ ├── es.png │ ├── et.png │ ├── fi.png │ ├── fr-be.png │ ├── fr.png │ ├── ge.png │ ├── hi.png │ ├── hr.png │ ├── hu.png │ ├── id.png │ ├── it.png │ ├── ja.png │ ├── ko.png │ ├── ml.png │ ├── nl.png │ ├── no.png │ ├── pk.png │ ├── pl.png │ ├── pt-br.png │ ├── pt-pt.png │ ├── ro.png │ ├── ru-kz.png │ ├── ru.png │ ├── sk.png │ ├── sl.png │ ├── sv.png │ ├── th.png │ ├── tn.png │ ├── tr.png │ ├── tw.png │ ├── un.png │ ├── uz.png │ ├── vi.png │ ├── zh-hk.png │ ├── zh-sg.png │ ├── zh-tw.png │ └── zh.png │ ├── icons │ ├── resume.ico │ └── resume.svg │ ├── pictures │ └── avatar.png │ ├── places │ ├── logo-adobe.png │ ├── logo-apple.png │ ├── logo-coursera.png │ ├── logo-harvard.png │ ├── logo-paris-university.png │ ├── logo-udacity.png │ └── logo-ux-studio.png │ └── portfolio │ ├── project-logo-1.png │ ├── project-logo-2.png │ ├── project-logo-3.png │ ├── project-logo-4.png │ ├── project-logo-5.png │ ├── project-logo-6.png │ ├── project-logo-7.png │ ├── project-logo-8.png │ └── project-logo-9.png ├── src ├── composables │ ├── constants.js │ ├── emails.js │ ├── scheduler.js │ └── utils.js ├── main.js ├── models │ ├── Article.js │ ├── ArticleItem.js │ ├── Category.js │ ├── ContactOption.js │ ├── Language.js │ ├── Locales.js │ ├── Profile.js │ ├── Section.js │ └── Settings.js ├── scss │ ├── _layout.scss │ ├── _mixins.scss │ ├── _theming.scss │ ├── _typography.scss │ ├── _variables.scss │ └── style.scss └── vue │ ├── components │ ├── articles │ │ ├── base │ │ │ ├── Article.vue │ │ │ ├── ArticleTitle.vue │ │ │ └── ArticleWidgetLinkList.vue │ │ ├── contact │ │ │ ├── ArticleContactForm.vue │ │ │ ├── ArticleContactFormFields.vue │ │ │ ├── ArticleContactFormThankYou.vue │ │ │ └── ArticleContactOptions.vue │ │ ├── portfolio │ │ │ ├── ArticlePortfolio.vue │ │ │ └── ArticlePortfolioItem.vue │ │ ├── profile │ │ │ ├── ArticleProfile.vue │ │ │ └── ArticleProfileItem.vue │ │ ├── skills │ │ │ ├── ArticleSkills.vue │ │ │ ├── ArticleSkillsItem.vue │ │ │ └── ArticleSkillsPieChart.vue │ │ ├── thread │ │ │ ├── ArticleThread.vue │ │ │ └── ArticleThreadItem.vue │ │ ├── timeline │ │ │ ├── ArticleTimeline.vue │ │ │ ├── ArticleTimelineItem.vue │ │ │ └── ArticleTimelineItemContent.vue │ │ └── unavailable │ │ │ └── ArticleUnavailable.vue │ ├── loaders │ │ ├── ActivitySpinner.vue │ │ └── Loader.vue │ ├── modals │ │ ├── base │ │ │ └── Modal.vue │ │ └── project │ │ │ ├── ProjectModal.vue │ │ │ └── ProjectModalContent.vue │ ├── navigation │ │ ├── NavigationWrapper.vue │ │ ├── controls │ │ │ ├── NavControlAllAtOnce.vue │ │ │ └── NavControlOneAtOnce.vue │ │ ├── layout │ │ │ ├── NavMobileHeader.vue │ │ │ ├── NavProfileCard.vue │ │ │ └── NavToggleButton.vue │ │ ├── sidebar │ │ │ ├── NavSidebar.vue │ │ │ ├── NavSidebarFooter.vue │ │ │ └── NavSidebarLinkList.vue │ │ └── tabs │ │ │ ├── NavPillsController.vue │ │ │ ├── NavPillsControllerFixed.vue │ │ │ └── NavTabController.vue │ ├── sections │ │ ├── Section.vue │ │ ├── SectionBody.vue │ │ └── SectionHeader.vue │ └── widgets │ │ ├── Alert.vue │ │ ├── FaButton.vue │ │ ├── FilterTabs.vue │ │ ├── IconView.vue │ │ ├── ImageView.vue │ │ ├── InfoBadge.vue │ │ ├── InlineInfoList.vue │ │ ├── InlineLinkList.vue │ │ ├── LanguagePicker.vue │ │ ├── OptionsList.vue │ │ ├── ProgressBar.vue │ │ ├── SocialLinks.vue │ │ ├── SolidDivider.vue │ │ ├── Spinner.vue │ │ ├── Tags.vue │ │ └── XLButton.vue │ └── stack │ ├── App.vue │ ├── DataManager.vue │ ├── FeedbacksManager.vue │ ├── LanguageManager.vue │ ├── LocationManager.vue │ ├── ModalManager.vue │ ├── Resume.vue │ └── WindowObserver.vue └── vite.config.js /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy resume to GitHub Pages 2 | 3 | on: 4 | workflow_dispatch: 5 | push: 6 | branches: 7 | - main 8 | 9 | jobs: 10 | build-deploy: 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | # Checkout the repository 15 | - name: Checkout code 16 | uses: actions/checkout@v3 17 | 18 | # Setup Node.js 19 | - name: Setup Node.js 20 | uses: actions/setup-node@v3 21 | with: 22 | node-version: 18 23 | 24 | # Install dependencies 25 | - name: Install dependencies 26 | run: npm install 27 | 28 | # Build the project 29 | - name: Build project 30 | run: npm run build 31 | 32 | # Deploy to GitHub pages 33 | - name: Deploy to GitHub pages 34 | uses: peaceiris/actions-gh-pages@v3 35 | with: 36 | github_token: ${{ secrets.GITHUB_TOKEN }} 37 | publish_dir: dist -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist-ssr 12 | *.local 13 | dist/ 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /docs/DEPLOYMENT.md: -------------------------------------------------------------------------------- 1 | ## Deployment 2 | 3 | ### 1. Vite configuration 4 | Open `vite.config.js` and set the base directory for your application. This setting defines the main path that your website will be hosted under. 5 | 6 | ```js 7 | export default defineConfig({ 8 | base: '/vue-resume-template/', 9 | plugins: [vue()], 10 | }) 11 | ``` 12 | 13 | In simple terms, if you consider GitHub hosting the GitHub Pages site for this repo at the URL `https://ryanbalieiro.github.io/vue-resume-template/`, the correct base directory to set is `/vue-resume-template/`. 14 | 15 | If you're deploying to Netlify or your own custom domain where your website is located at the root, you can leave the `base` setting as `'/'`. 16 | 17 | ### 2. Building for production 18 | To compile your project for production, execute: 19 | 20 | ``` 21 | npm run build 22 | ``` 23 | 24 | This command triggers a series of processes that package your code, assets, and other necessary files, ultimately creating a production-ready version of your project. After running the command, you'll find the compiled files within the `dist` folder. 25 | 26 | ### 3. Deploying to GitHub pages 27 | 28 | The project comes with a preconfigured GitHub Actions workflow that automatically builds the project and deploys it to GitHub Pages. You can find and customize this workflow in the `.github` folder if needed. 29 | 30 | Once you push the project to GitHub, the workflow will handle the build process and publish your site to a branch named `gh-pages`. Make sure you've correctly set up the required repository permissions and GitHub Pages settings. If you encounter a build error, it's likely related to missing or misconfigured permissions. 31 | 32 | 33 | -------------------------------------------------------------------------------- /docs/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanbalieiro/vue-resume-template/b0d776ba47a99bae1ede376d3f5005d3f8236508/docs/assets/logo.png -------------------------------------------------------------------------------- /docs/assets/promo-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanbalieiro/vue-resume-template/b0d776ba47a99bae1ede376d3f5005d3f8236508/docs/assets/promo-1.png -------------------------------------------------------------------------------- /docs/assets/promo-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanbalieiro/vue-resume-template/b0d776ba47a99bae1ede376d3f5005d3f8236508/docs/assets/promo-2.png -------------------------------------------------------------------------------- /docs/assets/promo-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanbalieiro/vue-resume-template/b0d776ba47a99bae1ede376d3f5005d3f8236508/docs/assets/promo-3.png -------------------------------------------------------------------------------- /docs/assets/promo-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanbalieiro/vue-resume-template/b0d776ba47a99bae1ede376d3f5005d3f8236508/docs/assets/promo-4.png -------------------------------------------------------------------------------- /docs/assets/spacer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ryanbalieiro/vue-resume-template/b0d776ba47a99bae1ede376d3f5005d3f8236508/docs/assets/spacer.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |14 | Item {{item.id}}: 15 |
16 | 17 |