Files
Lotty/README.md
T
2026-02-24 09:43:00 +03:00

3.2 KiB

Lotty A/B Platform

Service for managing A/B testing experiments. Drive your tests without breaking user experience!_)

🎨 Artifacts

Runbook

RUNBOOK.md

Diagrams

Testing report

Can be seen in GitLab CI/CD pipeline run

  1. Go to the pipelines page
  2. Click on the latest pipeline run pipeline run
  3. Testing report (Tests tab) testing report
  4. Tests coverage (Jobs tab) tests coverage

Here on screenshot you can see coverage percent (97%), for detailed coverage per file go to the test job log

tests coverage per file

Repository map

MAP.md

Yep, artifacts content is written in Russian, but all other docs are in English, this is for judges' convenient experience.

📋 Instructions

Dedicated services setup

Backend

Setup with docker compose

Warning

Please note that by default containers will use ports 80 (reverse proxy) and range 14601-14611 (for direct access to containers), so there is must be no listeners on this ports range. You can customize the ports in .env.template.

0. Prerequisites

1. Configuration

  • Docker compose configuration files are stored in deploy/compose.
  • Configuration files for containers are stored in infrastrucutre/configs. Env could be customized by creating .env file in each service config directory, it will automatically override the default values from .env.template.
  • Ports on which containers will be accessible are defined in .env.template. This could be customized by creating .env file in the root directory and patching the following lines compose you are running:
x-defaults: &defaults
  project_directory: ./
  env_file:
    - ./.env.template
    - ./.env # add this

2. Choosing compose configuration

  • compose.yaml - default configuration with base services included.
  • compose.prod.yaml - configuration for production environment with full observability stack.

3. Running compose configuration

To run the compose configuration, use the following command:

docker compose -f compose.yaml up
# OR
docker compose -f compose.prod.yaml up

Thats it, project is already preconfigured for running, so no changes before running this are required.

Linting && formatting

Instructions here.

Example run: style

Observability

Structured logs

logs

Health/ready endpoints (/health//ready)

health ready

Metrics (/metrics)

metrics

System metrics (gc, requests, etc.) and several business metrics (lotty_decide_requests_total, lotty_events_ingested_total").