Contributing guide

🤝 Contribution Guide

Thank you for your interest in contributing to ProFresh — we're thrilled to have your support! Whether it’s fixing a typo or building a new feature, every contribution counts.

🧠 General Guidelines

  • Be patient: We aim to review community pull requests as soon as possible, but please understand that it may take a few days (or longer) depending on the complexity.

  • No contribution is too small: Typos, documentation improvements, small bug fixes — all are welcome and valuable.

  • Keep things simple: ProFresh aims to stay lightweight and maintainable. Avoid over-complicating code or introducing unnecessary dependencies.

  • Done is better than perfect: We prefer shipping small, useful features quickly over polishing indefinitely.


🧱 Project Philosophy

ProFresh is built using Laravel on the backend and Vue.js on the frontend. Our goal is to keep the codebase clean, modular, and easy to maintain.

  • Avoid adding new technologies unless necessary.

  • Stick to the conventions and tools already in use.

  • If your PR adds significant complexity or introduces a third-party service (e.g., Redis), open an issue first to discuss it.


🌿 Git Workflow

We follow GitHub Flow. Please:

  1. Fork the repository.

  2. Create a new feature branch.

  3. Make your changes.

  4. Submit a pull request (PR) with a clear title and description.


🔤 Commit Message Convention

We use conventional commit message for clear, consistent commit history.

Examples:

feat(tasks): add ability to assign task to userfix(auth): handle 2FA fallback correctly

Supported types:

  • feat: New feature

  • fix: Bug fix

  • docs: Documentation changes

  • style: Formatting only (no code change)

  • refactor: Code improvement (no bug or feature)

  • test: Adding or fixing tests

  • chore: Other changes (e.g. build or tooling)

  • ci: Continuous integration updates


🧪 Backend Code Standards

  • Keep services and controllers small and single-purpose.

  • Prefer service classes over bloated controllers.

  • Follow object calisthenics where possible (e.g., one level of indentation per method).

  • Write unit tests for new backend logic.

  • Keep each PHP class under 100 lines where feasible.


🎨 Frontend Contribution

If your change affects the UI, please:

  • Open an issue first with mockups or a description.

  • Stick to the current design language (spacing, typography, modals, colors).

  • Use Vue.js with clean, reactive patterns.

  • Avoid custom CSS unless absolutely necessary.

  • Don't introduce jQuery or extra frontend libraries unless discussed.


⚙️ Tech Stack Reminders

  • We use Vite for frontend tooling.

  • Vue components communicate with Laravel via API endpoints.

  • Stick to Bootstrap for styling wherever possible.


🧩 Summary

We love seeing contributions of all kinds. ProFresh is a community-driven effort, and your help makes it better for everyone. Keep it clean, simple, and collaborative — and let's build something great together.

Last updated