First off, thank you for considering contributing to ResuMatrix! 🎉 It's people like you that make ResuMatrix such a great tool.
This project follows a trunk-based development workflow:
main- Production releases only. No direct commits/PRs.develop- Main development branch. All features/fixes target this branch.feature/*- Feature branches, created from and merged back to develop.fix/*- Bug fix branches, created from and merged back to develop.
Golden Rule: Always create your working branch from
developand target your PRs todevelop.
By participating in this project, you are expected to uphold our Code of Conduct:
- Use welcoming and inclusive language
- Be respectful of differing viewpoints and experiences
- Gracefully accept constructive criticism
- Focus on what is best for the community
- Show empathy towards other community members
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include screenshots and animated GIFs if possible
- Include your environment details (OS, browser, etc.)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- Use a clear and descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the steps
- Describe the current behavior and explain the behavior you expected to see
- Explain why this enhancement would be useful
- List some other applications where this enhancement exists, if applicable
- Fork the repo and create your branch from
main. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints.
IMPORTANT: All development work should be done against the
developbranch. Themainbranch is reserved for stable releases.
- Clone the repository and switch to develop branch
git clone https://github.com/ZayedShahcode/ResuMatrix.git
cd ResuMatrix
git checkout develop
git pull origin develop- Create your feature branch from develop
git checkout -b feature/your-feature-name develop- Setup Development Environment
-
Install Node.js
# Verify Node.js installation node --version # Should be 18 or higher npm --version
-
Install MiKTeX
- Download from miktex.org/download
- Installation steps:
1. Run installer with admin privileges 2. Choose "Install missing packages on the fly = Yes" 3. After installation, open MiKTeX Console 4. Install basic packages and updates 5. Verify installation: pdflatex --version - Common MiKTeX issues:
- If packages fail to install, try running MiKTeX Console as administrator
- Keep your MiKTeX installation updated via MiKTeX Console
-
Install Dependencies
# Frontend cd frontend npm install # Backend cd ../backend npm install
-
Configure Environment
# In backend directory cp .env.example .env # Edit .env and add your Google AI API key
-
Verify Setup
# Test LaTeX compilation cd backend mkdir -p tmp # Create tmp directory if it doesn't exist pdflatex -version # Should show MiKTeX version
-
Make your changes and test them thoroughly
-
Commit your changes (using conventional commits)
git commit -m "feat: add new feature"We follow the Conventional Commits specification:
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the coderefactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing tests or correcting existing testschore: Changes to the build process or auxiliary tools
Example:
feat: add dark mode toggle
^--^ ^---------------^
| |
| +-> Summary in present tense
|
+-------> Type: feat, fix, docs, style, refactor, perf, test, or chore
- Use ES6+ features
- Use meaningful variable names
- Comment complex logic
- Keep functions small and focused
- Use proper indentation (2 spaces)
- Follow BEM methodology when not using Tailwind
- Keep classes organized and minimal
- Use CSS variables for theming
- Follow mobile-first approach
- Write unit tests for new features
- Ensure all tests pass before submitting PR
- Include both positive and negative test cases
- Mock external dependencies
- Update README.md if needed
- Document new features
- Include JSDoc comments for functions
- Update API documentation if applicable
- Push your changes to your fork
git push origin feature/your-feature-name-
Create a Pull Request:
- Base branch should be
develop(not main) - Provide a clear title and description
- Link any relevant issues
- Fill out the PR template completely
- Base branch should be
-
PR Review Process:
- Request review from maintainers
- Address review comments promptly
- Keep the PR up-to-date with develop branch
- Update PR based on feedback
- Maintainers will merge approved PRs into develop
Remember: All PRs must target the
developbranch. PRs targetingmaindirectly will be rejected.
- After PR is merged:
- Delete your feature branch
- Pull the latest develop branch
git checkout develop git pull origin develop
ResuMatrix/
├── frontend/ # React frontend
│ ├── src/
│ ├── components/
│ └── ...
├── backend/ # Node.js backend
│ ├── app.js
│ ├── utils/
│ └── ...
└── docs/ # Documentation
Feel free to contact the maintainers if you have any questions. We're here to help!
Contributors will be added to our README.md and given credit for their work.
Thank you for contributing to ResuMatrix! 🙏