Laravel Nova Pros, Cons, and Pitfalls: A Case Study of the Pharmaceutics ERP System Development

Written by jatapp | Published 2023/05/18
Tech Story Tags: laravel | laravel-nova | laravel-tips-and-tricks | laravel-php-framework | supply-chain-technology | erp-software | pharmaceutical-technology | good-company | hackernoon-es | hackernoon-hi | hackernoon-zh | hackernoon-vi | hackernoon-fr | hackernoon-pt | hackernoon-ja

TLDRThe case study reveals the main pros, cons, and dark corners of Laravel Nova. The story revolves around the project held by JatApp, a software development company from Ukraine. JatApp's client, a pharmaceutical company, needed an ERP system for improvement of their supply chain management. Since the solution should be delivered as soon as possible, Laravel Nova was chosen as a technology that can deliver fast yet quality results. via the TL;DR App

“As fast as possible”. The phrase you can certainly associate with businesses that want to develop a custom software solution.

That is why software development agencies try to use technologies that can guarantee business executives and startup founders a fast product development process. JatApp, a software development vendor from Ukraine, worked with such a client.

Laravel Nova was the technology of choice as it had to deliver the customer a working product within the shortest time possible.

Did Laravel Nova meet its purpose? Let’s find out in the following case study.

A Pharmaceutical Company Needed Its Custom ERP System

Management of logistics and supply chains in the pharmaceutical industry is a hefty task.

Legal regulations, specific requirements for product storage, high demand variability, and supply disruptions are the main hurdles to frictionless and timely delivery of pharmaceuticals across the entire supply chain.

Also, many companies record their supply chain management data manually, which also causes delays and confusion. Consequently, the entire supply chain faces a serious bottleneck in performance.

JatApp’s client intended to ditch such ill-equipped processes from their supply chain management by developing a custom enterprise resource planning (ERP) system for internal use.

The ERP application was expected to digitalize, optimize, and automate all supply chain management operations within a single shared system accessible by all stakeholders within the chain of supply.

Even though the client was well aware of the problems within pharmaceutical industry logistics, the company apparently didn’t have any expertise in software development. That’s why the client came to JatApp asking for technical assistance.

But here that “as fast as possible” thing emerged. The client’s company had to invest a lot of money upfront, and their desire to quickly get a tangible result was natural.

On top of that, the client did not want to focus much on the user interface (UI) of the ERP. They intended to use it internally only, so any additional bells and whistles for making the solution marketable were not mandatory.

The main goal was to develop the solution fast enough to start using it at the client’s earliest convenience. We evidently needed a tech stack that could serve this purpose well.

Laravel Nova Is All About Convenience and Efficiency

The ERP system was required to automate and speed up operations across the entire supply chain of the company which is why the development of a robust admin panel for control of data records and user permissions was the top priority.

And let’s not forget that the development process should be fast and efficient at the same time.

For those reasons, JatApp’s software engineering team decided to employ Laravel Nova as a tool for saving time and effort in coding the administration panel. But why Laravel Nova?

Laravel Nova is a commercial administration panel for Laravel, a popular PHP web application framework. It is designed to provide developers with a customizable and easy-to-use interface for managing the administration of their Laravel applications.

With Laravel Nova, software developers can quickly and easily create a web-based administrative interface that allows them to manage various aspects of their application, such as user management, content management, and other administrative tasks.

It includes features like searchable resource lists, filters, forms, actions, metrics, and authorization.

Laravel Nova is built with Vue.js which integrates well with PHP Laravel because Laravel supports Vue.js as an out-of-the-box solution.

Needless to say, such compatibility of Nova and Vue.js brings a good deal of flexibility in software development because creating custom pages, fields, and the like becomes possible.

This was the general reason why we handpicked Laravel Nova. But convenience and efficiency in software development aren’t some abstract and subjective terms.

Our team found Laravel Nova an effective and convenient solution for the client’s project because of the following advantages:

Out-of-the-Box Components

Laravel Nova offers a wide range of out-of-the-box solutions that enabled our software developers to compose the ERP’s administration panel with maximal efficiency: ready-made menus, filters, actions, and search fields were easy to assemble into a full-fledged admin panel.

However, Laravel Nova isn’t a low code/no platform but a tool with a series of pre-built elements necessary for an app’s administration. Our team still had to write the code to customize and extend these components according to the system’s requirements.

No-Brainer CRUD Operations

The company’s supply chain management involves tons of data that should be exchanged among different stakeholders. That is why it was paramount to make the data accurate, easily updatable, and consistent across the whole supply chain.

