biswodip.← All projects
01 / Business applicationsFull-Stack Software Engineer (Sole Developer)

Erpixa

Multi-tenant business management application with organization-based access and modular workflows.

01 / The Problem & Analysis

Small businesses struggle with disconnected departmental workflows, fragmented operational records, and lack of database-enforced multi-tenant data isolation.

02 / Engineering & BA Role

Full-Stack Software Engineer (Sole Developer)

03 / Outcome

Organization membership and PostgreSQL row-level security policies restrict access to tenant records.

Overview

Erpixa is a business operations platform built by analyzing small business departmental workflows, multi-tier organizational hierarchies, and cross-team data access requirements. It translates organizational boundaries into PostgreSQL database-level security policies and modular UI workflows.

What I built

Modeled multi-tenant organization boundaries, defined member RBAC, and engineered the React, TypeScript, and PostgreSQL application with engine-level row-level security.

Product Interface

erpixa.vercel.app
Live
Erpixa real application interface from the deployed site

Engineering Decisions

Organization membership

What
Users work within an organization.
Why
Business records need to belong to the right organization.
How
Membership records connect users to organizations and their roles.

Access in the database

What
PostgreSQL policies control access to organization data.
Why
Data access should follow the same membership rules as the application.
How
Row-level security checks organization membership for supported database operations.

Business modules

What
The interface groups business functionality into modules.
Why
Different business workflows need different screens and records.
How
React components present the modules available for the organization.

Data Architecture & Schema

PostgreSQL stores organizations, members and business records. Organization relationships connect records to the business they belong to. Database policies use membership when checking access.

organization_id
UUID · Tenant isolation partition key
name
TEXT · Business entity trading name
business_type
TEXT · Industry configuration profile
tax_scheme
TEXT · GST / VAT / None tax computation mode
currency
TEXT · Multi-currency transaction default (USD, INR)
enabled_modules
TEXT[] · Active ERP modules (CRM, billing, inventory)
role
TEXT · Member RBAC: owner, admin, manager, member
user_id
UUID · Authenticated profile foreign key

API & System Workflow

The React application uses authenticated data operations to read and update organization records. The database applies the organization access rules to those operations.

  1. User Auth
  2. Organization Boundary
  3. Role Permissions
  4. Business Module
  5. PostgreSQL (RLS)

End-to-end system lifecycle

Representative Implementation

Database access control · Row-level security for multi-tenant isolation. Excerpt from the repository source.

supabase/schema.sqlTypeScript
-- PostgreSQL row-level security policy for multi-tenant isolation
CREATE POLICY org_members_isolation ON public.invoices
  FOR ALL
  USING (
    public.is_org_member(organization_id)
  )
  WITH CHECK (
    public.is_org_member(organization_id)
  );
CREATE INDEX idx_org_members_user ON public.organization_members(user_id);
Database access control · Row-level security for multi-tenant isolation
Read file on GitHub

Interface & Features

The deployed interface brings organization selection and business workflows into one application.

  • Organization membership
  • Role-based access
  • Modular business workflows
  • Database-level access control

Technology Stack

  • React
  • TypeScript
  • PostgreSQL
  • Vite

React · TypeScript · PostgreSQL · Database design · Authentication · Role-based access · Organization-level data access

Source Repositories

Open GitHub repository

Live Deployment

Run Erpixa