- teams.service.spec.ts: pick a checkpoint older than the adjustment's own month so the exclusion test actually fails without the exclusion filter - teams.service.ts: only negate fine/levy/fee amounts when positive, matching TeamMembersService.recomputeBalance and Transaction.setBalance() exactly, instead of negating unconditionally - teams.service.ts: outstanding-history helper now returns a positive value when players owe money, matching the house convention already established by getOverview()'s team.outstanding - overview.spec.ts: assert the balance chart's legend becomes visible - teams.service.spec.ts: add coverage for inactive-player exclusion and a positive-balance (prepaid credit) case Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
PROD System
Datenbank auf Server: teamwallet
NestJS REST API boilerplate 🇺🇦
ssh -L 3306:127.0.0.1:3306 bastian@h2979752.stratoserver.net
Description
Seeden: npm run seed:run
Table of Contents
- Features
- Quick run
- Comfortable development
- Links
- Automatic update of dependencies
- Database utils
- Tests
Features
- Database (typeorm).
- Seeding.
- Config Service (@nestjs/config).
- Mailing (nodemailer, @nestjs-modules/mailer).
- Sign in and sign up via email.
- Social sign in (Apple, Facebook, Google, Twitter).
- Admin and User roles.
- File uploads. Support local and Amazon S3 drivers.
- Swagger.
- E2E and units tests.
- Docker.
- CI (Github Actions).
Quick run
git clone --depth 1 https://github.com/brocoders/nestjs-boilerplate.git my-app
cd my-app/
cp env-example .env
docker compose up -d
For check status run
docker compose logs
Comfortable development
git clone --depth 1 https://github.com/brocoders/nestjs-boilerplate.git my-app
cd my-app/
cp env-example .env
Change DATABASE_HOST=postgres to DATABASE_HOST=localhost
Change MAIL_HOST=maildev to MAIL_HOST=localhost
Run additional container:
docker compose up -d postgres adminer maildev redis
npm install
npm run migration:run
npm run seed:run
npm run start:dev
Links
- Swagger: http://localhost:3000/docs
- Adminer (client for DB): http://localhost:8080
- Maildev: http://localhost:1080
Automatic update of dependencies
If you want to automatically update dependencies, you can connect Renovate for your project.
Database utils
Generate migration
npm run migration:generate -- src/database/migrations/CreateNameTable
Run migration
npm run migration:run
Revert migration
npm run migration:revert
Drop all tables in database
npm run schema:drop
Run seed
npm run seed:run
Tests
# unit tests
npm run test
# e2e tests
npm run test:e2e
Tests in Docker
docker compose -f docker-compose.ci.yaml --env-file env-example -p ci up --build --exit-code-from api && docker compose -p ci rm -svf
Test benchmarking
docker run --rm jordi/ab -n 100 -c 100 -T application/json -H "Authorization: Bearer USER_TOKEN" -v 2 http://<server_ip>:3000/api/v1/users