We love to hear ideas from our users! It's what makes this platform so great and versatile. If you have an idea to contribute, please take a few moments to share it with us!
The project welcomes, and depends on, contributions from developers and users in the open source community. Contributions can be made in a number of ways. A few examples are:
- Code patches via pull requests
- Documentation improvements
- Bug reports and patch reviews
- Read this whole page "top to bottom."
- Make sure you have a GitHub account
- Introduce yourself in the developer chat at https://gitter.im/ChurchCRM/CRM
- Take a look at the Open Issues page. We've made it easy for beginners with the Good First Bug Label - these are issues that should be relatively easy to fix.
- Have fun!
Certainly! Below is the CONTRIBUTING.md file with an added section mentioning the use of Slim MVC for new APIs and pages:
-
Install Git:
- If GitHub desktop app is not already installed, download and install it from here.
-
Install Node.js version 20:
- Download and install Node.js version 20+ from the official website: Node.js Downloads
-
Install Docker:
- Download and install Docker from the official website:
-
Clone the repository:
git clone https://github.com/your-username/ChurchCRM.git
-
Install dependencies:
npm install npm run deploy
-
Set up Docker containers:
docker compose -f "docker/docker-compose.test-php8-apache.yaml" up -d --build
-
Access the website:
- open http://localhost/ in your browser and login with admin/changeme
ChurchCRM utilizes the AdminLTE framework for its user interface. Follow these guidelines when working on the UI:
-
Understanding AdminLTE:
- Familiarize yourself with AdminLTE, the framework used for the ChurchCRM user interface.
-
Making UI Changes:
- UI components are located in the
src
directory. - When making changes to the UI, ensure they align with the design principles of AdminLTE.
- UI components are located in the
-
Custom Styling:
- If you need to add custom styling, do so in a modular and organized manner. Create separate CSS files for custom styles.
-
Responsive Design:
- Ensure that UI changes are responsive and work well across different screen sizes.
For new APIs and pages, ChurchCRM follows the Slim MVC (Model-View-Controller) architecture. Follow these guidelines when working on new functionalities:
We use Cypress for end-to-end testing. Follow the previously mentioned steps to set up Cypress and write tests for UI components and functionalities.
-
Branching:
- Create a feature branch for your changes:
git checkout -b feature-name
- Create a feature branch for your changes:
-
Coding Standards:
- Adhere to the existing coding standards and style, especially in UI components and MVC structures.
-
Testing:
- Write tests for UI components and functionalities using Cypress.
-
Documentation:
- Update relevant documentation if your changes impact the UI or introduce new APIs/pages.
-
Commit Messages:
- Use descriptive commit messages in the present tense.
-
Ensure your branch is up-to-date with the main branch:
git pull origin main
-
Rebase your branch if necessary:
git rebase main
-
Push your changes:
git push origin feature-name
-
Submit a pull request via GitHub.
Please adhere to the Code of Conduct in all interactions.
Thank you for your contribution!