Thank you for considering contributing to ci4ms – CodeIgniter 4 Modular CMS/ERP!
This guide outlines how you can get started, contribute effectively, and follow the best practices when working with this project.
Before contributing, please ensure you have:
- Read the README to understand the scope and purpose of the project.
- Installed dependencies and set up a CodeIgniter 4 environment.
- Familiarized yourself with the modular directory structure and CodeIgniter Shield integration.
- Enabled development mode (
CI_ENVIRONMENT = development) for better debugging.
You can help improve ci4ms in several ways:
- Reporting bugs
- Suggesting new features or module ideas
- Improving documentation
- Contributing code via pull requests
To report a bug:
- Search the Issues tab to see if it’s already known.
- If not listed, open a new issue using the Bug Report template.
- Provide detailed information:
- Steps to reproduce the issue
- Expected vs. actual results
- PHP and CodeIgniter versions
- Any relevant logs or stack traces
Have a feature or improvement in mind?
- Open an issue with the Feature Request template.
- Describe the need and proposed solution clearly.
- Explain how it fits into the modular structure of the CMS/ERP.
- ci4ms follows a modular folder structure (e.g.,
Modules/Auth,Modules/Users,Modules/Settings). - Avoid hard-coded paths; use service locators and helpers when possible.
- Use PSR-12 coding standards.
- Keep logic reusable, secure, and clean. Each module should be self-contained.
- Fork this repository.
- Create a new feature branch:
git checkout -b feature/your-feature-name
- Add your changes in the appropriate module.
- Run any tests and ensure no errors exist.
- Commit with a clear message:
git commit -m "Add [Module]: Short description of feature" - Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request and describe your changes and reasoning.
- Code must not break existing functionality.
- Follow modular conventions and naming consistency.
- Add or update tests if applicable.
- Update README or related module documentation if needed.
- Run module-specific tests (if present).
- Aim for small, clearly scoped commits for easier reviews.
- If applicable, use
php spark testor integrate PHPUnit directly.
We expect contributors to follow the Code of Conduct in all interactions.
Your support makes ci4ms better!
Every issue you report, feature you suggest, or code you contribute helps the community grow 💙