Non-Functional Requirements
Non-functional requirements delineate the critical attributes of the system, encompassing performance, security, usability, and other operational characteristics that underpin its effectiveness and reliability.
Scalability
The system must be architected to accommodate an expanding volume of data and an increasing number of transactions commensurate with the growth of Small and Medium Enterprises (SMEs).
Security
Adherence to stringent industry-standard security protocols is imperative for the system. Furthermore, the integration of Laravel's rate limiter will enhance the system’s resilience against brute-force attacks, thereby fortifying its overall security posture.
Performance
It must also demonstrate robust capability in managing concurrent user sessions effectively, thereby sustaining high levels of performance and responsiveness under peak load conditions.
Usability
The design of the user interface (UI) must prioritize an intuitive and navigable experience, aimed at minimizing the learning curve for end-users. This encompasses the creation of a streamlined and user-friendly interface that facilitates ease of interaction and operational efficiency, thereby enhancing overall user satisfaction.
Availability
The system must achieve a remarkable level of operational availability, specifically targeting 99.9% uptime. This high availability is essential to ensure continuous and uninterrupted service, thereby mitigating any potential disruptions to business operations and user accessibility.
Customizability
User access should be controlled by role and permission. This adaptability should be accessible without necessitating advanced technical expertise, thereby empowering users to tailor the system functionalities to meet specific organizational requirements and preferences.
High-Level Architecture of the ERP System with BI Modules
The high-level architecture of the ERP-BI system consists of three main layers:
Presentation Layer
The Presentation Layer represents the forefront of user interaction within the ERP-BI system, embodying the user interface (UI) through which end-users engage with the system. This layer is meticulously engineered with a web-based interface, employing Tailwind CSS to implement a sophisticated and visually appealing styling framework.
Application Layer
The core functionality and business logic of the ERP-BI system are managed within this layer, underpinned by Laravel 11, which serves as the backend framework. This layer is responsible for executing critical operations including business logic processing, role-based access control, user authentication, and the mediation of communication between the database and the presentation layer. Laravel’s built-in rate limiter is employed at this level to enhance security by mitigating the risk of brute-force attacks and ensuring the robustness of user authentication mechanisms.
Data Layer
The Data Layer constitutes the foundational backbone of the ERP-BI system, anchored by a MySQL database that serves as the centralized repository for all pertinent system data. This database meticulously catalogues a vast array of information, encompassing comprehensive records of financial transactions, user interactions, and system configuration parameters. The Data Layer is engineered to handle complex query executions and data updates with precision, ensuring the meticulous maintenance of data integrity and consistency across the system's various components. In this layer, the database operations are governed by stringent protocols that guarantee accurate data storage, retrieval, and manipulation in alignment with the system’s operational mandates. This encompasses rigorous data validation processes and transactional safeguards designed to prevent anomalies and ensure the reliability of the information stored within the system. Furthermore, the architectural design integrates advanced Business Intelligence (BI) components to enhance data analysis and visualization capabilities. Chart.js is employed within this framework to facilitate the generation of sophisticated graphical representations, including but not limited to line charts and bar charts. These visual tools are instrumental in rendering complex datasets into comprehensible and actionable insights, particularly with regard to sales metrics and employee performance indicators. By enabling real-time visualization of critical data, the BI components empower users to conduct in-depth analyses and make data-driven decisions, thereby augmenting the strategic value of the ERP-BI system.
Design Choices
The design of the system focuses on delivering a functional, scalable, and user-friendly ERP solution with integrated BI capabilities.
Database Design
The MySQL database is organized into multiple tables that reflect the core components of the ERP system.
User Interface (UI) Design
The system harnesses the power of Tailwind CSS to deliver a contemporary aesthetic, characterized by its modern visual appeal while offering extensive flexibility in the customization of colour schemes and UI elements.
Tools and Technologies Used
The ERP-BI system is built upon a sophisticated stack of tools and technologies, each contributing essential functionality and performance attributes to the overall system:
-
Laravel 12: Serving as the cornerstone of the backend architecture, Laravel 12 is a cutting-edge PHP framework renowned for its robust feature set. It facilitates comprehensive backend development through advanced capabilities such as secure user authentication, efficient routing mechanisms, and sophisticated rate limiting to mitigate potential security threats. Laravel 12’s elegant syntax and extensive library support streamline the development process, ensuring a maintainable and scalable backend infrastructure.
-
MySQL: It orchestrates the storage and management of vast quantities of data across various ERP modules, ensuring data integrity and consistency. MySQL’s relational capabilities enable complex querying and transaction management, essential for the system’s data-intensive operations.
-
Tailwind CSS: This utility-first CSS framework is employed to create the interface.
-
Python (Flask): Flask’s lightweight architecture allows for rapid development and integration of BI components, enabling the system to perform complex data manipulations and deliver actionable insights through seamless integration with the ERP framework.
-
Git: Git’s branching and merging capabilities facilitate efficient workflow management, ensuring that development processes are both organized and streamlined.