Hcgty
Hcgty
Hcgty
1.1 Introduction
Administrator
The Administrator is responsible for managing the overall system, including adding,
editing, and deleting users, suppliers, warehouses, good categories, and goods. The
Administrator can also generate reports on inventory levels and sales.
Supplier Staff
The Supplier Staff is responsible for managing the incoming and outgoing goods for their
respective suppliers. They can receive and store incoming goods, pick and pack outgoing
goods, and generate reports on their supplier's inventory levels and sales.
Customer Staff
The Customer Staff is responsible for managing the incoming and outgoing goods for their
respective customers. They can receive and store incoming goods, pick and pack outgoing
goods, and generate reports on their customer's inventory levels and sales.
The system is developed using PHP, CodeIgniter, and MySQL Database. It is designed to
be user-friendly and intuitive, with a clear and simple user interface that allows users to
quickly and easily perform their tasks.The warehouse management system is divided into
three main user roles: Administrator, Supplier Staff, and Customer Staff. Each user role has
different permissions and restrictions within the system, ensuring that each user has access
to the features and functions they need to perform their job effectively.
User management: Adding, editing, and deleting users, suppliers, warehouses, good
categories, and goods.
Incoming goods management: Receiving and storing incoming goods, generating reports
on inventory levels and sales.
Outgoing goods management: Picking and packing outgoing goods, generating reports
on inventory levels and sales.
Enhance accuracy: The system includes robust data validation and error checking,
ensuring that all data entered into the system is accurate and up-to-date. This will help to
reduce errors and ensure that inventory levels are accurately reflected in the system.
Increase visibility: The system provides real-time visibility into inventory levels and sales,
allowing users to quickly and easily view the status of their inventory and make informed
decisions about purchasing and stocking.
Improve security: The system includes robust user authentication and access controls,
ensuring that sensitive data is protected and only accessible to authorized users. This will
help to prevent unauthorized access and ensure that data is kept confidential.
Enhance reporting: The system includes a range of reporting features, allowing users to
generate reports on inventory levels, sales, and other key metrics. This will help to provide
insights into warehouse operations and identify areas for improvement.
There are several non-functional requirements that must be met to ensure the system is
effective and efficient. These non-functional requirements include:
Performance: The system must be able to handle a high volume of transactions and data
without experiencing performance degradation. The system should be able to process
incoming and outgoing goods within a reasonable time frame, even during periods of high
demand.
Security: The system must be secure, with robust user authentication and access controls
to ensure that sensitive data is protected. The system should also include data encryption
and backup features to ensure that data is not lost or compromised.
Usability: The system must be user-friendly and intuitive, with a clear and simple user
interface that allows users to quickly and easily perform their tasks. The system should also
include online help and documentation to assist users in using the system.
Compatibility: The system must be compatible with a range of devices and browsers,
including desktop and mobile devices. The system should also be compatible with existing
hardware and software systems used by the company.
Scalability: The system must be scalable and flexible, allowing it to be easily customized
to meet the specific needs of any company. The system should also be able to handle a
growing volume of data and transactions as the company grows.
Reliability: The system must be reliable, with minimal downtime and a high level of
availability. The system should include redundancy and failover features to ensure that it is
always available when needed.
Maintainability: The system must be easy to maintain and update, with a clear and well-
documented codebase that allows developers to quickly and easily make changes and add
new features
1.5 Functional Requirement
The functional requirements of the warehouse management system outline the specific
capabilities and features that the system must have to meet the needs of the users and the
business. The functional requirements for the warehouse management system include:
Receiving: The system should support receiving functions such as verifying and inspecting
incoming shipments, generating item receipts, managing holds, and creating receiving
reports.
Inventory Management: The system should provide real-time visibility into inventory
levels, allowing users to see how much of each item is in stock, where it is located within
the warehouse, and when it is expected to be received or shipped.
Life Cycle Tracking: The system should track the movement of goods from when they are
received to when they are shipped out, providing accurate records of each product’s journey
within the warehouse.
Picking Strategies: The system should support advanced picking strategies that help
improve order accuracy and throughput for more efficient operations.
Integration: The system should integrate with other software applications, such as ERP
systems, to maximize its potential and provide real-time visibility into inventory levels and
order status.
Packing and Printing: The system should offer a variety of packing and printing
capabilities that facilitate a streamlined outbound process.
Shipping: The system should support the following shipping functions: shipping label
creation, package tracking, carrier integration, and shipping cost calculation.
User-Friendly: The system should be intuitive and easy to use, with a clear and simple
user interface that allows users to quickly and easily perform their tasks.
Reporting and Analytics: The system should provide reporting and analytics capabilities,
allowing users to generate reports on inventory levels, order status, and other key metrics.
These functional requirements are essential for the warehouse management system to meet
the needs of the business and its users. By including these features, the system will be able
to optimize and automate processes within the warehouse, reducing costs related to manual
labor and material handling while increasing productivity in the supply chain.
User Authentication: The system should provide secure user authentication, allowing
users to log in and access the system based on their roles and permissions.
User Management: The system should allow administrators to manage user accounts,
including creating, modifying, and deleting user accounts, as well as assigning roles and
permissions.
Inventory Management: The system should provide real-time visibility into inventory
levels, allowing users to see how much of each item is in stock, where it is located within
the warehouse, and when it is expected to be received or shipped.
Receiving: The system should support receiving functions such as verifying and inspecting
incoming shipments, generating item receipts, managing holds, and creating receiving
reports.
Picking: The system should support picking functions such as generating pick lists,
managing pick locations, and tracking pick status.
Packing: The system should support packing functions such as generating packing lists,
managing packing locations, and tracking packing status.
Shipping: The system should support shipping functions such as generating shipping
labels, managing shipping carriers, and tracking shipping status.
Reporting: The system should provide reporting functionality, including standard reports
such as inventory reports, receiving reports, picking reports, packing reports, and shipping
reports.
Integration: The system should provide integration capabilities with other systems, such
as enterprise resource planning (ERP) systems, to allow for seamless data exchange and
synchronization.
These software requirements are essential for the warehouse management system to meet
the needs of the business and its users. By including these features, the system will be able
to optimize and automate processes within the warehouse, reducing costs related to manual
labor and material handling while increasing productivity in the supply chain.
Software Specification:
Hardware components and infrastructure that are necessary to support the software and
enable it to function effectively. The hardware requirements for the warehouse management
system include:
Network Infrastructure: The system should be connected to a reliable and fast network
infrastructure that can support real-time data transfer and communication between the
server, clients, and other systems.
Client Devices: The system should support a range of client devices, including desktop
computers, laptops, and mobile devices, with the necessary hardware specifications, such
as a fast processor, sufficient RAM, and a high-resolution display.
Barcode Scanners: The system should support barcode scanners to enable real-time data
capture and tracking of inventory and shipments.
RF Devices: The system should support RF devices to enable real-time communication and
data transfer between the server, clients, and other systems.
Voice Picking Devices: The system should support voice picking devices to enable hands-
free and eyes-free picking operations, improving efficiency and accuracy.
Database Servers: The system should be connected to a reliable and fast database server
that can handle the expected load and traffic, ensuring data integrity and consistency.
ERP Systems: The system should integrate with existing ERP systems to enable seamless
data exchange and synchronization, improving efficiency and accuracy.
Hardware Specification:
• Processors: 11th Gen Intel(R) Core (TM) i5-1135G7 @ 2.40GHz 2.42 GHz
• Disk space: 320 GB
• Operating systems: Windows® 10, macOS*, and Linux*
• System type: 64-bit operating system, x64-based processor
2.SYSTEM ANALYSIS
Introduction
• Briefly introduce the topic of warehouse management systems and their importance
in modern logistics and supply chain management.
• Explain the purpose of the report, which is to analyze the requirements for a WMS
using PHP.
Functional Requirements
Technical Requirements
• Identify the user interface and user experience requirements for a WMS, such as:
• A clear and intuitive dashboard for monitoring warehouse operations
• Easy-to-use forms for entering and retrieving data
• Real-time notifications and alerts for critical events
• Mobile-friendly design for use on tablets and smartphones
• Describe how each UI/UX requirement can be achieved using PHP and related
technologies.
• Identify the testing and quality assurance requirements for a WMS, such as:
• Unit testing of PHP code using a testing framework, such as PHPUnit
• Integration testing of PHP code with the database and other components
• Performance testing to ensure the system can handle
• High costs associated with existing WMS solutions, which may be prohibitive for
small and medium-sized businesses (SMBs)
• Complexity of existing WMS solutions, which may require significant investment
in hardware, software, and training
• Lack of customization options in existing WMS solutions, which may not meet the
specific needs of individual businesses
• Manual processes and spreadsheets used by SMBs to manage their warehouses,
which can lead to errors, inefficiencies, and reduced competitiveness
• Inefficient inventory management, which can lead to stockouts, overstocks, and lost
sales
• Picking errors, which can lead to delays, increased costs, and decreased customer
satisfaction
• Inefficient warehouse layouts, which can lead to increased travel time and reduced
productivity
• Lack of integration with existing systems and processes, which can lead to data
silos, errors, and inefficiencies
• Limited reporting and analytics capabilities, which can make it difficult for
warehouse managers to make informed decisions and optimize their operations
Existing WMS solutions offer a range of features and benefits for efficient warehouse
management, including improved inventory accuracy, reduced picking errors, optimized
warehouse layouts, increased productivity, and improved customer satisfaction. However,
these solutions can also be expensive, complex, and lack customization options, making them
less accessible for small and medium-sized businesses (SMBs). Additionally, existing WMS
solutions may not integrate well with existing systems and processes, leading to data silos,
errors, and inefficiencies. To address these limitations, a WMS using PHP can provide a more
affordable and user-friendly solution for SMBs. By leveraging the power of PHP, a popular and
widely-used programming language, the WMS can be customized to meet the specific needs
of individual businesses, while also integrating seamlessly with existing systems and processes.
This can help SMBs improve their efficiency, reduce costs, and increase competitiveness in the
market.
The proposed WMS using PHP aims to provide a more affordable and user-friendly solution
for small and medium-sized businesses (SMBs) compared to existing WMS solutions. The
proposed system will include features such as a user-friendly interface, customizable modules,
integration with existing systems and processes, real-time inventory tracking and management,
efficient order processing and picking, automated shipping and receiving, reverse logistics
management, and comprehensive reporting and analytics capabilities. These features will
address the limitations of existing WMS solutions, such as high cost, complexity, and lack of
customization options, by providing a more accessible and flexible solution for SMBs. The
proposed WMS will be built using PHP, a popular and widely-used programming language,
and will leverage a PHP framework, such as Laravel or CodeIgniter, to ensure a robust and
scalable architecture. The system will also use a database management system, such as MySQL
or PostgreSQL, and front-end technologies, such as HTML, CSS, and JavaScript, to provide a
user-friendly interface. Additionally, the proposed WMS will use APIs for integration with
existing systems and processes, such as ERP, CRM, and e-commerce platforms, to ensure
seamless data flow and efficient operations. By providing a more accessible and flexible WMS
solution, SMBs can improve their efficiency, reduce costs, and increase competitiveness in the
market.Real-time Inventory Tracking and Management: The WMS will provide real-time
inventory tracking and management capabilities, allowing warehouse managers to monitor
inventory levels, track product locations, and manage stock movements in real-time.
Features:
Efficient Order Processing and Picking: The WMS will streamline the order processing and
picking process, reducing travel time and increasing productivity. The system will use
algorithms and automation to optimize picking routes and reduce errors.
Automated Shipping and Receiving: The WMS will automate the shipping and receiving
process, reducing manual data entry and errors. The system will integrate with carriers and
shipping providers to provide real-time shipping rates and tracking information.
Reverse Logistics Management: The WMS will manage the reverse logistics process,
allowing businesses to efficiently handle returns, exchanges, and repairs. The system will track
product lifecycles and provide data-driven insights to optimize the reverse logistics process.
Customizable Modules: The WMS will include customizable modules, allowing businesses
to tailor the system to their specific needs. The system will be modular, allowing businesses to
add or remove features as needed.
Integration with Existing Systems and Processes: The WMS will integrate with existing
systems and processes, such as ERP, CRM, and e-commerce platforms, to ensure seamless data
flow and efficient operations.
User-friendly Interface: The WMS will have a user-friendly interface, allowing warehouse
managers and workers to easily navigate and operate the system. The system will be designed
with usability in mind, reducing the learning curve and increasing adoption.
Reporting and Analytics Capabilities: The WMS will provide comprehensive reporting and
analytics capabilities, allowing businesses to make data-driven decisions and optimize their
warehouse operations. The system will provide real-time insights into inventory levels, order
processing, picking, shipping, and receiving, as well as historical data for trend analysis and
forecasting.
Scalability: The WMS will be scalable, allowing businesses to accommodate growth and
expansion. The system will be designed to handle increasing volumes of data and transactions,
ensuring efficient operations
Advantages:
Affordability: It can be more affordable than other WMS solutions, making it accessible for
small and medium-sized businesses (SMBs) that may not have the budget for more expensive
solutions.
Customization: This can be customized to meet the specific needs of individual businesses,
allowing for tailored solutions that address unique pain points and requirements.
Integration: It can integrate with existing systems and processes, such as ERP, CRM, and e-
commerce platforms, ensuring seamless data flow and efficient operations.
Scalability: This is designed to handle increasing volumes of data and transactions, ensuring
efficient operations as the business grows and expands.
Real-time Insights: This can provide real-time insights into inventory levels, order processing,
picking, shipping, and receiving, allowing businesses to make data-driven decisions and
optimize their warehouse operations.
Reduced Errors: This can reduce errors in the warehouse, such as picking errors, inventory
discrepancies, and shipping errors, by automating processes and providing real-time data.
Improved Efficiency: This can improve efficiency in the warehouse, reducing travel time,
increasing productivity, and optimizing warehouse layouts.
Cost Savings: It can lead to cost savings through reduced labor and inventory costs, improved
efficiency, and reduced errors.
Competitive Advantage: It can provide a competitive advantage for businesses, allowing them
to handle increasing volumes of orders, reduce lead times, and improve customer satisfaction
Aims:
• To provide a more affordable and user-friendly WMS solution for small and medium-
sized businesses (SMBs) compared to existing WMS solutions.
• To improve warehouse efficiency, reduce errors, and optimize warehouse operations for
SMBs.
• To provide a customizable and scalable WMS solution that can grow and adapt with
the business.
Objectives:
• To provide a user-friendly interface that reduces the learning curve and increases
adoption among warehouse managers and workers.
• To ensure the WMS is customizable to meet the specific needs of individual businesses,
allowing for tailored solutions that address unique pain points and requirements.
• To ensure the WMS is scalable, allowing businesses to accommodate growth and
expansion by handling increasing volumes of data and transactions.
• To provide real-time insights into inventory levels, order processing, picking, shipping,
and receiving, allowing businesses to make data-driven decisions and optimize their
warehouse operations.
• To reduce errors in the warehouse, such as picking errors, inventory discrepancies, and
shipping errors, by automating processes and providing real-time data.
• To improve efficiency in the warehouse, reducing travel time, increasing productivity,
and optimizing warehouse layouts.
• To lead to cost savings through reduced labor and inventory costs, improved efficiency,
and reduced errors.
• To provide a competitive advantage for businesses, allowing them to handle increasing
volumes of orders, reduce lead times, and improve customer satisfaction.
3.SYSTEM DESIGN
Database design is the process of creating a database schema that can efficiently store and
manage data for a software system. It involves data modeling, schema design, normalization,
data integrity, scalability, security, and backup and recovery considerations. By identifying the
entities, attributes, and relationships that will be stored in the database, creating a visual
representation of the database structure, organizing data to minimize redundancy and
dependency, ensuring data accuracy and consistency, handling increasing volumes of data and
transactions, protecting data from unauthorized access, and creating copies of the database and
recovering data in the event of a failure or disaster, a well-designed database can ensure data
integrity, improve query performance, and provide a foundation for efficient and reliable
operations. For a warehouse management system (WMS) using PHP, a well-designed database
is critical to ensure accurate inventory levels, order processing, and shipping, reduce errors,
improve efficiency, and provide a competitive advantage for businesses
Admin Table:
Supplier Table:
Product Table:
0-level DFD
Level-1 DFD
Level-2 DFD
4.SYSTEM CODING
Admin page:
parent::__construct();
if($this->session->userdata('logged_in') == TRUE){
$where_admin['admin_user'] = $this->session-
>userdata('admin_user');
$data['admin'] = $this->ADM-
>get_admin('',$where_admin);
$data['web'] = $this->ADM-
>identitaswebsite();
$data['dashboard_info'] = TRUE;
$data['breadcrumb'] = 'Dashboard';
$data['dashboard'] =
'admin/dashboard/statistik';
$data['content'] =
'admin/dashboard/statistik';
$where_masuk['status_pergerakan'] = 1;
$where_keluar['status_pergerakan'] = 2;
$data['jml_data_transaksi_masuk'] = $this->ADM-
>count_all_transaksi($where_masuk, '');
$data['jml_data_transaksi_keluar'] = $this->ADM-
>count_all_transaksi($where_keluar, '');
$data['menu_terpilih'] = '1';
$data['submenu_terpilih'] = '1';
$data['notif'] = $this->ADM->get_low_stock();
$this->load->vars($data);
$this->load->view('admin/home');
} else {
redirect("login");
Login Page:
parent::__construct();
if($this->session->userdata('logged_in') == FALSE) {
$data['web'] = $this->ADM->identitaswebsite();
$this->load->vars($data);
$this->load->view('admin/login');
} else {
redirect("admin");
$username = validasi_sql($this->input->post('username'));
$password = validasi_sql($this->input->post('password'));
$do = validasi_sql($this->input->post('masuk'));
$where_login['admin_user'] = $username;
date_default_timezone_set('Asia/Jakarta');
redirect("admin/");
} else {
?>
<?php
$this->LOG->remov_session();
redirect("login");
Webpage:
parent::__construct();
if ($this->session->userdata('logged_in') == TRUE){
$where_admin['admin_user'] = $this->session-
>userdata('admin_user');
$data['admin'] = $this->ADM-
>get_admin('',$where_admin);
$data['web'] = $this->ADM-
>identitaswebsite();
$data['dashboard_info'] = TRUE;
$data['breadcrumb'] = 'Dashboard';
$data['dashboard'] = 'admin/dashboard/statistik';
$data['boxmenu'] = 'admin/boxmenu/setting';
$data['menu_terpilih'] = '1';
$data['submenu_terpilih'] = '';
$this->load->vars($data);
$this->load->view('admin/home');
} else {
redirect("wp_login");
//FUNCTION User
if ($this->session->userdata('logged_in') == TRUE){
$where_admin['admin_user'] = $this->session-
>userdata('admin_user');
$data['admin'] = $this->ADM-
>get_admin('',$where_admin);
$data['web'] = $this->ADM-
>identitaswebsite();
@date_default_timezone_set('Asia/Jakarta');
$data['dashboard_info'] = FALSE;
$data['breadcrumb'] = 'User';
$data['content'] =
'admin/content/pengaturan/pengguna';
$data['menu_terpilih'] = '1';
$data['submenu_terpilih'] = '13';
$data['action'] =
(empty($filter1))?'view':$filter1;
if ($data['action'] == 'view'){
$data['berdasarkan'] =
array('admin_user'=>'USERNAME',
'admin_nama'=>'FULL NAME',
'admin_telepon'=>'TELEPHONE',
'admin_level_kode'=>'GROUP');
$data['cari'] = ($this->input-
>post('cari'))?$this->input->post('cari'):'admin_nama';
$data['q'] = ($this->input-
>post('q'))?$this->input->post('q'):'';
$data['halaman'] =
(empty($filter2))?1:$filter2;
$data['batas'] = 10;
$data['page'] = ($data['halaman']-1) *
$data['batas'];
$where_admin2['admin_status'] = 'A';
$where_admin3['admin_status'] = 'A';
$where_admin3['admin_user'] = $this->session-
>userdata('admin_user');
$like_admin[$data['cari']] = $data['q'];
$data['jml_data_admin'] = $this->ADM-
>count_all_admin('');
$data['jml_data'] = $this->ADM-
>count_all_admin($where_admin2, $like_admin);
$data['jml_data2'] = $this->ADM-
>count_all_admin($where_admin3, $like_admin);
$data['jml_halaman'] =
ceil($data['jml_data']/$data['batas']);
if ($data['admin']->admin_level_kode == 1) {
$data['validate'] =
array('admin_user'=>'Username',
'admin_pass'=>'Password',
'admin_nama'=>'Full name',
'admin_alamat'=>'Address',
'admin_telepon'=>'Telephone',
'admin_level_kode'=>'Group'
);
$data['onload'] = 'admin_user';
$data['admin_user'] = ($this->input-
>post('admin_user'))?$this->input->post('admin_user'):'';
$data['admin_pass'] = ($this->input-
>post('admin_pass'))?$this->input->post('admin_pass'):'';
$data['admin_nama'] = ($this->input-
>post('admin_nama'))?$this->input->post('admin_nama'):'';
$data['admin_alamat'] = ($this->input-
>post('admin_alamat'))?$this->input->post('admin_alamat'):'';
$data['admin_telepon'] = ($this->input-
>post('admin_telepon'))?$this->input->post('admin_telepon'):'';
$data['admin_level_kode'] = ($this->input-
>post('admin_level_kode'))?$this->input->post('admin_level_kode'):'';
$where['admin_user'] = $data['admin_user'];
$jml_pengguna = $this->ADM-
>count_all_admin($where);
$simpan = $this-
>input->post('simpan');
$insert['admin_user'] =
validasi_sql($data['admin_user']);
$insert['admin_pass'] =
validasi_sql(do_hash(($data['admin_pass']), 'md5'));
$insert['admin_nama'] =
validasi_sql($data['admin_nama']);
$insert['admin_alamat'] =
validasi_sql($data['admin_alamat']);
$insert['admin_telepon'] =
validasi_sql($data['admin_telepon']);
$insert['admin_level_kode'] =
validasi_sql($data['admin_level_kode']);
$insert['admin_status'] =
validasi_sql('A');
$this->ADM->insert_admin($insert);
$this->session->set_flashdata('success','New user has
been added successfully!,');
redirect("pengaturan/pengguna");
</script>';
} else {
redirect("pengaturan/pengguna");
$data['validate'] =
array('admin_user'=>'User',
'admin_nama'=>'Full name',
'admin_alamat'=>'Address',
'admin_telepon'=>'Telephone',
'admin_level_kode'=>'Group'
);
$data['onload'] = 'admin_nama';
$where_admin['admin_user'] = $filter2;
$admin = $this-
>ADM->get_admin('*', $where_admin);
$data['admin_user'] = ($this->input-
>post('admin_user'))?$this->input->post('admin_user'):$admin->admin_user;
$data['admin_pass'] = ($this->input-
>post('admin_pass'))?$this->input->post('admin_pass'):$admin->admin_pass;
$data['admin_nama'] = ($this->input-
>post('admin_nama'))?$this->input->post('admin_nama'):$admin->admin_nama;
$data['admin_alamat'] = ($this->input-
>post('admin_alamat'))?$this->input->post('admin_alamat'):$admin->admin_alamat;
$data['admin_telepon'] = ($this->input-
>post('admin_telepon'))?$this->input->post('admin_telepon'):$admin->admin_telepon;
$data['admin_level_kode'] = ($this->input-
>post('admin_level_kode'))?$this->input->post('admin_level_kode'):$admin-
>admin_level_kode;
$simpan =
$this->input->post('simpan');
if ($simpan){
$where_edit['admin_user'] =
validasi_sql($data['admin_user']);
$edit['admin_pass'] =
validasi_sql(do_hash(($data['admin_pass']), 'md5')); }
$edit['admin_nama'] =
validasi_sql($data['admin_nama']);
$edit['admin_alamat'] =
validasi_sql($data['admin_alamat']);
$edit['admin_telepon'] =
validasi_sql($data['admin_telepon']);
$edit['admin_level_kode'] =
validasi_sql($data['admin_level_kode']);
$this->ADM->update_admin($where_edit, $edit);
redirect("pengaturan/pengguna");
if ($data['admin']->admin_level_kode == 1) {
$where_edit['admin_user']= $filter2;
$edit['admin_status'] = 'H';
$this->ADM->update_admin($where_edit, $edit);
redirect("pengaturan/pengguna");
} else {
redirect("pengaturan/pengguna");
if ($data['admin']->admin_level_kode == 1) {
$where_edit['admin_user']= $filter2;
$edit['admin_status'] = 'A';
$this->ADM->update_admin($where_edit, $edit);
redirect("pengaturan/pengguna");
} else {
redirect("pengaturan/pengguna");
$this->load->vars($data);
$this->load->view('admin/home');
} else {
redirect("wp_login");
if ($this->session->userdata('logged_in') == TRUE){
$where_admin['admin_user'] = $this->session-
>userdata('admin_user');
$data['admin'] = $this->ADM-
>get_admin('',$where_admin);
if ($data['admin']->admin_level_kode == 1) {
$data['web'] = $this->ADM-
>identitaswebsite();
@date_default_timezone_set('Asia/Jakarta');
$data['dashboard_info'] = FALSE;
$data['content'] =
'admin/content/pengaturan/kelompok_pengguna';
$data['menu_terpilih'] = '1';
$data['submenu_terpilih'] = '13';
$data['action'] =
(empty($filter1))?'view':$filter1;
$data['validate'] =
array('admin_level_kode'=>'Code',
'admin_level_nama'=>'Name'
);
if ($data['action'] == 'view'){
$data['berdasarkan'] =
array('admin_level_nama'=>'NAME');
$data['cari'] = ($this->input-
>post('cari'))?$this->input->post('cari'):'admin_level_nama';
$data['q'] = ($this->input-
>post('q'))?$this->input->post('q'):'';
$data['halaman'] =
(empty($filter2))?1:$filter2;
$data['batas'] = 10;
$data['page'] = ($data['halaman']-1) *
$data['batas'];
$where_admin_level['admin_level_status'] = 'A';
$like_admin_level[$data['cari']] = $data['q'];
$data['jml_data'] = $this->ADM-
>count_all_admin_level($where_admin_level, $like_admin_level);
$data['jml_halaman'] =
ceil($data['jml_data']/$data['batas']);
$data['onload'] = 'admin_level_nama';
$data['admin_level_kode'] = ($this->input-
>post('admin_level_kode'))?$this->input->post('admin_level_kode'):'';
$data['admin_level_nama'] = ($this->input-
>post('admin_level_nama'))?$this->input->post('admin_level_nama'):'';
$simpan = $this-
>input->post('simpan');
if ($simpan){
$insert['admin_level_kode'] =
validasi_sql($data['admin_level_kode']);
$insert['admin_level_nama'] =
validasi_sql($data['admin_level_nama']);
$insert['admin_level_status'] =
validasi_sql('A');
$this->ADM->insert_admin_level($insert);
redirect("pengaturan/kelompok_pengguna");
}
$data['onload'] = 'admin_level_kode';
$where_admin_level['admin_level_kode'] = $filter2;
$admin_level = $this->ADM-
>get_admin_level('*', $where_admin_level);
$data['admin_level_kode'] = ($this->input-
>post('admin_level_kode'))?$this->input->post('admin_level_kode'):$admin_level-
>admin_level_kode;
$data['admin_level_nama'] = ($this->input-
>post('admin_level_nama'))?$this->input->post('admin_level_nama'):$admin_level-
>admin_level_nama;
$simpan = $this-
>input->post('simpan');
if ($simpan){
$where_edit['admin_level_kode'] =
$data['admin_level_kode'];
$edit['admin_level_nama'] =
$data['admin_level_nama'];
$this->ADM->update_admin_level($where_edit, $edit);
redirect("pengaturan/kelompok_pengguna");
$where_edit['admin_level_kode']= $filter2;
$edit['admin_level_status'] = 'H';
$this->ADM->update_admin_level($where_edit, $edit);
redirect("pengaturan/kelompok_pengguna");
$this->load->vars($data);
$this->load->view('admin/home');
} else {
redirect("admin");
} else {
redirect("wp_login");
if ($this->session->userdata('logged_in') == TRUE) {
$where_admin['admin_user'] = $this->session-
>userdata('admin_user');
$data['web'] = $this->ADM-
>identitaswebsite();
$data['admin'] = $this->ADM-
>get_admin('',$where_admin);
@date_default_timezone_set('Asia/Jakarta');
$data['dashboard_info'] = FALSE;
$data['content'] =
'admin/content/pengaturan/edit_password';
$data['menu_terpilih'] = '1';
$data['submenu_terpilih'] = '';
$data['validasi'] =
array('admin_pass_recent'=>'Current Password','admin_pass'=>'New
Password','admin_pass_ulang'=>'New Password');
$data['admin_user'] = $this->session-
>userdata('admin_user');
$data['admin_pass_recent'] = ($this->input-
>post('admin_pass_recent'))?$this->input->post('admin_pass_recent'):'';
$data['admin_pass'] = ($this->input-
>post('admin_pass'))?$this->input->post('admin_pass'):'';
$data['admin_pass_ulang'] = ($this->input-
>post('admin_pass_ulang'))?$this->input->post('admin_pass_ulang'):'';
$simpan = $this-
>input->post('simpan');
if($simpan){
if(do_hash($data['admin_pass_recent'], 'md5') ==
$data['admin']->admin_pass) {
if($data['admin_pass'] == $data['admin_pass_ulang']) {
$where_edit['admin_user'] =
validasi_sql($data['admin_user']);
$edit['admin_pass'] =
validasi_sql(do_hash(($data['admin_pass']), 'md5'));
$this->ADM->update_admin($where_edit,
$edit);
} else {
echo'<script type="text/javascript">
alert("Password does not match!");</script>';
} else {
echo'<script type="text/javascript">
alert("Current Password is Incorrect!");</script>';
$this->load->vars($data);
$this->load->view('admin/home');
} else {
redirect("wp_login");
}
5.SYSTEM TESTING
Unit testing is commenced when a unit has been created and effectively reviewed .In order to
test a single module we need to provide a complete environment i.e. besides the section we
would require • The procedures belonging to other units that the unit under test calls
Testing admin login form-This form is used for log in of administrator of the system.
In this form we enter the username and password if both are correct administration page will
open otherwise if any of data is wrong it will get redirected back to the login page and again
ask the details.
Report Generation: admin can generate report from the main database.
5.2 INTEGRATION TESTING:
In the Integration testing we test various combination of the project module by providing the
input. The primary objective is to test the module interfaces in order to confirm that no errors
are occurring when one module invokes the other module.
Integration testing is the process of testing how different components of a system work
together. In the context of a warehouse management system, this might involve testing how the
inventory management system interacts with the order processing system, or how the shipping
and receiving system interacts with the user management system.
End-to-end testing: Test the entire system from end-to-end, including all of the different
components and subsystems. This will help ensure that the system is functioning correctly as a
whole, and that there are no data inconsistencies or errors.
Data consistency: Test that data is being consistently passed between different components of
the system. For example, ensure that inventory levels are accurately reflected in the order
processing system, and that user data is being correctly passed between the user management
system and the other components.
Performance testing: Test the system's performance under load, including how it handles
multiple users and high volumes of data. This will help ensure that the system can handle real-
world use cases and that it is performing optimally.
Security testing: Test the system's security measures, including user authentication and
authorization, data encryption, and access controls. This will help ensure that the system is
secure and that user data is protected.
5.3 ScreenShots
Staff’s Dashboard
Staff’s Change Password View
PHPStorm: This is a powerful integrated development environment (IDE) for PHP that can
help developers write, test, and debug code more efficiently. It includes features like code
completion, debugging tools, and version control integration.
Composer: This is a dependency management tool for PHP that can help manage external
libraries and dependencies. It can help ensure that all dependencies are up-to-date and that they
are compatible with the system.
PHPUnit: This is a testing framework for PHP that can be used to write unit tests for the
system. It includes features like test case templates, data providers, and assertions.
Git: This is a version control system that can help manage code changes and collaborations
between developers. It can help ensure that code changes are tracked and that it's easy to roll
back changes if necessary.
Docker: This is a containerization platform that can help simplify deployment and scaling of
the warehouse management system. It allows developers to package the system and its
dependencies into a container that can be easily deployed to any environment.
Jenkins: This is a continuous integration and continuous delivery (CI/CD) tool that can help
automate testing and deployment of the warehouse management system. It can help ensure that
code changes are tested and deployed quickly and efficiently.
Selenium: This is a testing framework for web applications that can be used to perform end-
to-end testing of the warehouse management system. It allows developers to automate browser
interactions and test the system's functionality from the user's perspective.
Software specification
• Server Side : PHP
• Client Side : HTML, CSS, Bootstrap
• Back end : MySQL 5.
• Server : XAMPP
Software Description
PHP
PHP stands for ‘PHP: Hypertext Preprocessor’, with the original PHP within this standing for
‘Personal Home Page’. The acronym has changed as the language developed since its launch
in 1994 to reflect its nature more accurately. PHP originally stood for Personal Home Page, but
it now stands for the recursive initialism PHP: Hypertext Preprocessor.
PHP code may be executed with a command line interface (CLI), embedded into HTML
code, or used in combination with various web template systems, web content management
systems, and web frameworks. PHP code is usually processed by a PHP interpreter
implemented as a module in a web server or as a Common Gateway Interface (CGI) executable.
The web server outputs the results of the interpreted and executed PHP code, which may be
any type of data, such as generated HTML code or binary image data. PHP can be used for
many programming tasks outside of the web context, such as standalone graphical applications
and robotic drone control.
The standard PHP interpreter, powered by the Zend Engine, is free software released
under the PHP License. PHP has been widely ported and can be deployed on most web servers
on almost every operating system and platform, free of charge.
The PHP language evolved without a written formal specification or standard until
2014, with the original implementation acting as the de facto standard which other
implementations aimed to follow. Since 2014, work has gone on to create a formal PHP
specification.
PHP - Overview
PHP is a recursive acronym for "PHP: Hypertext Preprocessor". PHP is a server side scripting
language that is embedded in HTML. It is used to manage dynamic content, databases, session
tracking, even build entire e-commerce sites. The PHP Hypertext Preprocessor (PHP) is a
programming language that allows web developers to create dynamic content that interacts
with databases. PHP is basically used for developing web based software applications. This
tutorial helps you to build your base with PHP.
PHP Objects
Implementations
The only complete PHP implementation is the original, known simply as PHP. It is the
most widely used and is powered by the Zend Engine. To disambiguate it from other
implementations, it is sometimes unofficially called "Zend PHP". The Zend Engine compiles
PHP source code on-the-fly into an internal format that it can execute, thus it works as an
interpreter. It is also the "reference implementation" of PHP, as PHP has no formal
specification, and so the semantics of Zend PHP define the semantics of PHP. Due to the
complex and nuanced semantics of PHP, defined by how Zend works, it is difficult for
competing implementations to offer complete compatibility.
Licensing
PHP is free software released under the PHP License, which stipulates that: Products
derived from this software may not be called "PHP", nor may "PHP" appear in their name,
without prior written permission from group@php.net. You may indicate that your software
works in conjunction with PHP by saying "Foo for PHP" instead of calling it "PHP Foo" or
"phpfoo". This restriction on use of "PHP" makes the PHP License incompatible with the
General Public License (GPL), while the Zend License is incompatible due to an advertising
clause similar to that of the original BSD license.
Use
PHP is a general-purpose scripting language that is especially suited to server-side web
development, in which case PHP generally runs on a web server. Any PHP code in a requested
file is executed by the PHP runtime, usually to create dynamic web page content or dynamic
images used on websites or elsewhere. It can also be used for command-line scripting and client-
side graphical user interface (GUI) applications. PHP can be deployed on most web servers, many
operating systems and platforms, and can be used with many relational database management
systems (RDBMS). Most web hosting providers support PHP for use by their clients. It is
available free of charge, and the PHP Group provides the complete source code for users to
build, customize and extend for their own use.
PHP acts primarily as a filter taking input from a file or stream containing text and/or
PHP instructions and outputting another stream of data. Most commonly the output will be
HTML, although it could be JSON, XML or binary data such as image or audio formats. Since
PHP 4, the PHP parser compiles input to produce bytecode for processing by the Zend Engine,
giving improved performance over its interpreter predecessor.
Originally designed to create dynamic web pages, PHP now focuses mainly on server-
side scripting, and it is similar to other server-side scripting languages that provide dynamic
content from a web server to a client, such as Microsoft's ASP.NET, Sun Microsystems' Java Server
Pages, and mod_perl. PHP has also attracted the development of many software frameworks that
provide building blocks and a design structure to promote rapid application development (RAD).
Some of these include PRADO, CakePHP, Symfony, CodeIgniter, Laravel, Yii Framework, Phalcon and
Zend Framework, offering features similar to other web frameworks.
What is XAMPP?
The acronym XAMPP stands for cross-platform, Apache, MySQL, PHP, and Perl. XAMPP is
a free and open source web server that allows you to develop, test, and build websites on a
local server.
Unlike PHP, XAMPP installation is quite simple and uncomplicated. Search for "XAMPP
Download" in your browser or go to their website. You should see the current version of
XAMPP for Windows, Linux, and OSX when it opens.
To run PHP for the web, you will need to install a web server like Apache and a database like
MySQL – and both are supported by XAMPP.
XAMPP is a local server that can run smoothly on our personal computer, and is accepted in
both Windows and Linux. It also helps you test websites and see if they work before actually
publishing them to a web server.
Before running a PHP script, you must know where to write it.
In the XAMPP directory, there exists a folder called “htdocs”. This is where all the
programs for the web pages will be stored.
Now, to run a PHP script:
1. Go to “C:\xampp\htdocs” and inside it, create a folder. Let’s call it “demo”. It’s
considered good practice to create a new folder for every project you work on.
Characteristics of PHP
• Simplicity
• Efficiency
• Security
• Flexibility
• Familiarity
Just to give you a little excitement about PHP, I'm going to give you a small
conventional PHP Hello World program, You can try it using Demo link.
<html>
<head>
<title>Hello World</title>
</head>
<body>
</body></html>
Architecture Overview
This section explains how all the different parts of the driver fit together. From the
different language runtimes, through the extension and to the PHP libraries on top. This new
architecture has replaced the old mongo extension. We refer to the new one as
the mongodb extension.
MYSQL
MySQL tutorial provides basic and advanced concepts of MySQL. Our MySQL tutorial is
designed for beginners and professionals. MySQL is a relational database management system
based on the Structured Query Language, which is the popular language for accessing and
managing the records in the database. MySQL is open-source and free software under the GNU
license. It is supported by Oracle Company. MySQL database that provides for how to manage
database and to manipulate data with the help of various SQL queries. These queries are: insert
records, update records, delete records, select records, create tables, drop tables, etc. There are
also given MySQL interview questions to help you better understand the MySQL database.
MySQL is currently the most popular database management system software used for
managing the relational database. It is open-source database software, which is supported by
Oracle Company. It is fast, scalable, and easy to use database management system in
comparison with Microsoft SQL Server and Oracle Database. It is commonly used in
conjunction with PHP scripts for creating powerful and dynamic server-side or web-based
enterprise applications. It is developed, marketed, and supported by MySQL AB, a Swedish
company, and written in C programming language and C++ programming language. The
official pronunciation of MySQL is not the My Sequel; it is My Ess Que Ell. However, you can
pronounce it in your way. Many small and big companies use MySQL. MySQL supports many
Operating Systems like Windows, Linux, MacOS, etc. with C, C++, and Java languages.
BOOTSTRAP 4
Bootstrap is a free and open-source tool collection for creating responsive websites and web
applications. It is the most popular HTML, CSS, and JavaScript framework for developing
responsive, mobile-first websites.
It solves many problems which we had once, one of which is the cross-browser compatibility
issue. Nowadays, the websites are perfect for all the browsers (IE, Firefox, and Chrome) and
for all sizes of screens (Desktop, Tablets, Phablets, and Phones). All thanks to Bootstrap
developers -Mark Otto and Jacob Thornton of Twitter, though it was later declared to be an
open-source project.
Easy to use: Anybody with just basic knowledge of HTML and CSS can start using Bootstrap
Responsive features: Bootstrap's responsive CSS adjusts to phones, tablets, and desktops
Mobile-first approach: In Bootstrap, mobile-first styles are part of the core framework
Browser compatibility: Bootstrap 4 is compatible with all modern browsers (Chrome, Firefox,
Internet Explorer 10+, Edge, Safari, and Opera)
JSCRIPT:
JScript is Microsoft's implementation of an ECMA-compliant scripting language (like
JavaScript) that is targeted specifically to the Internet. Like VBScript, JScript is implemented
as a fast, portable interpreter for use in Web browsers and applications that use ActiveX
controls, Java applets, and OLE Automation servers. JScript is not Java and has nothing to do
with Java. It is closer in syntax to C or C++. If you are a C or C++ developer, you will probably
find JScript to be a very easy scripting language to learn (I know I did).
Also like VBScript, JScript supports three separate classes of objects for use within JScript:
Objects provided by the JScript engine
Objects provided by Internet Explorer (found in the Microsoft Scripting site)
Objects provided by the Web page author via the HTML <OBJECT> tag.
Advantages
JScript is pretty much guaranteed to run in any browser, anywhere. If your page really must
work in any browser, this is the language for you.All those books in the bookstore. How many
books can there be? If you want to learn JScript, there are myriad books to help you.
Similarity to C and Java. If you are a C or Java programmer, the JScript syntax is going to be
familiar to you.
Language features:
Dynamic: JScript was designed as a completely dynamic language; that is, you can
effectively redefine your program on the fly. While this has a number of potential
disadvantages, it does give you the ultimate flexibility in your scripts. This is particularly useful
in DHTML programming, since DHTML allows you to dynamically manipulate the object
model. If you really want to drive DHTML, you might want to consider using JScript instead
of VBScript.
Object oriented: JScript certainly isn't a traditional class-based, object-oriented
language, but it does provide an effective alternative based on prototypes. This allows you to
reap the benefits of object orientation without the statically defined nature of classes.
Regular expressions: A main reason why Perl has such a huge following. Regular expressions
add the ability to search for expressions in strings. This is exceptionally useful on the server
and, increasingly, on the client.
Eval: Provides the ability to immediately evaluate code at runtime. This allows you to
dynamically redefine logic dependent at run time. This is especially useful when used in
conjunction with Remote Scripting, which works with VBScript as well.
7.CONCLUSION
In conclusion, a warehouse maintenance and inventory control system (WMICS) is a crucial
component of supply chain management, overseeing the efficient flow of goods and materials
through warehouses. WMS handles various functions such as inventory tracking, picking,
receiving, and storage. It aids in forecasting, inventory control, and provides visibility into an
organization's inventory levels. WMICS can be integrated with other systems like ERP, CRM,
and TMS, enabling seamless data sharing and improving overall supply chain efficiency. The
choice of a WMS depends on the organization's size, nature, and specific requirements.
WMICSes can vary in complexity, from simple spreadsheet files to sophisticated software.
Cloud-based WMICSes are becoming increasingly popular due to their ease of installation,
lower costs, and reduced burden on IT departments.
Integration of advanced technologies: WMICS will adopt advanced technologies like AI and
IoT to provide more accurate forecasting, real-time inventory tracking, and automated
warehouse operations.
Use of data analytics for better decision-making: WMICS will leverage data analytics to
enable businesses to make informed decisions related to inventory management, warehouse
operations, and logistics.
Greater forecasting accuracy: It will use advanced algorithms and machine learning to
provide more accurate demand forecasting and inventory management.
Improved user experience: This will focus on providing a more intuitive and user-friendly
interface to improve user experience.
Cross-functional integration: This will integrate with other business systems, such as ERP
and CRM, to provide a seamless and integrated solution.
Enhanced security measures: This will need to incorporate robust security measures to ensure
the protection of sensitive data and information.
Sustainability and social responsibility:This will need to consider sustainability and social
responsibility in their design, development, and implementation, taking into account factors
such as carbon footprint and ethical supply chain management.
Growing market demand: The market for WMICS is expected to grow significantly, with
increased demand for more efficient and automated warehouse operations.