Skip to content
jolarca-devPublic

About

Marketplace platform application code (PCI-DSS payments, KYC/AML, VAT OSS scope).

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

108 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jolarca

CI Security Coverage Lighthouse License

Baltic-first B2C/B2B2C marketplace (LT · LV · EE · EN): seller onboarding with KYC-lite/VIES validation, EU VAT OSS-aware checkout, parcel-locker shipping (DPD/Omniva), and AI-assisted catalog translation with strict PII guardrails.

Compliance targets: GDPR (incl. Art. 17 erasure, Art. 20 portability, RoPA), ISO 27001-aligned controls, SOC 2 Type II evidence readiness, PCI DSS SAQ-A (card data never touches our systems — Stripe is the only payment boundary).

Licensed AGPL-3.0 (see LICENSE). Network-use copyleft applies.

Architecture (high level)

flowchart LR
  FE[Next.js frontend<br/>lt/lv/et/en] -->|REST /api/v1| BE[Django + DRF]
  BE --> PG[(PostGIS + pgcrypto<br/>+ pgvector)]
  BE --> RD[(Redis)]
  BE --> W[Celery workers<br/>queues: default email media ai compliance]
  W --> MINIO[(MinIO/S3 media)]
  PAY[payments_app] -->|only Stripe boundary| STRIPE[Stripe Connect + Tax]
  TAX[tax_app] -->|via payments_app| STRIPE
  SHIP[shipping_app] --> DPD[DPD]
  SHIP --> OMNIVA[Omniva]
  AI[ai_service_app] --> LLM[Local LLM pods → DeepL → commercial fallback]
  CRM[bitrix24_integration_app] --> B24[Bitrix24 CRM]
  COMP[compliance_app] -.erasure fan-out.-> BE
Loading

Design invariants (enforced in review, see docs/architecture/01-modular-breakdown.md):

  1. payments_app is the only module importing the Stripe SDK.
  2. Cross-app calls go through services.py — never another app's models/views/tasks.
  3. AI work runs only in Celery (ai queue), never in the request path.
  4. openapi.yaml and frontend/src/generated/api.ts are CI artifacts — hand-edits fail CI (drift gate: npm run api:drift).
  5. Fail-closed: GDPR_PROCESSING_HALTED=1 stops all mutating traffic (503).

Quickstart

cp .env.example .env          # fill in values
make bootstrap && source scripts/activate.sh   # venv + deps, then activate
make sysdeps                  # GDAL on the host (one-time, needs sudo)
make dev-up                   # full stack via docker-compose.dev.yml
make migrate && make seed
# Frontend: http://localhost:3000  ·  API schema: http://localhost:8010/api/schema/swagger/

Documentation

Full inventory, plus the authority map that names which document owns which topic: docs/README.md. Every path in it is resolved against the working tree by make check-docs, so the index cannot silently go stale.

This section lists entry points only, on purpose: it previously carried a ten-row table of documents that duplicated docs/, and two indexes drift — one of them always ends up wrong, which is the mechanism recorded as QODER.md §8 G1 and G24.

About

Marketplace platform application code (PCI-DSS payments, KYC/AML, VAT OSS scope).

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages