Thank you for your interest in contributing to the Event Management System (EMS)! We welcome contributions from the community to improve the project. This document outlines the process for contributing, setting up your development environment, and submitting changes.
-
Find an Issue:
- Browse open issues in the GitHub Issues page.
- Look for issues labeled
good first issueorhelp wantedfor beginner-friendly tasks. - If you have an idea for a new feature or bug fix, open a new issue to discuss it.
-
Fork the Repository:
- Fork the EMS repository to your GitHub account.
- Clone your fork to your local machine:
git clone https://github.com/YOUR_USERNAME/EMS.git cd EMS
-
Set Up Your Development Environment:
- Follow the Installation section in the README.md to set up the project.
- Install additional development tools:
- PHPUnit for PHP testing:
composer require --dev phpunit/phpunit - ESLint for JavaScript linting:
npm install eslint --save-dev
- PHPUnit for PHP testing:
- Configure pre-commit hooks (if available) to enforce coding standards.
-
Create a Branch:
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
- Use descriptive branch names (e.g.,
fix/login-bug,feature/calendar-export).
- Create a new branch for your feature or bug fix:
-
Make Changes:
- Follow the Coding Standards below.
- Write tests for new features or bug fixes.
- Update documentation in
docs/orREADME.mdif your changes affect setup or usage.
-
Test Your Changes:
- Run the test suite:
vendor/bin/phpunit tests
- Manually test the application in your browser to ensure functionality.
- Verify that your changes do not break existing features.
- Run the test suite:
-
Commit Your Changes:
- Write clear, concise commit messages:
git commit -m "Add feature: calendar export functionality" - Group related changes into logical commits.
- Write clear, concise commit messages:
-
Push and Open a Pull Request:
- Push your branch to your fork:
git push origin feature/your-feature-name
- Open a pull request (PR) against the
mainbranch of the EMS repository. - In the PR description, include:
- A summary of your changes.
- Reference to the related issue (e.g.,
Fixes #123). - Any additional context or screenshots (especially for UI changes).
- Push your branch to your fork:
-
Respond to Feedback:
- Maintainers will review your PR and may request changes.
- Address feedback promptly and push updates to the same branch.
- Once approved, your changes will be merged!
-
PHP:
- Follow PSR-12 coding standards.
- Use meaningful variable and function names.
- Add PHPDoc comments for functions and classes.
- Avoid inline HTML in PHP files; use templates where possible.
-
JavaScript/CSS:
- Follow Airbnb JavaScript Style Guide.
- Use SCSS for stylesheets and organize in
ASSETS/CSS/. - Minify production assets using
npm run build.
-
HTML:
- Write semantic HTML5.
- Ensure accessibility (e.g., ARIA attributes, alt text for images).
-
Database:
- Use prepared statements for all database queries to prevent SQL injection.
- Follow the existing schema in
database/schema.sql. - Document any schema changes in
docs/database.md.
-
Commits:
- Use the format:
[type]: Short description(e.g.,feat: Add event filtering,fix: Resolve login redirect bug). - Types:
feat,fix,docs,style,refactor,test,chore.
- Use the format:
All contributors are expected to adhere to the Code of Conduct. Be respectful, inclusive, and professional in all interactions.
- Use the GitHub Issues page to report bugs.
- Provide a clear title, description, steps to reproduce, expected behavior, and actual behavior.
- Include screenshots or logs if applicable.
- Open an issue with the label
enhancement. - Describe the feature, its use case, and potential implementation ideas.
- Discuss with maintainers before starting work to ensure alignment.
If you discover a security issue, please report it privately to izeno.contact@gmail.com. Do not disclose vulnerabilities publicly until they are resolved. See SECURITY.md for details.
Contact the project maintainer:
- Email: izeno.contact@gmail.com
- GitHub: @VoxDroid
Thank you for contributing to EMS! Your efforts help make this project better for everyone.