Nejat Garment
Garment Manufacturing ERP
Cross-platform ERP for a garment factory, production, inventory, sales, payroll, and role-based access, one system on desktop and mobile.
- Role
- Full-stack developer
- Timeline
- Jun 2026 — Sep 2026
- Status
- Completed

Overview
Built an end-to-end garment factory management system so production, stock, sales, and payroll live in one place instead of notebooks and spreadsheets.
The app targets desktop and mobile (plus web), with responsive shells and permission-aware navigation. Backend is Supabase: Postgres schema, RLS, Auth, Storage, and Edge Functions for privileged admin operations. Domain covers the real factory loop: multi-stage production (cutting → store), raw materials and finished goods, sales orders with partial payments, bilingual PDF invoices, piece-work tasks, attendance, and payroll exports.
Designed for operators and owners: granular roles (~90 permissions), audit logs, dashboard KPIs, and PDF/Excel reporting. Shows I can ship a full business system, UI, data model, auth/RLS, and multi-platform delivery, not just screens.
Problem
- Factory operations lived in notebooks and chat — no single view of production, stock, or pay.
- Piece-work payroll and stock disputes burned time every week with no audit trail.
- Owners needed desktop depth and phone access without maintaining two products.
Approach
- One Flutter app for desktop and mobile, backed by Supabase (schema, RLS, Auth, Storage, Edge Functions).
- Modeled the real factory pipeline and linked it to inventory, sales, tasks, and payroll.
- Enforced role-based access and audit logging so each role sees only their work, with full change history.
Challenges
- Keeping stock, sales, and production consistent when orders move stages or get voided.
- Encoding 90+ permissions without breaking navigation or leaking privileged admin writes (Edge Functions + RLS).
- Making dense ERP tables usable on both wide desktop layouts and phone screens.
Results
- A deployable garment ERP covering production → stock → sales → payroll on desktop and mobile.
- Server-side data rules and audited actions that replace trust-based operations.
- Clear proof of full-stack product ownership: Flutter UX + Postgres/RLS architecture.
Architecture
Key features
- Multi-platform: desktop, mobile, and web from one Flutter codebase
- Dashboard: revenue, payments, production pipeline, stock alerts, attendance
- Production workflow: cutting → production → finishing → store, with timeline
- Sales orders: line items, partial payments, void with stock restore
- PDF invoices (English / Amharic) with share/open
- Raw materials + finished goods stock in/out/adjust + history
- Employee tasks (piece work), bulk entry, collect for payroll
- Payroll by period + salary payment history; PDF/Excel exports
- Daily attendance with dashboard reminder
- Customers, employees, products (multi-image catalog)
- Roles & permissions (granular module access)
- Audit logs (who changed what)
- Company settings (TIN, bank, invoice/payroll defaults)
- Light / dark / system theme
Clients
- Flutter multi-platform app (Windows / macOS desktop, mobile, web)
- Feature modules with data / models / presentation
- Riverpod state + GoRouter (deep-linkable routes, permission gates)
- Responsive shell: navigation rail / bottom nav by breakpoint
Backend
- Supabase Postgres with versioned garment schema
- Row Level Security + role_permissions model
- Supabase Auth (email/password, Google)
- Storage for product/catalog images
- Edge Functions for privileged admin create/update
Reporting
- Syncfusion PDF / Excel exports across sales, stock, tasks, payroll, costs
- Share and open-on-device flows for invoices and reports
Stack
- Flutter
- Dart
- Riverpod
- Clean Architecture
- PostgreSQL
- Database Schema Design
- Role-Based Access Control
- Offline and Failure Handling