Contributions are welcome. Please open an issue before working on larger changes, architectural changes, or broad refactorings.
The implemented workflows are designed for real-world use, while production deployment should include an organization-specific security, privacy and operations review.
Contributions should keep the project understandable, maintainable, and safe for handling visitor-related data.
- Use English for code, branch names, commit messages, pull requests, and technical discussions when possible.
- User-facing UI strings should be translatable.
- If you add or change visible UI text, update the translation files in
backend/lang/. - Do not include real personal data, customer names, internal company details, credentials, or secrets in issues, commits, tests, screenshots, or seed data.
Use short descriptive branch names:
feature/<short-description>for new featuresfix/<short-description>for bug fixesdocs/<short-description>for documentationtest/<short-description>for tests onlyrefactor/<short-description>for refactoring without behavior changes
Use the Docker-based development setup documented in docs/setup.md.
Typical setup:
cp backend/.env.example backend/.env
docker compose run --rm web composer install
docker compose up -d --build
docker compose exec web php artisan key:generate
docker compose exec web php artisan migrate:fresh --seed- Keep changes small and focused.
- Prefer readable Laravel and Livewire code over clever abstractions.
- Keep authorization checks server-side.
- Do not rely on frontend state for security decisions.
- Follow existing Blade, Livewire, Filament, Tailwind, and daisyUI patterns.
- Avoid hard-coded customer branding; use the branding configuration instead.
- Avoid broad rewrites unless they are discussed first.
Run tests before opening a pull request:
docker compose exec web php artisan testRun targeted tests while developing:
docker compose exec web php artisan test tests/Feature/Receptionist/ReceptionAdministerVisitTest.phpRun style checks:
docker compose exec web ./vendor/bin/pint --test -vIf your change affects frontend assets, build them:
docker compose run --rm node npm run buildIf you cannot run a check, explain why in the pull request.
Before submitting a pull request, verify:
- The change has a clear reason.
- The scope is limited to the described issue or feature.
- Relevant tests were added or updated.
- Existing tests pass.
- User-facing strings are translated.
- No secrets or real personal data were added.
- Demo seed data remains fictional and appropriate.
- Documentation was updated if behavior, setup, or configuration changed.
- Security-sensitive changes were reviewed carefully.
Do not report security vulnerabilities in public issues or pull requests. Follow SECURITY.md.
By opening a pull request, you confirm that you are authorized to contribute the work under the project license.
Contributions are provided under the same license as the project: GNU General Public License v3.0 or later.