Tenant-aware backend
Implemented workspace membership, active-organization scope, permission overrides, and server-scoped Django REST Framework APIs.
Case study · Retail operations SaaS
An in-progress retail-operations platform connecting tenant-aware Django APIs with bilingual Next.js web workflows and a cashier-focused Expo client.
Private product · Public read-only demo with fictional data
Overview
TijaraOS brings organizations, branches, products, inventory, customers, point-of-sale activity, and reporting into one retail-operations system.
I worked across the relational domain, organization-scoped API access, transaction-sensitive inventory and sales services, protected web workflows, mobile API integration, and release verification.
My contribution
Implemented workspace membership, active-organization scope, permission overrides, and server-scoped Django REST Framework APIs.
Built branch inventory, movements, stocktakes, POS sales, cancellations, receipts, customers, debts, and payment workflows.
Connected protected Next.js routes and a cashier-focused Expo client to shared authentication, permissions, validation, and business rules.
Added Docker services, GitHub Actions, backend tests and checks, frontend linting, type checks, builds, and browser acceptance coverage.
Architecture
The API resolves organization and permission context before application services change PostgreSQL data. Redis supports cache and throttling concerns without becoming the system of record.
Next.js · TypeScript · same-origin gateway · HttpOnly session
Django 5.2 · DRF · tenant scope · permissions · services
PostgreSQL · transactions · row locks · movement history
Expo · cashier workflows · authenticated API client
Domain model
Organizations define the tenant boundary. Branch inventory records operational stock, inventory movements retain quantity history, and sales preserve their own line items.
Operational journey
Create the workspace context, branches, team membership, and effective permissions.
Manage products, branch quantities, movements, and stocktake workflows.
Validate a POS sale, lock relevant stock, and commit sale items and movements together.
Inspect receipts, customers, sales history, low stock, and branch-aware summaries.
Engineering decisions
Business queries and mutations use the active organization context instead of trusting a client-supplied organization identifier.
Consistency-sensitive workflows use database transactions and row locking, with inventory movements recording quantity changes.
The web gateway keeps JWT credentials in HttpOnly, SameSite cookies and validates origin and CSRF values for unsafe requests.
Checks cover backend configuration and tests, migration drift, dependency policy, frontend and mobile verification, and optional browser acceptance.
Verified outcome
The public demo verifies the bilingual web experience, seeded fictional records, and Viewer-only access while the sanitized evidence documents the private backend, mobile, data, permission, transaction, and delivery boundaries. No customer count, transaction volume, revenue, uptime, or performance result is claimed.
Technology used
Need a multi-tenant business system with reliable operational workflows?