CONTRIBUTING.md
Rama main · réplica de lectura del repositorio original.
# Contributing to IceGuard
Thanks for your interest in improving IceGuard! 🎉 Whether it's a bug report, a feature idea,
docs, or code — contributions are very welcome.
By participating, you agree to abide by our [Code of Conduct](CODE_OF_CONDUCT.md).
## Ways to contribute
- **Report bugs** — open an issue with steps to reproduce, expected vs actual behaviour, logs.
- **Suggest features** — open a feature request describing the use case.
- **Pick a `good first issue`** — great entry points for new contributors.
- **Improve docs** — README, code comments.
- **Send a PR** — fixes, features, tests.
## Dev setup
Requirements: Docker + Docker Compose, JDK 21 & Maven, Node 18+.
```bash
docker compose up -d # infra (MinIO, Postgres, catalogs)
cd backend && mvn quarkus:dev -Dquarkus.profile=docker # API on :8080 (Swagger /q/swagger-ui)
cd frontend && npm install && npm run dev # UI on :5173
./scripts/seed-catalog.sh # demo catalogs/tables
```
See the README for architecture details and known limitations.
## Before opening a PR
Please make sure your change builds and type-checks:
```bash
# Backend
cd backend && mvn -q -DskipTests package
# Frontend
cd frontend && npx tsc --noEmit && npm run lint
```
- Add tests when you fix a bug or add behaviour (backend: JUnit/RestAssured; frontend: type-safe components).
- Keep changes focused; one logical change per PR.
- Match the surrounding code style (no project-wide reformatting in a feature PR).
- Update docs (`README.md`) when you change behaviour or config.
- **Never commit secrets.** Use `.env` (git-ignored); credentials must not appear in code, compose files or history.
## Commit & PR conventions
- Write clear commit messages (a [Conventional Commits](https://www.conventionalcommits.org/) style
such as `feat:`, `fix:`, `docs:`, `refactor:` is appreciated but not required).
- Fill in the PR template; link the issue it closes (`Closes #123`).
- CI (build + type-check) must pass. Maintainers review on a best-effort basis.
## Project structure
```
backend/ Quarkus API — api/ (REST), service/, executor/, model/, repository/, dto/
frontend/ React SPA — src/pages/, src/components/, src/api/client.ts, src/types/
scripts/ seed + helpers
```
## Reporting security issues
Please **do not** open a public issue for security vulnerabilities. Instead, contact the maintainers
privately (see the repository's security policy / contact). Treat catalog credentials and the Postgres
database as sensitive.
## License
By contributing, you agree that your contributions will be licensed under the
[Apache License 2.0](LICENSE).