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 several 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 Gitter.
- Take a look at the Open Issues page. We've made it easy for beginners with the good first issue label — these are issues that should be relatively easy to fix.
- Have fun!
-
Install Git:
- Please follow https://github.com/git-guides/install-git
- note: if you would like to use a graphical interface, consider using the GitHub desktop app.
- Please follow https://github.com/git-guides/install-git
-
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 ci 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 log in with
admin
/changeme
.
- Open http://localhost/ in your browser and log in with
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. Ensure your changes 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
-
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!