Real-Time Workshop & Inventory for Motorbike workshop

Job ID: 40495237

Budget: $250 – $750 AUD

# Project Title: Full-Stack React Developer Needed – Real-Time Workshop & Inventory OS (Supabase + i18n)

## Project Overview

We are looking for an experienced Full-Stack React developer to build a **Workshop Operations & Inventory Management System**. The application core must feature real-time update capabilities, a multi-language UI supporting English and Tamil, and a completely decoupled state-management architecture using custom hooks.

The backend infrastructure is built on **Supabase** (PostgreSQL), utilizing automated database triggers and Row-Level Security (RLS) to manage roles.

---

## Technical Stack Requirements

* **Frontend:** React (Functional components, Context API, Hooks), Tailwind CSS
* **Backend/Database:** Supabase (PostgreSQL, Realtime replication channels, PL/pgSQL functions)
* **Internationalization:** `i18next` / `react-i18next` with local JSON translation sheets
* **Architecture Style:** Strict separation of concerns (UI layers completely decoupled from data-fetching and subscription hooks)

---

## Core Features & Scope of Work

### 1. Database Architecture & Automated Triggers

* Establish relational tables for `stores`, `inventory`, `job_cards`, and a many-to-many bridge table `job_items`.
* Implement a backend PL/pgSQL trigger function on `job_items` that automatically decrements stock levels inside the `inventory` table upon insertion and blocks the transaction if stock levels drop below zero.

### 2. Live Sync Dashboard via Custom Hooks

* Build a custom hook (`useWorkshopJobs`) that queries active job cards once on mount and opens a continuous Supabase Realtime WebSocket channel listener (`postgres_changes`).
* Intercept `INSERT`, `UPDATE`, and `DELETE` payloads to patch the local array state seamlessly without forcing global page re-fetches.

### 3. Decoupled Stocktake Module

* Build a custom hook (`useInventory`) handling isolated stock management actions.
* Implement inline-editable table row metrics for manual stocktake count updates with robust error/success call handling exposed to the presentation layer.

### 4. Custom Auth & Role-Based Layout Restrictions

* Leverage Supabase Auth mapped to a custom database `profiles` table to track system authorization attributes (`admin`, `manager`, `mechanic`).
* Abstract session monitoring entirely into an application-wide custom `useAuth` provider.
* Implement layout conditional routing to restrict access to the Inventory Control Panel exclusively to `admin` and `manager` roles.

### 5. Seamless Multi-Language Support (English / Tamil)

* Integrate localization dictionary JSON payloads supporting on-the-fly toggling.
* Ensure data values such as system workflow status tags dynamically map database string enums directly to the correct linguistic keys (`t('status.' + job.status)`).

---

## Deliverables Expected

1. Clean, documented React source code with a strictly organized modular folder structure (`/src/hooks`, `/src/components`, `/src/locales`).
2. An SQL initialization script file including all core tables, constraints, types, and trigger function dependencies.
3. A `.env.example` setup mapping layout keys (`REACT_APP_SUPABASE_URL`, etc.).

---

## How to Apply

Please reply with:

1. Examples of React applications you have built utilizing **Supabase Realtime subscriptions**.
2. A brief summary of how you approach writing custom React hooks to isolate state logic from UI presentation.
3. Your estimated timeline to deliver a functional MVP based on the details above.