The title of this project 'Web Application for Inventory Management Tool with Predictive Categorization' is suggested by Mr. The main goal of this project is to develop a web application, namely 'Drillclinic' which can digitize inventory management process for tool management by having prediction tool categorization and assignment of Data Matrix code to each actual Tool object. This will help us better understand the features of tools and Data Matrix technology as the scope for this project.
The company has provided a raw tool categorization dataset for analysis, but it has been generalized and simplified for this project to protect businesses. The chosen methodology for this project is the waterfall methodology for good reason, to achieve stage by stage development with the result of indirectly reducing the risk of project failure. First, I am very grateful to God for giving me health and well-being so that I can finally complete this project.
I applied that ideology and mentality for this project in order to meet the requirements on time. Last but not least, I would like to express my sincere gratitude to my classmates, regardless of senior or junior, who help me review and apply the knowledge I learned for this project.
INTRODUCTION
Background study
Research gap / Problem Statements
Objectives & Scopes of Work
- Objectives
- Scope of Study
Below is a brief description to summarize the difference in business operation before you have the application and after the application. Development of prototype web based inventory management application named 'Drillclinic' would be the aim of this project. In order to have a predictive classification of vehicles, we need to apply the machine learning algorithm to analyze the given data and this would be the second goal of the project.
Literature Review
Data Matrix code
Because they require less space for the same amount of data, Data Matrix codes are often used to mark small goods such as electrical components. Based on the article by Ladislav Karrach and Elena Pivarčiová [1], here is a brief comparison between a data matrix code and a QR code. The image points can be translated from the image data matrix code into a square binary matrix after the exact position of the four corner points that make up the bounding quadrilateral is known, the perspective translation is set, and the number of rows and columns is defined (Figure 4).
Data recorded in the data matrix code is decoded using this binary matrix as input to a deterministic procedure. To decrypt the binary matrix, the open source software libdmtx [2] is used, which preserves the original text contained in the Data Matrix code. Light is defined as points with intensity above the threshold, while darkness is defined as points with intensity below the threshold.
The average gray intensity in the Data Matrix coding region is used as the threshold. In addition to the center point, we may also include points in the immediate vicinity in the decision-making process if the modules consist of more than 5*5 points.
Two-dimensional (2D) matrix engraved on Tool
They found that the Data Matrix code has a lower risk of degradation and is easier for their scanner to detect compared to other 2D codes.
Methodology/Project Work
Requirement Gathering
- Functional requirements
- Non-Functional requirements
Project Timeline (Gantt Chart)
- FYP1 Gantt Chart
- FYP2 Gantt Chart
SDLC
System Architecture
On the server side, the View files are used to implement the logic, for example adding an object to the database. There will be communication between the View and Model files where it contains the database model, e.g. show/hide data, add/remove data. While template files are displayed on the client side, which means that the client can only view the HTML files template.
It deals with the logic to be implemented and there will be a correlation between views and models to access the database.
System Design using UML
- Use Case Diagram
- Activity Diagram
- Class/Domain Diagram
The user (receiving department) is the most important actor for this application and will therefore experience many functionalities in this application. There are many more classes that can be specified in this diagram, including Django classes, but that's about it. I decided to add the user profile class with a one-to-one relationship with the Users app once they successfully registered in the application.
Having a user profile will make it easier for Receiver Dept to assign the user in certain user groups in the front-end, although this can also be done through the admin interface.
System Interface
Data Mining for Predictive Analytic
- Business Understanding
- Data Understanding
- Data Preparation
- Modelling
- Evaluation
- Deployment
In addition to identifying business goals, we also need to describe what the success criteria look like in terms of technological data mining. The goal of data mining for this project is to have predictive classification for tool type according to assigned tool parameters. It is similar to Jupiter Notebook with the same coding language, Python, to run the code.
The data set originally comes from one of EDI's customers that specializes in tool maintenance. In return, I need to provide more findings and knowledge based on data mining processes that can be useful to the company and provide business insight. The received data set is actually a partially complete catalog of all customer tools received by the company.
After careful investigation of the data, some relationship can be assumed between different columns, since they give the same meaning for an entry. There is no difference between these two columns, so it would not be necessary to extract the data. Therefore, manual translation from German to English for column names sometimes results in incorrect meaning from the original word.
I removed them anyway as it is easier to manage the dataset as the columns left are already sufficient. Our dataset is labeled dataset, the machine learning technique will be supervised learning. DTs are chosen as our dataset size is ideal for the algorithm to achieve high accuracy.
In this phase, datasets are separated for the purpose of testing the model and training the model. The evaluation phase looks at the accuracy score of the built model and what to do next in a broader sense. We can also visualize the accuracy score of the model built by using confusion matrix.
Randomly select a row from the data set and enter the values into the array to see if the predicted value for the target variable is the same as the data set or not. The is command line to generate a report for this data to present data mining findings.
Web Development
- Dashboard model
- User model
The control panel template will store the relevant classes that will be displayed from the template file (index.html). This snippet shows two classes along with their fields defined in models.py which are Customer and Tool. Also in this model, the Data Matrix code will be generated after executing the creation of the Tool object.
There is also a predictive algorithm active in this file, on line 55 the field is used by importing the object 'tool_model_clf.joblib'. This enables any Tool parameters that the user inserts into the system, a calculation is performed to predict which category the Tool belongs to. When creating objects or CRUD functions (create, read/retrieve, update, delete), it is necessary for the user to have a form application that allows him to key in the object and save it to the database.
In this case, each time the user is registered in the database, a custom profile is created for that user at the same time.
Framework and Environment used
- Django
- Bootstrap
- Google Colab
- Microsoft's Visual Studio Code
- Selenium
Microsoft's Visual Studio Code (often known as VS Code) is a free open-source text editor.
System Integration Test
Results and Discussion
User interface
- Drillclinic Login page
- Drillclinic Dashboard
- Drillclinic Profile page
- Drillclinic Object Detail page
On this page, recipient users have permission to create a tool object and view the tool list. The user can also navigate to his/her profile page in the upper right corner and able to edit the user information. On this page, the user can also see the predictive classification for Tooltype after entering the parameters in the form in the left screen corner.
The object details page (Tool/Customer/Profile) allows the user to edit/update the object parameter value. In the case of the tool details page, there is an extension to view the Data Matrix code image for that particular tool. The image below is an extension of the tool details page after the user clicked the "View Datamatrix Image" button on the previous page.
You can try scanning the code, it should show the correct URL of the tool.
Integration Testing Result
Conclusion and Recommendation
Login page
Forgot password email link
Drillclinic dashboard
Profile page
Tool Detail page
Data matrix code image
Django Design Patterns and Best Practices: Industry Standard Web Development Techniques and Solutions Using Python, Edition 2. Selenium WebDriver 3 Practical Guide: End-to-End Automation Testing for Web and Mobile Browsers with Selenium WebDriver , 2nd edition (2nd edition).