The new application will be built to mirror the exact data model of the existing interlinked Google Sheets so that all historical records — Purchase Orders, Material Received, Material Issued, and Stock summaries — can be imported with minimal transformation. Migration is carried out in Week 7, before go-live.
Three distinct roles are configured for the pilot. Access is enforced at the application level — users cannot view or interact with modules outside their assigned role.
| Permission | AdminFull access | Store ManagerOperational | Purchase Co-ord.PO only |
|---|---|---|---|
| View all records (all modules) | ✓ | — | — |
| Edit & delete records | ✓ | — | — |
| Add Material Received entries | ✓ | ✓ | — |
| Add Material Issued entries | ✓ | ✓ | — |
| Add Scrap Generation entries | ✓ | ✓ | — |
| Generate Purchase Orders | ✓ | Emergency only | ✓ |
| View supplier-wise PO status | ✓ | ✓ | ✓ |
| View stock (supplier / category) | ✓ | ✓ | — |
| Access Admin dashboards & reports | ✓ | — | — |
| Manage users & master data | ✓ | — | — |
| View audit trail log | ✓ | — | — |
All modules share a common master data layer. Categories, Sub-categories, RM Codes, Suppliers, Processes, and Machines are configured once by the Admin and drive all dependent dropdowns system-wide.
| Field | Type | Rules & Behaviour |
|---|---|---|
| Date of PO Issue | Date Picker · Mandatory | Defaults to today; back-dating permitted for corrections |
| PO Number | System Generated | Format: PO-RM-<DDMMYY>-<XXX> — sequential (000–999) resetting daily. Read-only. |
| Category | Dropdown · Mandatory | From Category master |
| Sub-category | Dependent Dropdown | Filtered by selected Category; clears on Category change |
| Supplier Name | Dependent Dropdown | Filtered by selected Category |
| RM Code | Auto-populated | Derived from Sub-category; read-only |
| Qty Placed (kg/nos) | Numeric · Mandatory | Entered manually by user |
| Price / kg (INR) | Numeric · Mandatory | INR only; entered manually |
| PO Issued By | Text · Mandatory | Name of person raising the PO |
| Qty Received So Far | Auto-calculated | Sum of all Material Received entries linked to this PO; updates on every inward entry |
| Pending Qty | Auto-calculated | PO Qty − Qty Received So Far |
| Pending Qty % | Auto-calculated | (Pending Qty ÷ PO Qty) × 100. PO hidden from Material Received once this drops to ≤ 5%. |
| Field | Type | Rules & Behaviour |
|---|---|---|
| Receive Date | Date Picker · Mandatory | Date material physically arrived at the plant |
| Category | Dropdown · Mandatory | From Category master |
| Sub-category | Dependent Dropdown | Filtered by Category |
| RM Code | Auto-populated | Derived from Sub-category; read-only |
| Supplier Name | Dependent Dropdown | Filtered by Category |
| PO Number | Optional Dropdown | Only POs with Pending Qty % > 5%, filtered by selected Supplier. If no qualifying PO exists, Store Manager may raise an Emergency PO inline using the standard PO fields. |
| Invoice Number | Text · Mandatory | Free text; must be unique per supplier |
| MRIR Number | System Generated | Format: RM-01-<DDMMYY>-<XXX> — sequential counter resets daily. Read-only. |
| Qty Received (kg/nos) | Numeric · Mandatory | Entered by Store Manager; auto-updates linked PO’s Qty Received So Far |
| Base Price / Unit (INR) | Numeric · Mandatory | INR only; entered by Store Manager |
| Total Base Price | Auto-calculated | Qty Received × Base Price / Unit |
| Field | Type | Rules & Behaviour |
|---|---|---|
| Received Date | Date Picker · Mandatory | Date this batch was originally received; used to compute TAT |
| Issued Date | Date Picker · Mandatory | Date material was issued to the machine |
| Process | Dropdown · Mandatory | From Process master |
| Machine Name | Dependent Dropdown | Filtered by selected Process |
| Category | Dropdown · Mandatory | From Category master |
| Sub-category | Dependent Dropdown | Filtered by Category |
| RM Code | Auto-populated | Derived from Sub-category; read-only |
| Supplier Name | Dependent Dropdown | Filtered by Sub-category |
| Qty Issued (kg/nos) | Numeric · Mandatory | Entered by Store Manager; deducted from live net stock |
| TAT (days) | Auto-calculated | Issued Date − Received Date in calendar days. Non-editable. E.g. Received 01-Feb, Issued 05-Feb = 4 days. |
| Field | Type | Notes |
|---|---|---|
| Scrap Date | Date Picker · Mandatory | Date scrap was recorded |
| Category | Dropdown | Same master as Material Received / Issued |
| Sub-category | Dependent Dropdown | Filtered by Category |
| RM Code | Auto-populated | Derived from Sub-category |
| Supplier Name | Dependent Dropdown | Filtered by Category |
| Scrap Qty (kg) | Numeric · Mandatory | Deducted from net stock on save |
| Scrap Reason / Remarks | Text · Mandatory | TBC with client |
| Recorded By | Text · Mandatory | TBC with client |
Real-time summary panels on the Admin homepage. All widgets update instantly on new data entry and support a custom date range selector.
| Widget | Description | Filters |
|---|---|---|
| Material Received Summary | Total qty and INR value received, with trend chart | Category, Supplier, Date Range |
| Material Issued Summary | Total qty issued with breakdown by process and machine | Process, Machine, Category, Date Range |
| Scrap Generated | Total scrap qty and category-wise trend | Category, Date Range |
| Supplier-wise Pending POs | Open POs grouped by supplier — pending qty and % highlighted | Supplier, Category |
| Stock View — Supplier-wise | Net stock (Received − Issued − Scrap) per supplier | Supplier, Date Range |
| Stock View — Category / Sub-category | Net stock grouped by category and sub-category | Category, Sub-category |
| TAT Analysis | Average turnaround time by category and supplier; outliers flagged | Supplier, Category, Date Range |
A dedicated Reports section accessible to the Admin. All reports support custom date ranges, relevant filters, and export to Excel (.xlsx) and PDF.
The complete pilot delivery is targeted at 8 weeks from kick-off.
| Week(s) | Phase | Activities & Deliverables |
|---|---|---|
| Week 1 | Phase 1 — Discovery & Design | Finalise master data structure. Validate all dependent dropdown logic. Create UI wireframes for all 4 modules and the dashboard. Client sign-off on wireframes required before Phase 3 begins. |
| Week 2 | Phase 2 — Master Data & Architecture | Set up application architecture, database schema, and role-based authentication (3 roles). Populate all master tables from client-provided exports. Configure all dependent dropdown relationships. |
| Weeks 3–5 | Phase 3 — Core Module Development | Build all four transactional modules: Purchase Orders (PO number auto-generation), Material Received (MRIR auto-generation, PO linkage, 5% pending qty filter), Material Issued (TAT auto-calculation), and Scrap Generation. Emergency PO flow for Store Manager. All mandatory field enforcement and form validations. |
| Week 6 | Phase 4 — Dashboards & Reports | Build Admin dashboard with all 7 real-time widgets. Develop full Reports module with all 8 report types, Excel and PDF export, and date range / filter controls. |
| Week 7 | Phase 5 — Data Migration | Export and audit existing Google Sheets data. Map historical PO log, Material Received, and Material Issued records to the new schema. Recompute all calculated fields. Reconcile open PO balances. Load validated historical data into production. |
| Week 8 | Phase 6 — UAT, Go-Live & Handover | Deploy to production with migrated data. All three roles conduct User Acceptance Testing. Parallel run with Google Sheets in the first half of the week. On UAT sign-off, Google Sheets is frozen and the new system becomes the single source of truth. Role-wise user training and documentation package delivered. |
The following inputs are required from the client to keep the project on schedule: