Skip to content

Latest commit

 

History

History
239 lines (185 loc) · 6.82 KB

File metadata and controls

239 lines (185 loc) · 6.82 KB

Contributing to ResuMatrix

First off, thank you for considering contributing to ResuMatrix! 🎉 It's people like you that make ResuMatrix such a great tool.

Branch Strategy 🌳

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 develop and target your PRs to develop.

Code of Conduct

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

How Can I Contribute?

Reporting Bugs 🐛

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.)

Suggesting Enhancements 💡

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

Pull Requests 🚀

  1. Fork the repo and create your branch from main.
  2. If you've added code that should be tested, add tests.
  3. If you've changed APIs, update the documentation.
  4. Ensure the test suite passes.
  5. Make sure your code lints.

Development Process 👩‍💻

IMPORTANT: All development work should be done against the develop branch. The main branch is reserved for stable releases.

  1. 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
  1. Create your feature branch from develop
git checkout -b feature/your-feature-name develop
  1. Setup Development Environment

Environment Setup

  1. Install Node.js

    # Verify Node.js installation
    node --version  # Should be 18 or higher
    npm --version
  2. 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
  3. Install Dependencies

    # Frontend
    cd frontend
    npm install
    
    # Backend
    cd ../backend
    npm install
  4. Configure Environment

    # In backend directory
    cp .env.example .env
    # Edit .env and add your Google AI API key
  5. Verify Setup

    # Test LaTeX compilation
    cd backend
    mkdir -p tmp  # Create tmp directory if it doesn't exist
    pdflatex -version  # Should show MiKTeX version
  6. Make your changes and test them thoroughly

  7. Commit your changes (using conventional commits)

git commit -m "feat: add new feature"

Commit Message Guidelines 📝

We follow the Conventional Commits specification:

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code
  • refactor: A code change that neither fixes a bug nor adds a feature
  • perf: A code change that improves performance
  • test: Adding missing tests or correcting existing tests
  • chore: 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

Style Guide 🎨

JavaScript/React

  • Use ES6+ features
  • Use meaningful variable names
  • Comment complex logic
  • Keep functions small and focused
  • Use proper indentation (2 spaces)

CSS/Tailwind

  • Follow BEM methodology when not using Tailwind
  • Keep classes organized and minimal
  • Use CSS variables for theming
  • Follow mobile-first approach

Testing 🧪

  • Write unit tests for new features
  • Ensure all tests pass before submitting PR
  • Include both positive and negative test cases
  • Mock external dependencies

Documentation 📚

  • Update README.md if needed
  • Document new features
  • Include JSDoc comments for functions
  • Update API documentation if applicable

Review Process 👀

  1. Push your changes to your fork
git push origin feature/your-feature-name
  1. 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
  2. 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 develop branch. PRs targeting main directly will be rejected.

  1. After PR is merged:
    • Delete your feature branch
    • Pull the latest develop branch
    git checkout develop
    git pull origin develop

Project Structure 📁

ResuMatrix/
├── frontend/          # React frontend
│   ├── src/
│   ├── components/
│   └── ...
├── backend/           # Node.js backend
│   ├── app.js
│   ├── utils/
│   └── ...
└── docs/             # Documentation

Questions? 🤔

Feel free to contact the maintainers if you have any questions. We're here to help!

Recognition 🌟

Contributors will be added to our README.md and given credit for their work.

Thank you for contributing to ResuMatrix! 🙏