To create a cluster with distributed nodes, the following changes were made:
* Use [`dns_cluster`][0] to execute distributed nodes
* Add _script_ to execute distributed nodes locally
Also, improve local execution by:
* Use [`mix release`][1] to make easier [deploy `phoenix`][2]
* Use [`compose watch`][3] to synchronize code from the host with the service
Some minor improvements:
* Ignore files and folders in git and docker
* Remove boilerplate comments
[0]: https://github.com/phoenixframework/dns_cluster
[1]: https://hexdocs.pm/mix/Mix.Tasks.Release.html
[2]: https://hexdocs.pm/phoenix/releases.html
[3]: https://docs.docker.com/compose/how-tos/file-watch/
Co-authored-by: Joao P Dubas <joao.dubas@gmail.com>
Reviewed-on: #96
Co-authored-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
Co-committed-by: Joao P Dubas <joao.dubas+gitea@gmail.com>
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.