Thank you for considering contributing to maatify/mongo-activity! We welcome improvements, bug fixes, tests, documentation, and new ideas that help strengthen the Maatify Ecosystem.
Before contributing, ensure you have:
- PHP 8.4+
- Composer v2
- MongoDB 2.x driver (
mongodb/mongodb) - Local MongoDB instance (or remote URI)
- PHPUnit for running tests
Click Fork on GitHub and clone your fork:
git clone https://github.com/<your-username>/mongo-activity.git
cd mongo-activityUse meaningful branch names:
git checkout -b feature/add-archive-optimizationExamples:
fix/search-pagination-edge-casefeature/add-new-activity-typedocs/improve-readme
composer installCopy environment:
cp .env.example .envThis project follows:
- PSR-12
- Strict typing (
declare(strict_types=1);) - Enums and DTO best practices
- Clean architecture principles
Please format your code before submitting:
composer fix(if project contains a fix script — otherwise use PHP-CS-Fixer manually)
Before submitting a PR, ensure all tests pass:
vendor/bin/phpunitIf adding new features, include new test cases under /tests.
Use the standard Maatify commit style:
feat:— new featurefix:— bug fixrefactor:— internal changetest:— test-only updatesdocs:— documentationchore:— maintenance
Examples:
feat: add quarterly archive resolver
fix: correct UTCDateTime conversion for search filters
docs: improve installation instructions in README
Push your branch:
git push origin feature/add-archive-optimizationThen open a PR on GitHub:
- Clearly describe the change
- Link any related issues
- Be concise and technical
We review PRs as quickly as possible.
SECURITY.md to report privately.
By contributing, you agree to:
- Write clean, tested, maintainable code
- Respect others in discussions and PR reviews
- Avoid breaking backward compatibility without reason
- Use responsible disclosure for vulnerabilities
Each new feature or bug fix should:
- Have at least one corresponding test
- Not reduce overall test coverage
- Maintain stability of existing behaviors
If you modify any of the following directories, make sure logic remains modular:
src/Repository→ DB logicsrc/Enum→ activity types, roles, modulessrc/Contract→ interfacessrc/DTO→ structured data objectsscripts/→ automation & CRON tools
© 2025 Maatify.dev
Engineered by Mohamed Abdulalim (@megyptm) — https://www.maatify.dev
📘 Full documentation & source code:
https://github.com/Maatify/data-adapters