Multiple implementations of the same back-end application. The aim is to provide quick, side-by-side comparisons of different technologies (languages, frameworks, libraries) while preserving consistent business logic across all implementations.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1.0 KiB

Ovierview

Read top-level README.md for more information on this repository.

Authentication

No external service is used. JWT tokens are created and verified using jwt-cpp library. Default, pre-defined user databse is a simple json file (app/defaults/users.json).

Build and Run

cd docker
docker compose build
docker compose up

Note: do not use this for development. See .devcontainer directory for development setup.

For non-container development, see Dockerfile and replicate the steps. Simple build-and-test.sh script would look like this:

#/bin/bash

OUT_DIR=./out
DEBUG_DIR=$OUT_DIR/build/debug

cmake -DCMAKE_BUILD_TYPE=Debug \
  -DCMAKE_EXPORT_COMPILE_COMMANDS=TRUE \
  -DCMAKE_TOOLCHAIN_FILE=/opt/vcpkg/scripts/buildsystems/vcpkg.cmake \
  -S /workspace -B $DEBUG_DIR

cd "$DEBUG_DIR"
cmake --build . -- -j8
ctest --output-on-failure .

Testing

Unit tests are added to ctest and executed on docker build. Execute ctest . in build dir to run it.

Use top-level testing/tavern scripts to run functional tests.