This project is a sophisticated Resume Builder that harnesses the power of Astro to create a visually appealing website to showcase your resume and also uses Puppeteer and Chrome to generate a downloadable PDF version. The resume content is based on a YAML document which follows an improved version of the JSONResume format.
- Static Site Generation: Built using Astro for fast loading and optimal performance.
- ReactJS Integration: Leverages React components within Astro.
- TailwindCSS: Utilizes TailwindCSS for elegant, responsive design with minimal effort.
- Dark Mode + responsive: Enhances the user experience by providing a dark mode option for better readability in low-light environments. The responsive layout ensures that the resume website adapts to different screen sizes and devices, offering a seamless browsing experience for users.
- PDF Resume Export: Provides the ability to generate a PDF version of the resume using Puppeteer and Chrome headless browser.
- YAML-based Configuration: Easy to edit and maintain resume details using a YAML file that follows a customized JSONResume format.
Before you begin, ensure you have met the following requirements:
- Node.js (LTS version recommended)
- npm
To install this project, follow these steps:
- Clone this repository:
git clone https://github.com/bn3t/resume-ng.git
cd resume-ng
- Install dependencies:
npm install
After installation, you can start editing your resume by modifying the resume.yaml
file located in the source directory. Follow the improved JSONResume format structure provided in the template.
To run the project locally and see your changes in real time, execute:
npm run dev
Your resume website will be available at http://localhost:5173
.
To generate your resume as a PDF, run:
npm run build
The PDF will be saved in the dist/
directory.
This project adheres to Conventional Commits, a specification for adding human and machine-readable meaning to commit messages. This convention facilitates precise version management and changelog generation.
When committing changes to the repository, please follow the Conventional Commits format:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
For example:
feat(profile): add ability to include social media links
- include links to Twitter and GitHub.
- ensure links are optional.
Closes #42
By using this structured format, automated tools can analyze the commit messages to determine the type of version increment (major, minor, or patch) required.
This project utilizes release-please, an automated release tool that creates version bumps and changelogs based on the commit history. Upon merging changes to the main branch, release-please
analyzes the commits, calculates the next version number according to semantic versioning (semver), and generates or updates the CHANGELOG.md file with the relevant changes.
The release-please
action is configured to propose a new GitHub release automatically. A pull request is created containing the version bump and updated changelog, and upon approval and merge of this pull request, an official GitHub release is made.
- The repository maintainer merges pull requests with Conventional Commits formatted messages into the main branch.
- The
release-please
GitHub action automatically attempts to create a new GitHub release pull request as changes are merged. - Maintainers review and merge the automatically created version bump/changelog pull request.
- Upon merging, an official GitHub release is created, and the new version of the software is tagged in the repository.
By following this workflow, the project ensures well-organized release management, easy tracking of changes, and clear communication about updates to contributors and users.
The resume is published on Netlify and available at https://resume.smartobjects.be
This project is configured to be automatically deployed to Netlify, a hosting service that provides seamless deployment for static sites. In this setup, we've implemented continuous deployment for both the main branch, serving as the production site, and for individual feature branches, which will generate preview deployments. This allows for real-time testing and feedback for any changes made to the repository.
The main branch is considered the production branch. Any commits made to this branch will trigger a deployment process on Netlify, resulting in updates to the live production website.
To enable continuous deployment for the main branch:
- Log in to your Netlify account and select 'New site from Git'.
- Choose your Git provider and authorize access to your repository.
- Select the repository containing your project.
- Configure your build settings:
- Build command:
npm run build
oryarn build
- Publish directory:
dist/
(or your designated build output directory)
- Build command:
- Deploy your site.
In your Netlify dashboard, you can monitor the build process and access the deployment logs. Once the build is complete, your updated site will be available at your Netlify subdomain (yoursite.netlify.app
) or your custom domain if you've set one up.
For feature branches, Netlify provides the ability to create preview deployments. Whenever a pull request is made against the main branch, Netlify will automatically build and deploy that particular branch, creating a unique URL where the changes can be viewed live.
The process for setting up feature branch deployment is as follows:
- When you create a new pull request or push to a non-main branch, Netlify detects these changes.
- A new deployment is initiated, separate from your production deployment.
- Once the build is complete, Netlify provides a unique preview URL you can share with your team for review and testing.
- Any subsequent commits to the same branch will update the corresponding preview deployment.
This preview URL is ideal for testing new features, bug fixes, and other changes without affecting the main deployed site. You can access this URL directly from your pull request checks in GitHub, making it easy to navigate to your preview site.
The source code for this project is licensed under the MIT License - see the LICENSE file for details.
The data files in the resume
directory are proprietary and are not part of the open-source licensing
of this project. Usage of these data files is subject to the terms outlined in the
LICENSE_DATA file.