Find a file
2026-02-27 19:43:34 +03:00
.idea first commit 2026-02-22 10:57:49 +03:00
alembic Task P054-P057 2026-02-27 18:46:07 +03:00
app fix client task view 2026-02-27 19:43:34 +03:00
context Task P054-P057 2026-02-27 18:46:07 +03:00
docs first commit 2026-02-22 10:57:49 +03:00
e2e fix client task view 2026-02-27 19:43:34 +03:00
frontend fix client task view 2026-02-27 19:43:34 +03:00
tests fix client task view 2026-02-27 19:43:34 +03:00
tmp Third commit 2026-02-23 17:54:19 +03:00
.gitignore Security commit 2026-02-23 18:39:36 +03:00
alembic.ini first commit 2026-02-22 10:57:49 +03:00
celerybeat-schedule fix client task view 2026-02-27 19:43:34 +03:00
docker-compose.yml fix client task view 2026-02-27 19:43:34 +03:00
Dockerfile first commit 2026-02-22 10:57:49 +03:00
Makefile Second commit 2026-02-23 15:20:00 +03:00
README.md fix client task view 2026-02-27 19:43:34 +03:00
requirements.txt Task P054-P057 2026-02-27 18:46:07 +03:00

Legal Case Tracker (FastAPI)

Backend skeleton: public requests + OTP + public JWT cookie + admin (admin/lawyer) + files (self-hosted S3) + SLA/auto-assign (Celery) + quotes.

Run (Docker)

cp .env.example .env
docker compose up --build

Landing (frontend): http://localhost:8081 Admin UI: http://localhost:8081/admin API (backend): http://localhost:8002 Swagger: http://localhost:8002/docs

Migrations

docker compose exec backend alembic upgrade head

Seed Quotes (Upsert)

make seed-quotes

Loads 50 justice-themed quotes into quotes with idempotent upsert by (author, text).

OTP SMS provider (SMS Aero)

OTP sending is implemented through a dedicated SMS service layer (app/services/sms_service.py).

Configure provider in .env:

SMS_PROVIDER=smsaero
SMSAERO_EMAIL=your_email@example.com
SMSAERO_API_KEY=your_api_key
OTP_SMS_TEMPLATE=Your verification code: {code}
OTP_DEV_MODE=false

For local/dev mock mode:

SMS_PROVIDER=dummy

In this mode OTP code is printed to backend logs.

You can also force mock mode with real provider settings:

OTP_DEV_MODE=true

When enabled, real SMS sending is disabled and OTP code is printed to backend logs.

Admin health-check endpoint (no SMS send): GET /api/admin/system/sms-provider-health