To cope with this challenge, the JatApp team had to come up with proper management of so-called CRUD operations.

CRUD operations refer to the basic functions that are necessary for managing data in most software applications. CRUD stands for Create, Read, Update, and Delete, and these operations correspond to the four basic functions that you can perform on data.

In the context of PHP Laravel, CRUD operations are used to interact with a database and perform actions such as creating, reading, updating, and deleting records. With Laravel Nova, navigating CRUD operations was a breeze for our team.

The tool eased the structuring of the data architecture, thereby saving much time on the ERP’s development. Laravel Nova provides built-in validation that ensures data is entered correctly and meets specific criteria.

This helped us to make the system sensitive to errors. In such a way, the users of the ERP application have a low chance to submit wrong or irrelevant data to the system.

Laravel Nova also supports relationships between different database tables, which simplifies the process of performing CRUD operations on related data. This was particularly important for the ERP application since it had to involve complex data structures with multiple related tables.

Relationships helped us to ensure that data entered into the system is always consistent and accurate. In addition, the relationships feature enabled our software engineers to simplify the code and make it easier to maintain over time.

Aside from proper data management, the client highlighted that it was important to them to avoid complete data erasing. Laravel Nova was able to resolve this task in a snap of the fingers, thanks to the feature called soft delete.

This feature gives a particular data element the status of being excluded from a data set, but the element remains stored in the database.

Custom Fields

The ERP system is used by multiple stakeholders which means that the risk of human error is high. That’s where the custom fields feature of Laravel Nova came in handy.

Custom fields in Laravel Nova allowed us to create and customize fields in the administration panel that were critical to the ERP application's data requirements.

With custom fields, our team added new types of input fields, customized the display of existing fields and created complex field types that could be used to collect or display data.

We created input fields that are tailored to the system’s data and improved the efficiency and accuracy of CRUD operations.

In such a way, data entry in the ERP system became more intuitive for users, while the quality of data improved as specific input formats and validation rules were applied.

Policies for Permissions Management

We have mentioned that the use of the ERP system was meant to involve different parties: storage workers, drivers, customers, and so on. For that reason, it was crucial to isolate all user flows in order to ensure that stakeholders don’t interfere with each other’s data.

The policies feature helped us to solve this task. In Laravel Nova, policies are a feature that allows defining rules for controlling access to various parts of your application. Policies define what actions a user can perform on a resource, based on their role or permissions.

Thanks to this feature, our developers were able to create a wide range of permissions for every single user. Implementing permissions into the system prevented numerous confusions since each user had access to the data that is relevant to them.

Convenience Doesn’t Come Without Challenges

Even though Laravel Nova was a convenient tool to build the admin panel fast and easily, there was one major roadblock: the panel’s elements weren’t completely customizable.

The tool did provide a wide range of ready-to-go components for the development of even complex admin panels, but many of them simply didn’t meet our requirements.

As it often happens with using out-of-the-box solutions, you become their prisoner. In the late stages of the development, our team faced challenges with the customization of multiple components as Laravel Nova didn’t customize them the way we wanted.

Beyond a doubt, these challenges somewhat slowed down the pace of the development process.

Owing to the inventiveness and creativity of our development team, we found unobvious yet working ways to make the ERP meet its requirements and look as it was intended to.

To get out of the “ready-to-go solution” trap, we had to use Vue.js to make the system’s interface look exactly like the software requirements specification stated.

Laravel Nova enticed us to use it by offering almost endless possibilities of customization, but we should have run a short demo to see whether such capabilities are really that great in practice.

The good news is that our software developers solved the problem by thinking outside of the box and finding a creative way out. The pun intended, by the way.

Is Laravel Nova Worth Trying?

Yes, but…

Laravel Nova is a good tool to quickly build an administration panel, regardless of the app’s complexity. The tool did help us develop such an admin panel for the client’s ERP system fair and square.

The client was satisfied with the result and even plans to scale the solution to optimize processes within other aspects of their pharmaceutical business.

But the freedom of customizing every shiny button and dark corner of your admin panel is elusive. This means you have to be absolutely sure that Laravel Nova will be a good fit for your project or that your team is creative and knowledgeable enough to smooth the corners of stubbornly non-customizable components.

Our verdict and lesson learned: Laravel Nova is a fairly efficient tool for the fast development of an administration panel, but you should care to run a short demo to ensure you are completely fine with what this tool can bring to the table.


Written by jatapp | Custom software development company that transforms businesses across a variety of industries
Published by HackerNoon on 2023/05/18