SendBridge

Job ID: 39838134

Budget: £250 – £750 GBP

About the Project

BridgeSend is an AI‑powered international money transfer platform for diaspora communities — think “Wise meets Remitly with intelligence.” We’re building an AI‑native fintech experience that makes cross‑border payments simple, transparent, and smart.

Platforms: Web (Next.js 14) + Mobile (React Native/Expo)
Design: Midnight Blue #191970 (brand), Champagne Gold #F7E7CE (accent), White #FFFFFF (base), plus Green/Red/Yellow/Gray for state
UX principles: simplicity first, trust building, cultural awareness; thumb‑friendly mobile, data‑rich web

MVP strategy: Ship a production‑grade sandbox (simulated transfers, no real payouts) by 5 November 2025, then integrate a real provider (e.g., Stripe/Wise/Paystack/Flutterwave) right after MVP



Project: Build the BridgeSend backend MVP (sandbox) using Django + DRF on Azure.
Timeline: Start 5 Oct 2025 → MVP 5 Nov 2025 (Europe/London).

Scope (MVP):

Auth: email/password + JWT (SimpleJWT), email verification, password reset.

Recipients: CRUD with country/bank validation; soft delete.

Rates: live snapshot + corridor 24h mini-history; benchmark/floor support.

Transfers (sandbox only): quote → create → confirm → track; Celery-driven state simulation; idempotency on create/confirm; simplified double-entry ledger with nightly reconciliation.

KYC: vendor session/link + webhook-ready; documents to Azure Blob via SAS; virus scan (ClamAV).

Notifications (email): verification, reset, KYC decisions, transfer status (SendGrid or Azure Communication Services).

Documentation & QA: OpenAPI/Swagger, Postman collection, seed data, automated tests (≥80% coverage), CI/CD to Azure.

Out of scope (MVP): real payouts, chat, complex reconciliation, multi-tenant admin, multi-language UI.

Tech stack:

Backend: Django 5.x (or 4.2 LTS), DRF, Python 3.12

Data/Infra: PostgreSQL, Redis, Celery, Docker, GitHub Actions

Azure: App Service (Linux containers), ACR, Azure PostgreSQL, Azure Blob, Key Vault, Application Insights

Tooling: drf-spectacular (OpenAPI), pytest, ruff, bandit, pip-audit

Target architecture (plain view):

React Native (iOS/Android) ─┐

HTTPS (JWT) │
Next.js Admin (web) ────────┤──────────────▶ Django + DRF (monolith: apps = authz, users, transfers, rates, kyc, ai, notifications)

Other clients (future) ─────┘

Django + Celery workers ───▶ Redis (queue/cache)
Django ORM ────────────────▶ Azure PostgreSQL
File uploads ──────────────▶ Azure Blob Storage
Secrets ───────────────────▶ Azure Key Vault
Metrics/Logs ──────────────▶ Application Insights (Phase 2+)
Events ─────────▶ Azure Service Bus (only when needed)


Milestones & Dates (Start 5 Oct → MVP 5 Nov):

M1 (5–10 Oct): Setup & Auth — Django/DRF scaffold; JWT + email verification; Swagger; CI green.

M2 (11–17 Oct): Accounts & Recipients — CRUD + validation + tests; seed data.

M3 (18–24 Oct): Transfers (Sandbox) — quote/create/confirm; idempotency; state machine; ledger postings; tests.

M4 (25–30 Oct): Rates — snapshot/benchmark/corridor + 24h history; cache strategy; tests.

M5 (31 Oct–3 Nov): KYC & Notifications — vendor session/webhook; Blob SAS + virus scan; email templates; staging deploy; UAT pack.

M6 (4–5 Nov): Hardening & Release — security headers; rate limiting; E2E tests; perf sanity; DB restore drill; slot swap; smoke tests.
If a date falls on a weekend/holiday, delivery is the next business day.

Acceptance criteria (summary):

General: Swagger updated; Postman tests pass in CI; unit coverage ≥80% on changed modules; ruff+bandit clean; pip-audit clean/waivered; staging smoke tests green; CHANGELOG updated.

Transfers: duplicate POST /v1/transfers with same Idempotency-Key returns identical response; invalid transitions → 409 transfer_invalid_state; expired quote → 409 transfer_quote_expired; ledger invariant holds (each journal sums to zero; derived balance == cached after reconciliation).

KYC: webhook signature verified; retries idempotent; virus-scan pass/fail covered; infected blobs deleted and logged; PII redaction in logs verified.

Release: slot-swap rehearsal; rollback plan; DB restore drill passes smoke tests.

Security & compliance (MVP stance):
DRF + SimpleJWT; secure headers (CSP/HSTS); CORS allowlist; rate limiting; secrets via Azure Key Vault (Managed Identity); HTTPS only; logging with PII redaction; GDPR export/delete scaffolding; payments remain in test/sandbox only.

Deliverables:
GitHub repo (we own IP), Dockerfiles + compose, seed data & management commands, CI/CD pipelines (GitHub Actions) to Azure, infrastructure notes/README, staging environment + sandbox go-live, two-week bugfix warranty.

Optional: You can also take on the Frontend (Next.js 14 + React Native/Expo) — we’ll provide our existing framework and routes to accelerate you.

Access we provide:
Azure subscription/resource group, GitHub repo, domain/DNS (e.g., api.example.com), email provider (SendGrid or Azure Communication Services), sample data, branding/design tokens.

Proposal requirements:
Links to relevant Django/DRF projects (fintech/payments preferred); a brief approach to KYC and ledger/state machine; examples of Azure deployments you’ve done; confirmation you can start 5 Oct and deliver MVP by 5 Nov; milestone-based pricing and communication cadence.