Server
- Rust
- Actix Web
- PostgreSQL
Client
- TypeScript
- React
- Material UI
To start developing you should build the base_image for server and client running the command below
docker compose build server_base_image client_base_imageAfter that you can start both using the command
docker compose up server clientServer
The base_image contains all compiled dependencies to be used in development, testing and build for production.
You can build it manually with
docker compose build server_base_imageTo start's server in development mode
docker compose up serverTo build server for production
docker compose build server_buildTo run tests
# in watch mode
docker compose run --rm server_test
# for single execution
docker compose run --rm server_test ./scripts/test.sh
# for single execution with coverage
docker compose run --rm server_test ./scripts/test_coverage.shTo debug database
# in development and test environment
docker compose exec database psql -U postgres -d databaseClient
As the same as server, the base_image contains all dependencies to be used in development, testing and build for production.
You can build it manually with
docker compose build client_base_imageTo start's in development mode
docker compose up clientTo build client for production
docker compose build client_buildActix Web
- https://actix.rs/docs/getting-started/
- https://docs.rs/actix-web/4.0.1/actix_web/index.html
- https://docs.rs/serde/1.0.136/serde/index.html
PostgreSQL
- https://docs.rs/tokio-postgres/latest/tokio_postgres/
- https://docs.rs/deadpool-postgres/latest/deadpool_postgres/
Testing Rust Code
- https://doc.rust-lang.org/rust-by-example/testing/integration_testing.html
- https://doc.rust-lang.org/book/ch11-02-running-tests.html#controlling-how-tests-are-run
- https://cloudmaker.dev/actix-integration-tests/
- https://matklad.github.io/2021/02/27/delete-cargo-integration-tests.html
- https://www.infinyon.com/blog/2021/04/rust-custom-test-harness/
Generate Code Coverage