Contributing to This Project
Thank you for your interest in contributing! This guide will help you get started.
Code of Conduct
By participating in this project, you agree to follow our Code of Conduct. Please be respectful and constructive in all interactions.
Development Setup
-
Clone the repository:
bash git clone https://github.com/OBMS-Open-Business-Management-Software/core.git
-
Install Dependencies:
bash composer install
bash npm install
-
Configure Environment:
bash cp .env.example .env
-
Start the Docker containers:
bash ./vendor/bin/sail up -d
-
Generate required keys:
bash ./vendor/bin/sail artisan key:generate
bash ./vendor/bin/sail artisan passport:keys
-
Migrate the database:
bash ./vendor/bin/sail artisan migrate --no-interaction --force
-
Generate set of OAUTH clients needed for API authentication:
bash ./vendor/bin/sail artisan passport:install --no-interaction
How to Contribute
Reporting Issues
- Before creating an issue, please check if a similar issue already exists
- Use the issue template when available
- Provide as much detail as possible, including:
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Error messages and screenshots if applicable
- Your environment details (Docker version, OS, etc.)
Submitting Pull Requests
- Fork the repository
- Create a new branch from
main
:
bash git checkout -b feat/your-feature-name
- Make your changes
- Write or update tests as needed
- Ensure all tests pass
- Commit your changes using clear commit messages
- Push to your fork
- Create a Pull Request
Pull Request Guidelines
- Follow the existing code style and conventions
- Include tests for new features
- Update documentation as needed
- One pull request per feature/fix
- Keep pull requests focused and small
Commit Message Guidelines
We follow Conventional Commits. Use these types:
feat:
- New featuresfix:
- Bug fixesdocs:
- Documentation changesstyle:
- Code style changes (formatting, etc.)refactor:
- Code refactoringtest:
- Adding or modifying testschore:
- Maintenance tasks
Example:
git commit -m "feat: add new authentication feature"
Docker Development Notes
- The development environment uses Laravel Sail for Docker containerization
- By default, Laravel Sail containers are used for database and Redis cache
- External database and Redis connections can be configured if needed
- Do not use development containers in production
Code Review Process
- Maintainers will review your PR
- Address any requested changes
- Once approved, your PR will be merged
Questions?
If you have questions, feel free to open an issue or contact the maintainers.
Thank you for contributing! 🎉