Skip to content

About

简历模版 Create a professional website & resume that helps you stand out from the crowd using our fast and easy personal web application, designed to highlight your skills and experience.

Topics

Resources

Code of conduct

Stars

488 stars

Watchers

4 watching

Forks

Latest commit

 

History

368 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

切换到中文版


The Ultimate Personal Web Resume📃

Open Source Love svg2 FOSSA Status Documentation Status GitHub tag

Gitter PRs Welcome GitHub license GitHub forks GitHub stars

⚓ Stand out of the crowd by showing a professional website/resume.
👔 💼 Build fast 🚀 and easy the best Personal Web Application resume!


Watch the video

Get rid of your old and deprecated text resume by using the first Open-source Web Application (100% free), which makes a professional personal website and portfolio easy and quick to build.

What is included❓

  • A fully functional Angular 21 (LTS) application with a customizable template and content;
  • Totally responsive for the mobile and desktop devices (allow mobile gestures too... ;));
  • Internationalization for English and Portuguese (easy for adding/removing new languages - in18 lib);
  • Mobile navigation sharing (Share the resume with native apps like Whatsapp, LinkedIn, Facebook, etc...);
  • A complete Wiki that provides support;
  • Integrated with Google Analytics;
  • Optimized for SEO ( Crawler and Bots from Google, Bing, etc... );
  • Using the schemas for structured data (schema.org);
  • Firebase integration in the contact form;
  • Composed of 5 custom sections (Welcome, About Me, Experiences, Posts, and Contact);
  • Router fragment friendly (e.g: https://guilhermeborgesbastos.com/posts );
  • Source code verified by static code analyzers (safe and ready for production);

Changelog

Learn about the latest improvements.

🗂 Wiki Documentation & 💬 Community Chat

To get more help on the setup, customization or any other aspect, accessing the following:

  • Wiki on GitHub - A complete documentation, from getting started until deploy.
  • Gitter - A Community Chat for further discussions.

⚓Prerequisite

A video tutorial is also available watch it [Video is outdated, use as guideline, if needed].

  1. Node.js ^20.19.0, ^22.12.0 or ^24.0.0 (the versions supported by Angular 21). The project pins Node 24 in .nvmrc, so with nvm you can just run nvm use. To see what version of Node.js is installed on your machine type the following command in the terminal:
node -v
  1. If you haven't installed Node.js in your machine then go to this link in order to install node.

  2. npm 10 or later (bundled with the Node.js versions above). To check it, run:

npm -v
  1. TypeScript and the Angular CLI are installed locally as project dependencies (TypeScript 5.9, Angular CLI 21); no global installation is required.

📥 Installing and Executing locally

A video tutorial is also available watch it.

  1. Fork this repository, by clicking the Fork button at the top-right on this page. Learn how to fork GitHub projects

  2. Clone the forked repository from your GitHub account.

git clone https://github.com/[replace-with-your-github-username]/live-resume.git
  1. Go to the cloned directory (e.g. cd live-resume).

  2. Run npm ci (or npm install). No --force or --legacy-peer-deps flag is needed.

  3. Inner the folder of the cloned project, start the application:

npx ng serve -o --host 0.0.0.0 --configuration en

P.S: npm run start:en (or npm run start:pt) starts the same dev server without the extra flags. If you prefer a global ng command, run npm install -g @angular/cli@21.

Note: the optional parameters:

  • -o aliases for opening the default browser as soon the application is served.
  • --host 0.0.0.0 is useful if you want to see how your application runs on a mobile or from some other laptop/computer/network.
  • --configuration=en in this example the application will be displayed in en-US, by replacing the enwith pt => --configuration pt, the application language would be pt-BR.
  1. After that, the command will start a server instance and listen on port 4200. Open (http://localhost:4200/) in your browser. The Live Resume will be displayed.

Please, feel free to make improvements, or any sort of changes and send it back via pull request. Your contribution is always welcome!

✅ Testing and quality checks

Command What it does
npm run lint ESLint (flat config in eslint.config.js) with the angular-eslint rules for TypeScript and templates.
npm run validate:posts Checks src/assets/data/posts.json (see Validating posts.json).
npm test -- --watch=false --browsers=ChromeHeadless Unit tests (Jasmine + Karma).
npm run build -- --configuration production Production build; must finish without warnings.
npm run build-locale Localized builds for both languages (dist/en, dist/pt). Missing translations fail the build.
npm run test:e2e Builds both locales and runs the Playwright browser suite.
npm run test:e2e:run Runs the browser suite against the existing dist/ output (no rebuild).
npm run test:e2e:docker Builds the Docker image, runs it on port 8080 and runs the browser suite against the container.

The browser suite (e2e/) runs Chromium at desktop (1440×900) and mobile (Pixel 7) sizes against the production builds, served by e2e/serve.mjs at http://127.0.0.1:4300/en/ and /pt/ (change the port with E2E_PORT). It checks rendering and layout, translations, fragment navigation, the carousels (buttons and swipe), mobile navigation, the 404 page and contact-form validation. Firebase, reCAPTCHA and Google Analytics requests are stubbed or blocked, so tests never send real data, and any console error, page error or failed request fails the run.

Install the browser once with npx playwright install chromium. Results go to test-results/: an HTML report (npx playwright show-report test-results/report), landing-page screenshots for every locale and viewport in test-results/screenshots/, and screenshots plus traces of any failing test in test-results/artifacts/.

The GitHub Actions workflow (.github/workflows/ci.yml) runs all of these checks on every push and pull request.

🐳 Running with Docker

The Dockerfile builds both languages from the lockfile and serves them with Nginx, at the same /en/ and /pt/ paths as production:

docker build -t live-resume .
docker run --rm -p 8080:80 live-resume

Then open http://localhost:8080/en/ or http://localhost:8080/pt/. /en and /pt redirect to their trailing-slash form, other paths under a language return that language's app (so its 404 page is shown), and anything outside /en/ and /pt/ returns 404. Run npm run test:e2e:docker to build the image and run the browser suite against a container.

Published images: guilhermeborgesbastos/live-resume on Docker Hub (linux/amd64 and linux/arm64).

Publishing a release. The Docker publish workflow (.github/workflows/docker-publish.yml) runs when a version tag is pushed. Set the version, merge, then tag the merged commit:

npm version 2.1.0 --no-git-tag-version   # updates package.json and package-lock.json; commit it in a PR
git tag v2.1.0 && git push origin v2.1.0

The workflow fails unless the tag equals package.json's version. It runs the browser suite against the container, then pushes 2.1.0, 2.1, 2, latest and sha-<commit>; pre-release tags such as v2.1.0-rc.1 only publish their exact version. It needs a DOCKERHUB_TOKEN repository secret (a Docker Hub access token with read & write access), and optionally a DOCKERHUB_USERNAME variable (defaults to the repository owner). Pull requests that change the image run the same build and tests without publishing.

✍️ Adding posts with Claude Code

The repository includes a Claude Code skill that adds a new card to the Posts section. Run /add-post <article URL> and it writes the English and Portuguese title and description, passes all of that text through the Humanizer skill, saves the thumbnail and inserts the record into src/assets/data/posts.json. Full guide: docs/add-post-skill.md.

🔨 How to customize?

In the Wiki Doc. there is a specific page supporting you on how to apply customizations to the layout and more... See page

🖋 Contribute

Feel free to add new features, language supports, fix bugs, or improve the docs. Any kind of help is appreciated! If you make any kind of improvements, please, send them back as a Pull Request. Let's keep making it better and up-to-date.

Credits©️

This project uses several open source packages:


Site www.guilhermeborgesbastos.com
LinkedIn profile
Facebook profile

📝 License

The theme is available as open source under the terms of the MIT License.

Analytics

About

简历模版 Create a professional website & resume that helps you stand out from the crowd using our fast and easy personal web application, designed to highlight your skills and experience.

Topics

Resources

Code of conduct

Stars

488 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages