Skip to content

JoelPagliuca/trashbet

Repository files navigation

TrashBet

SaltyBet - style betting system but in Kotlin-Ktor

ui demo

Features

  • create bets with a binary outcome
  • place wagers on bets with working odds calculation
  • working payouts
  • REST API
  • session auth
  • admin role

Stack

  • Front end
  • Back end
    • ktor microservice framework
    • exposed orm
    • app/src/main/kotlin/trashbet
  • Ops
    • scripts in bin
    • single Dockerfile for the web tier
    • compose setup for web and postgres db

Deploying

# setup app/web/.env
./bin/set-environment.sh
./bin/docker-build.sh
docker-compose up
# first signup will be an admin

app available on port 8080

Running locally

Configuration

Environment variables

TRASHBET_PORT = 8080
TRASHBET_ENVIRONMENT = testing

API

# boot up a local db
./dev-db-run.sh
./gradlew run

health endpoint

web bundle is also being served on this port at the webroot

api spec ¯\_(ツ)_/¯

Web

create app/web/.env

API_ENDPOINT=http://localhost:8080

then run

# from ./app/web
npm install
npm run dev

available on port 5000

Tests

./gradlew test

Contributors

JoelPagliuca