1. Ignore unnecessary files, such as `pgcli` log/history, and extra `docker-compose` definitions.
2. Add `Makefile` with common tasks.
3. Add git pre-commit hook to ensure project is always properly formatted.
4. Add [`btree_gist`][0] extension to `postgres`.
Reviewed-on: #6
[0]: https://www.postgresql.org/docs/14/btree-gist.html
We move from start/end date to a period date range to represent the
interval where a training take place.
Besides that, new constraints are added to ensure a trainings of a user
can't overlap. These constraints reflect in changeset validation.