myResume2/README.md
Blade34242 31f71b31e5
Some checks failed
Docker Publish / build-and-push (push) Failing after 3m18s
Node CI / lint (push) Successful in 1m30s
Release 4.1.1: UI refresh, themes, examples, docs
2025-12-01 15:01:14 +07:00

12 KiB


Logo

my-resume2

Do you want to have a resume online? You can use this project to easily mount your data with your pictures.
Explore the docs »

View Demo 1 · View Demo 2 · Report Bug · Request Feature


Table of Contents
  1. About The Project
  2. Getting Started
  3. Changelog
  4. Roadmap
  5. Contributing
  6. Contact
  7. Acknowledgments

About The Project

This is a NodeJS application that exposes a resume. I was inspired by the design of other resume projects (see Acknowledgments) and created my own version.

Highlights

  • Modern hero/timeline layout with projects grid, skill levels, and testimonial slider
  • Light/dark theme toggle (persisted) and themed cards/headings
  • JSON-driven content for links (with labels/icons), projects, skills (levels/recent), testimonials (avatars/ratings), and interests
  • Three built-in examples selectable via example=1|2|3 plus Dockerized runtime
  • Bundled fresh light/dark screenshots in docs/

Demo Screenshots

Product Screenshot Product Screenshot Product Screenshot Product Screenshot Product Screenshot Product Screenshot

(back to top)

Screenshots

Light
Light example

Dark
Dark example

(back to top)


Built With

Dynamic JSON Badge Dynamic JSON Badge Dynamic JSON Badge Dynamic JSON Badge Dynamic JSON Badge

(back to top)


Getting Started

To get a local copy up and running, follow these steps.

Usage with Docker

The application is dockerized.

Docker pull Docker stars Docker size

Pull with:

docker pull blade34242/my-resume2:latest 

You can run examples from the demos using (mapped to local ports):

docker run --name HomerResume -p 8001:5555 -e example=1 -d blade34242/my-resume2:latest
docker run --name DevResume -p 8002:5555 -e example=2 -d blade34242/my-resume2:latest
docker run --name AlexResume -p 8003:5555 -e example=3 -d blade34242/my-resume2:latest

To start with your own resume, follow these steps:

  1. Create a folder, copy one of the example files like me.json from <public/examples/cvExample2>, and add your image as me.jpg and background image.

  2. Run the following command and add your mount path:

docker run --name MyResume -p 8003:5555 -v <MY_MOUNT_PATH_LOCAL>:/home/node/app/public/ress/mountedRess -d blade34242/my-resume2:latest

Adjusting port: set `-e PORT=<port>` if you want the container to listen on a different internal port, and update the `-p <host>:<container>` mapping accordingly.
  1. Customize your icons and images as described in the instructions.

(back to top)

Usage without Docker

  1. Clone the repo:

    git clone https://github.com/blade34242/my-resume2.git
    
  2. Install NPM packages:

    npm install
    
  3. Start the app:

    npm start
    

    The app listens on env PORT (default 5555).

  4. Customize the me.json in <public/ress/mountedRess>, add your image as me.jpg and background as background.jpg.

Env configuration:

  • PORT: Port the app listens on (default 5555). Example: PORT=8080 npm start
  • example: Selects built-in data on first run: 1 for cvExample1, 2 for cvExample2. Example: example=2 npm start

Required fields in me.json (basic validation):

  • Strings: picture, name, header, about
  • Arrays: links, workexperiences, menus, educations, interests

Node version

This project runs on Node 20+ (tested on Node 22). If you use nvm:

nvm install 22 && nvm use 22

CI/CD (GitHub Actions)

Two workflows are included in .github/workflows/:

  • Node CI: Installs dependencies and runs lint on pushes/PRs to main.
  • Docker Publish: Builds and pushes the Docker image on pushes to main and tags (v*.*.*).

Setup for Docker Hub publishing:

  1. Create a repository on Docker Hub, e.g. yourname/my-resume2.
  2. In your GitHub repo Settings → Secrets and variables → Actions, add:
    • DOCKERHUB_USERNAME: your Docker Hub username
    • DOCKERHUB_TOKEN: a Docker Hub Access Token
    • IMAGE_NAME: e.g. yourname/my-resume2
  3. Push to main to publish :latest, or create a tag like v1.2.3 to publish a versioned tag.

Badges:

Node CI Docker Publish

Releases

  • Create a semver tag to publish a versioned Docker image, e.g.:

    git tag v4.0.2 && git push origin v4.0.2
    
  • Expected Docker tags:

    • latest on pushes to main
    • v4.0.2 on the tag push (replace with your version)

(back to top)


Changelog

4.1 - UI Refresh + Content

  • Light/dark theme toggle with improved heading contrast and themed cards
  • Projects grid, skill levels, testimonial carousel, contact strip
  • New example 3 (example=3), extra links (Portfolio/CV), and refreshed screenshots in docs/

4.0 - Modernize + CI/CD

  • Node 22 base image, reproducible Docker builds, non-root run
  • PORT env support; unified example env
  • Basic me.json validation with clear error messages
  • ESLint setup and Node CI workflow
  • Docker publish workflow (push latest on main, semver tags on releases)

3.5 - Major Bugfix and Logging Improvement

  • Enhanced logging with log4js

3.4 - New Features

  • Added new config enableTestimonials and showTestimonialsInMain
  • Option to display testimonials in main content or under interests

v3.3 - New Features

  • Enhanced logging with log4js

v3.2 - BugFix

v3.1 - Enhancements and Bug Fixes

  • Fixed custom icon loading in mounted resume folder
  • Optimized Docker image size and build process
  • Improved layout for mobile responsiveness
  • Updated documentation

v3.0 - Initial Release

  • Project setup and initial configuration
  • Added Docker support with sample resume examples
  • Basic resume structure with customizable me.json
  • Integrated Express, EJS, and Bootstrap for layout and styling
  • Provided example resumes (Homer and Jonathan)

(back to top)


Config Explaination

enableTestimonials:

Type: Boolean (true / false)
Description: This configuration controls whether the testimonials section is displayed. If set to true, the testimonials will be shown on the page. If set to false, the testimonials section will be hidden.

showTestimonialsInMain:

Type: Boolean (true / false)
Description: This setting controls the location of the testimonials section. When true, the testimonials will appear in the main content area (below work experience). If false, the testimonials will be displayed under the "Interests" section.

Roadmap

  • PDF Export Feature
  • Logger mount file/folder

See the open issues for a full list of proposed features (and known issues).

(back to top)


Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this project better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)


Contact

Blade34242 - blade34242@gellert-professionals.com

Project Link: https://github.com/blade34242/my-resume2

(back to top)


Acknowledgments

(back to top)