System Requirements

Functional & Non-Functional Requirements

Home | SoftLixx Creates

Requirements Overview

Defining system capabilities and constraints

This document outlines the functional and non-functional requirements for the AlKareem ERP system. Requirements serve as the foundation for design decisions, development priorities, and quality assurance testing.

Functional Requirements

Define what the system must do - specific behaviors, features, and capabilities.

Non-Functional Requirements

Define how well the system performs - quality attributes like security, performance, scalability.

Requirements Hierarchy

graph TD Business["Business Goals"] --> FR["Functional Requirements"] Business --> NFR["Non-Functional Requirements"] FR --> Core["Core Platform"] FR --> Financial["Financial Modules"] FR --> Operations["Operational Modules"] FR --> HR["HR & Payroll"] NFR --> Performance["Performance"] NFR --> Security["Security"] NFR --> Scalability["Scalability"] NFR --> Maintainability["Maintainability"] style Business fill:#1e293b,stroke:#0ea5e9 style FR fill:#1e293b,stroke:#10b981 style NFR fill:#1e293b,stroke:#a855f7

Functional Requirements

System features and capabilities by module

General System Requirements

Multi-Branch Operations

Support multiple branches with centralized management and branch-specific data isolation.

Modular Integration

Each module operates independently but integrates seamlessly for cross-module workflows.

Audit Logging

All transactions must log who performed what action and when for compliance and tracking.

Role-Based Access Control

Granular permissions using Casbin RBAC with hierarchical role inheritance.

Accounting Module

Support double-entry accounting for all financial transactions
Configurable 4-level Chart of Accounts
Generate Trial Balance, Balance Sheet, Profit & Loss statements
Integration with Sales (receivables) and Purchase (payables)
Multi-currency support with exchange rate management
Financial year management with period closing

Inventory Module

Real-time stock levels across multiple warehouses/branches
Track stock movements: purchases, sales, transfers, adjustments
Mark items as "in transit" during inter-warehouse transfers
Serial number tracking for high-value items
Weighted average costing for inventory valuation
Low stock alerts and reorder level notifications

Purchase Module

Create purchase requisitions and convert to purchase orders
Supplier master data with payment terms and credit limits
Record Goods Receipt Notes (GRN) upon delivery
Generate purchase invoices and auto-post to Accounting
Track supplier advances and allocate against invoices
Purchase return and credit note processing

Pre-Sale Module

Create and manage customer inquiries
Generate quotations with approval workflow
Convert approved quotations to bookings
Track booking status and advance payments

Cash Sale Module

POS interface for walk-in customers
Instant invoice generation and payment
Automatic GL posting for cash sales
Daily/shift-wise sales summary reports

Lease Sale Module

Create and track lease plans and agreements
Customer onboarding with credit checks
Installment scheduling and collection tracking
Handle lease terminations and settlements

HR & Payroll

Maintain employee master records
Track attendance, leave, and absences
Process monthly payroll with deductions
Generate payslips and post to Accounting

Non-Functional Requirements

Quality attributes and system characteristics

Performance

  • Page load time under 2 seconds for standard operations
  • Support concurrent users (50-100) without degradation
  • Database query optimization with indexing
  • Caching strategy for frequently accessed data

Security

  • Token-based authentication (Laravel Sanctum)
  • Casbin RBAC for authorization with permission policies
  • Encrypt sensitive data (passwords, payroll) at rest and in transit
  • SQL injection prevention via parameterized queries

Scalability

  • Deployable in multi-branch architecture
  • Horizontal scaling for web servers and databases
  • Queue-based job processing for heavy operations
  • Support 10,000+ transactions per day per module

Usability

  • Responsive web UI for desktop, tablet, and mobile
  • Consistent navigation and UI patterns via Mary UI
  • Intuitive workflows with minimal training required
  • Real-time feedback and validation messages

Maintainability

  • Follow Livewire → Service → Repository pattern
  • Loosely coupled modules testable independently
  • Comprehensive documentation synced with releases
  • Unit and feature test coverage (target: 70%+)

Reliability

  • 99.5% uptime SLA during business hours
  • Automated database backups (daily full, hourly incremental)
  • Transaction rollback on failures (ACID compliance)
  • Error logging and monitoring with alerts

Quality Attributes

Key metrics for system success

99.5%

Uptime Target

System availability during business hours

<2s

Response Time

Average page load for standard operations

100+

Concurrent Users

Simultaneous users without performance loss

System Constraints

Technical and business limitations

Technology Stack

Must use PHP 8.2+, Laravel 12, Livewire 3.6, MySQL 8.0+

Browser Support

Modern browsers only (Chrome 90+, Firefox 88+, Safari 14+, Edge 90+)

Database

MySQL 8.0+ or MariaDB 10.6+ required for JSON support

Timeline

Core modules must be completed within 12 months