IT Students' Capstone Project
IT Students' Capstone Project
MANAGEMENT SYSTEM
FRANCIS BEHING
CHRISTIAN ELEAZAR LAZANAS
JAYRALD ZAMBRANO
JUNE 2024
Republic of the Philippines
CENTRAL MINDANAO UNIVERSITY
Musuan, Maramag, Bukidnon
APPROVAL SHEET
Recommending Approval:
Approved:
Noted:
ii
AUTHOR’S BIOGRAPHICAL SKETCH
iii
AUTHOR’S BIOGRAPHICAL SKETCH
iv
AUTHOR’S BIOGRAPHICAL SKETCH
v
ACKNOWLEDGMENT
First and foremost, the proponents would like to praise and give their
deepest thanks to our Heavenly Father for His great love for the proponents,
for granting us this outstanding achievement, and for His showers of blessings
throughout the completion of this project.
vi
EXECUTIVE SUMMARY
vii
Copyright © 2024 by Francis Behing, Christian Eleazar C. Lazanas, and
Jayrald A. Zambrano
viii
TABLE OF CONTENTS
TITLE PAGE i
APPROVAL SHEET ii
AUTHOR’S BIOGRAPHICAL SKETCH iii
ACKNOWLEDGMENT vi
EXECUTIVE SUMMARY vii
COPYRIGHT PAGE viii
TABLE OF CONTENTS ix
LIST OF FIGURES xii
LIST OF TABLES xiv
LIST OF APPENDICES xv
CHAPTER I 1
1. Background of the Project 1
2. Statement of the Problem 2
3. Objectives of the Project 3
4. Scope and Limitation of the Project 4
5. Significance of the Project 4
CHAPTER II 6
1. REVIEW OF RELATED CONCEPT 6
2. REVIEW OF RELATED SYSTEM 7
CHAPTER III 9
TECHNICAL BACKGROUND 9
1. PHP 9
2. Laravel 9
3. HTML 10
4. CSS 10
5. Bootstrap 11
6. Javascript 11
7. PhpMyAdmin 12
8. MYSQL 12
9. XAMPP 13
10. Visual Studio Code 13
CHAPTER IV 15
1. Conceptual Framework 15
2. Project Approach 15
3. System Development Methodology 16
4. System Analysis 18
ix
i. Flowchart 19
ii. Context Level Data Flow Diagram 20
iii. Level 0 Data Flow Diagram 21
iv. Use Case Diagram 22
v. Entity Relationship Diagram 23
5. System Requirements Specification 23
i. Functional Requirements 24
ii. Non-functional Requirements 25
iii. Other Project Requirements 25
6. Project Management 25
i. Gantt Chart 25
7. Plan for Implementation and Testing 26
i. Step 1 Unit Testing 26
ii. Step 2 Integration 27
iii. Step 3 Usability Testing 27
3.1 Orientation 27
3.2 System Demonstration 27
3.3 System Testing 28
3.4 Survey Using SUS Questionnaire 28
iv. Deployment 30
CHAPTER V 31
1. Results 31
i. Landing Page 31
ii. Customer Login 33
iii. Customer Registration 34
iv. Customer Profile Page 34
v. Customer Add Order Page 35
vi. Customer Order History Page 37
vii. Staff and Admin Login 39
viii. Staff Dashboard Page 40
ix. Admin Dashboard Page 43
x. Admin Order Page 44
xi. Admin Inventories Page 46
xii. Admin Resource Page 47
xiii. Admin Account Page 48
xiv. Admin Setting Page 49
xv. Admin Generate Reports 50
2. Discussion 51
x
CHAPTER VI 54
1. Conclusion 54
2.Recommendation 55
REFERENCES 56
xi
LIST OF FIGURES
xii
Figure 33. Admin Inventories page 46
Figure 34. Admin Resource (trucks, products, borrowed gallons) 47
Figure 35. Admin Customer Account Page 48
Figure 36. Admin Staff Account Page 49
Figure 37. Admin Settings 49
Figure 38. Generate Sales Report 50
Figure 39. SUS Survey Results 51
Figure 40. SUS Rating Distribution 53
Figure 41. Customer Password Reset Link 73
Figure 42. Customer Reset & Type New Password 73
Figure 43. Customer Changed Password 74
Figure 44 Customer View Order History Details 74
Figure 45. Admin Truck Deliveries 75
Figure 46. Admin Add Truck 75
Figure 47. Admin Edit Truck 76
Figure 48. Admin Add Products 76
Figure 49. Admin Edit Product Details 77
Figure 50. Admin Add Customer 77
Figure 51. Admin Edit Customer Details 78
Figure 52. Admin View Customer Transactions 78
Figure 53. Admin Add Staff 79
Figure 54. Admin Edit Staff Details 79
Figure 55. Admin View Staff Details 80
Figure 56. Admin Edit Site Settings 80
Figure 57. Data Gathering (1) 82
Figure 58. Data Gathering (2) 82
Figure 59. System Presentation & Testing (1) 83
Figure 60. System Presentation & Testing (2) 83
Figure 61. System Presentation & Testing (3) 84
Figure 62. SUS Survey (1) 84
Figure 63. SUS Survey (2) 85
Figure 64. SUS Survey (3) 85
xiii
LIST OF TABLES
xiv
LIST OF APPENDICES
B Data Dictionary 66
C System’s Other UI 72
D Testing Documentation 81
xv
CHAPTER I
INTRODUCTION
In the Philippines, water refilling stations are currently one of the fastest-
growing businesses. Ms. Gamboa established Agua Boo on June 16, 2014, in
Valencia City and has been in operation for almost ten years. Currently, it has
an estimated customer base of 3000. Through walk-in purchases and
deliveries, it provides customers with clean and purified drinking water.
However, the company is still using the semi-manual method, which includes
recording customer information and keeping track of their daily sales by writing
it down in a notebook and inputting it into MS Office and Excel, also referred to
as manual filing. The manual method has led them to various problems,
including human errors, loss of documents, duplication of data, difficulty, and
slow retrieval of records.
1
The Agua Boo Water Web-based Management
System revolutionizes the operational efficiency of Agua Boo water refilling
stations by replacing semi-manual processes with advanced web-based
technologies. This comprehensive system tracks daily sales and customer
information, including orders and borrowed gallon counts, and significantly
mitigates common issues like human errors, document loss, and slow record
retrieval associated with manual methods. It also offers a user-friendly online
interface, allowing customers to effortlessly place orders and track their
transactions, enhancing their engagement and satisfaction.
Like other new businesses, Agua Boo Water, currently reliant on a semi-
manual system using Microsoft Office and Excel, faces significant operational
inefficiencies. Manual entry and transaction tracking are time-consuming and
prone to errors, leading to inaccurate sales records and customer information.
This method results in cluttered documentation, slow information retrieval, and
security risks regarding sensitive data. Additionally, the limited analytical
capabilities of the current system hinder strategic decision-making, impacting
overall business performance and customer satisfaction. The project aims to
replace this system with a streamlined, automated approach to enhance
productivity, data accuracy, and customer service, ultimately improving the
company's decision-making process and business efficiency.
2. Traditional filing techniques limit the number of orders per time, which
might cost businesses during peak times. Traditional filing techniques
need more real-time inventory and sales data, making it difficult to track
performance and make data-driven decisions.
2
3. Manual tracking and management of gallons can be prone to human
error, leading to inaccurate record-keeping and inventory management.
The stakeholder offers service for borrowing water gallons; however,
manual failure to track and manage gallons regularly will result in the
loss of borrowed gallons.
The general objective of this project is to develop the Agua Boo Water
Web-based Management System.
More specifically, this project aims to:
3
3. To establish a robust tracking system for gallon management that
accurately records and manages the inventory of gallons, including
those being produce and borrowed, to prevent losses and improve
inventory accuracy.
4
5. Significance of the Project
Agua Boo Owner/Manager. This can help them monitor and track all their
transactions, including the number of gallons, manage customer information
and orders, and generate sales reports.
Agua Boo Staff. It will provide them with a systematized method of monitoring
and managing the orders, deliveries, and gallons returned by the customers.
Customers. It will provide them with a systematized water ordering method via
walk-in or online transactions.
Developers. The system will help them gather new ideas and improve their
knowledge and skills, enabling them to create a system that will benefit the
water station's owner, staff, and users.
5
CHAPTER II
In 2016, Dela Cruz stated the water-filling business is one of the fastest-
growing businesses here in the Philippines. As this business grows, the
complexity of managing customer accounts and transactions, product
inventory, control, and report generation also grows and can lead to the
business instinct not to survive. Most businesses have water refills, staff
working on their reports, and inventory of products manually. They sell purified
water of comparable quality with bottled water at a lower price Magtibay said
(2016). For example, the price per gallon of refilled water purified in Agua Boo
Water ranges from ₱ 20-30 per container per gallon.
6
Challenges in Water Refilling Stations
7
intended end or user. Implementing a water business system benefits the
desired company by reducing human error and making their work efficient and
effective. They also stated that the system transforms the current manual
system into an automated one, lessening errors when tabulating sales
manually. Its quality is designed to meet the customer's requirements, Galan,
Semiano & Libertad (2020). So, the proponents developed a system that is
easily accessible in online ordering, user-friendly, and easy transaction to have
an order on time.
They stated that one is responsible for administrative duties like keeping
records, logging, and handling cash sales. They also receive calls or SMS from
the customer's orders or delivery requests to develop an Information System
Plan for Water Zip Purified Drinking Water, Pilones et al., (2020).
The requirement for water replenishing stations has grown over time,
according to M.Young., et al (April 2020). These tiny firms must become more
efficient to meet the increased demand. This project aims to develop an
inventory system for water refilling stations, allowing owners to track their
inventory regularly.
8
CHAPTER III
TECHNICAL BACKGROUND
1. PHP
2. Laravel
9
3. Hypertext Markup Language (HTML)
HTML stands for Hypertext Markup Language, the most widely used
language to write Web Pages. HTML is the language used to create web pages.
"Hypertext" refers to the hyperlinks that an HTML page may contain. "Markup
language" refers to the way tags are used to define the page layout and
elements within the page.
The proponents used html to create the structure of the web page, collect
user input through forms, link elements and display images.
10
5. Bootstrap
6. Javascript
The proponents used JavaScript for the user interface of the system. In
some of the system's functions, especially in updating the list, the user interface
must change without refreshing the page to provide an interactive and friendly
user interface.
11
7. PHPMyAdmin
8. MYSQL
9. XAMPP
XAMPP stands for Cross-Platform (X), Apache (A), MySQL (M), PHP
(P), and Perl (P). It is a simple, lightweight Apache distribution that makes it
easy for developers to create a local web server for testing. Everything the
developer needs to set up a web server – server application (Apache),
database (MySQL), and scripting language (PHP) – is included in a simple
extractable file. XAMPP is also cross-platform, which works equally well on
Linux, Mac, and Windows. Since most actual web server deployments use the
same components as XAMPP, it also makes transitioning from a local test
server to a live server extremely easy. Web development using XAMPP is
especially beginner-friendly, as stated by MIKOLUK (2013).
13
Visual Studio Code was utilized during the development of the system.
It provides easy access to folders, especially when utilizing the code. Visual
Studio Code is used for debugging, syntax highlighting, intelligent code
completion, snippets, and code refactoring.
14
CHAPTER IV
METHODOLOGY
1. Conceptual Framework
2. Project Approach
15
manager of Agua Boo, they find it hard to manually write and record the sales
of the company, customer information and orders, counts of the gallons being
borrowed, and sales reports. Also, they find it time-consuming to check those
previous transactions made by the customers manually. Some customers also
find it hard to determine the status of their orders.
With the support of several project studies, the challenges were then
assessed, and the idea of establishing a Web-based Management System to
conduct transactions between the admin and customers was established.
The agile technique was utilized during each phase of the completion of
this project. It begins with the preparation of the system that was produced for
the analysis, then moves on to the development, construction, testing, and
assessment of the system to conduct the extra projects. Finally, it culminates
with the evaluation of the system. The objective of the agile software
development life cycle is to produce and deliver working software in an efficient
and timely manner. The capacity to design and deploy simultaneously inside a
predetermined environment is one of its many advantages. Other benefits
include rapid capability creation and demonstration, suitability for fixed or
changing demands, and suitability for both.
16
Figure 2 depicts the Agile Model SDLC model chosen for this project.
The agile model's stages are well-defined and easy to comprehend for
consumers. It also enables proponents to update the established system in the
future for the consumers' comfort. Plan, Design, Development, Testing,
Release, and Feedback were all followed by the proponents
17
Deployment concerns with releasing the project to production after
ensuring that it's stable and ready for use by end-users. The system is now
complete, and the proponents have released or are about to release it to their
client, which has been uploaded to the internet and is ready to use. Users tests
the web system in this phase to see if it satisfies their needs and will be valuable
to them.
The last phase is review. This phase includes evaluating the project's
progress and finding opportunities for improvement, with a focus on continual
improvement and collaboration among team members and stakeholders. The
user input or review was delivered to the system in the last stage. They were
given questionnaires to complete to grade the overall system's performance
and provide feedback. The users also looked for any issues so that proponents
may address them as quickly as feasible.
4. System Analysis
i. Flowchart
18
The process flow ensures secure and role-specific access to system
functions, enhancing operational efficiency. The sequence concludes when the
user session is terminated by logging out or exiting the system.
19
ii. Context Level Data Flow Diagram
The data flow diagram at the Context Level represents the entire system,
including the essential inputs and outputs and the system as a whole. The
context flow for Agua Boo's Web-Based Management System is depicted in
Figure 4. They are composed of three different users. Every customer makes
a request or produces and submits an order transaction to the admin/staff. The
admin then accesses the system to supply the necessary data for the
processes, and the system generates information based on the queries that the
admin performs. In contrast, the staff manages the assigned orders and
delivery.
20
iii. Level 0 Data Flow Diagram
21
of the customer, staff, and administrative modules. Customers can create and
submit orders, but admins have complete control over the system and can do
whatever they want. The staff can manage orders assigned to them, including
viewing the assigned orders to deliver and changing their status to delivered
or canceled. They can also manage the gallons returned by the customer.
22
v. Entity Relationship Diagram
i. Functional Requirements
23
of orders, the total number of gallons borrowed, and the sales reports. The
admin runs as the head of the organization and has full access to all system
features. The staff can only view his assigned order and allows recording of
returned gallons. For the customer side, the system provides an easy and
hassle-free way to place orders online. Customers can create an account and
log in to view their order history, track their current orders, and make new
orders.
Administrator
● Can view the system.
● Can log in to the system.
● Can access dashboard
● Can access, add and manage users.
● Can access order list
● Can access the gallon management.
● Can access the products
● Can access trucks
● Can access and generate sales reports.
● Can access system settings
Staff
● Can view the system.
● Can log in to the system.
● Can access order list
● Can access gallons returned
Customer
● Can view the system.
● Can sign up and log in to the system.
● Can access online ordering orders and view status.
● Can access profile information
24
ii. Non-functional Requirements
Software Requirements
Software requirements in building the system are:
● Operating Systems (at least Windows 7 or any equivalent OS or higher).
● Browsers like Google Chrome, Firefox, Safari, Internet Explorer and
Opera Mini.
● Text editors like Visual Studio and Sublime Text Editor, MYSQL, and
XAMPP.
6.Project Management
i. Gantt Chart
Figure 8 is a Gantt chart that depicts the time needed to complete the
work necessary to accomplish the system's goals. It also presents a graphical
illustration of the tasks or stages that are planned out across a given period of
time. At this phase, the proponents were responsible for preparing and
coordinating the numerous tasks that needed to be finished to develop the
project based on the system's agile methodology and attain the target date of
implementation and deployment of the system
25
Figure 8. Gantt Chart
After evaluating each unit, all the units developed during the
implementation phase were integrated into a system. Following system
integration, the entire system was thoroughly examined for bugs and errors. It
underwent a comprehensive evaluation, and suggestions were provided for
future revisions and enhancements. The system was then pushed beyond its
limitations to ensure that it would not crash under extreme conditions.
The website was tested across various browsers, during which errors
were noted, and the application was subsequently debugged. After the testing
phase, the proponents gathered all comments from those who participated in
the system test. These insights served as a guide for adding and eliminating
unnecessary features of the system, as well as determining whether the
software requirement specifications and the specific objectives of the system
had been successfully met.
26
to determine whether or not the code was flawed. Before deploying the
management system, specific bugs in the code that were causing problems
were fixed. Furthermore, the graphical user interface and database design of
both modules were adjusted to conform to the requirements that were intended
for them.
During this phase, all of the individual parts of the system were brought
together and evaluated in the context of the whole. This was crucial to ensure
that the system's subcomponents interacted properly with external
dependencies, guaranteeing the system's proper functioning. The devices that
were submitted by the stakeholders were investigated by the proponents to
determine whether or not they conformed to the specification.
During this stage of the process, the owner, manager, staff, and
customers tested the system. The proponents anticipated receiving feedback
from the participants regarding whether or not it satisfied the organization's
requirements, both functional and non-functional.
3.1 Orientation
27
This stage included hands-on experience with the system up to the
admin module, as well as step-by-step instruction on the execution of a
number of different tasks. Additionally, each of the navigational elements
and buttons were explained in terms of the function they serve and the
scope of the actions that are generated when they are triggered.
This step occurred after the system had been demonstrated, and it
required users to have a fundamental understanding of how to utilize the
system. The entire process of testing the system involved staff from
Agua Boo being chosen by the manager, which entailed using the
system in general. All functionalities of the system, from the
administrator side to the customer side, were tested and observed to see
if they adhered to the system's objectives without any errors. This testing
was performed by the manager, staff, and customers from Agua Boo.
28
9. I felt very confident using the system.
10. I needed to learn a lot of things before I could get going with this system.
The final score was determined using a Likert scale with five points,
ranging from strongly agree to strongly disagree (as shown in Figure 9).
Each response is assigned a value for the SUS score calculation. The
following is a breakdown of the points for the responses: Strongly Disagree
receives one point, disagree receives two points, Neutral receives three points,
agree receives four points, and Strongly Agree receives five points.
29
Figure 10 is a snapshot of the range of scores and what they mean after
adding the total score of the new values (X+Y) and multiplying it by 2.5. This
snapshot was created after calculating the total score of the new values.To
provide further clarification, a System Usability Scale score above 60 was
considered above average, while below 60 was deemed below average. A
score of 70 or above was considered acceptable, and an unacceptable score
corresponded to 50 percent. To assess if the system's capabilities and features
meet the users’ expectations.
IV. Deployment
The deployment took place in the Agua Boo Water Store. At this phase,
it was required that the handlers of the program administer the system that had
already been through and conform to the steps that were described earlier. The
approach involved installing the system on the laptop owned by the
shareholder, as well as installing the system online. The design of the system
itself was adaptable, making it possible to accommodate any changes or
modifications that might have occurred in the future.
30
CHAPTER V
I. Landing Page
The landing page for the "Agua Boo Water" utilizes a split layout design,
with a dominant purple color scheme on the left that effectively draws attention
to the company logo and the call-to-action button. This layout is optimized for
user engagement, directing visitors' eyes towards the ordering process.
31
Figure 12. About Section
The "About Us" section of the website features a headline "Quench your
thirst on time." which implies a promise of timely service, which is a valuable
aspect of customer satisfaction in the water refilling industry. The collage of
images supports this by showing different stages of the service, such as the
filtration systems, the delivery vehicles, and the storefront, giving customers a
visual tour of the efficiency and reach of Agua Boo's operations. This ties back
to the section's purpose by demonstrating the company's commitment to
delivering on its value proposition promptly.
32
The "Reach Us Out" section on the website's Contact is designed for
accessibility and customer interaction. It prominently features a map to assist
customers in locating Agua Boo Water Refilling Station, enhancing physical
accessibility. The section also provides various means of communication,
including a Facebook link, a phone number, and an email address, offering
multiple channels for customer inquiries and support.
ii Customer Login
33
iii. Customer Registration
34
The Customer Profile Page on the website is designed for a
personalized and informative user experience. It neatly presents the user's
information, including full name, address, and contact details, with options to
edit the profile or change the password for account security. The panel also
includes a summary of account activity, showing the number of borrowed
gallons, and a concise order summary for active orders, delivered, canceled,
and total orders. The interface allows for easy tracking of user activity, which
can enhance customer satisfaction by providing a clear and manageable
overview of the user's interactions with the service. The "Add Order" button is
strategically placed to encourage continued engagement.
36
Figure 20. Customer Edit Details
37
The "Customer Order History" page is designed to provide users with a
comprehensive view of their past transactions. The tabular format lists the order
number, recipient, total price, quantity returned, date ordered, and date
updated, giving users full visibility into their purchase history. The 'View' action
button for each order suggests that more detailed information can be accessed,
allowing users to review individual order specifics. This setup not only offers
users transparency regarding their interactions with the service but also aligns
with business objectives of fostering trust and accountability by keeping a clear
and accessible record of customer transactions.
38
Figure 23. Customer View Active Order Details and Status
39
The Staff and Admin Login Page presents a clean and professional
interface, with a straightforward form for login credentials. The backdrop
features a relevant image of water bottles, which immediately contextualizes
the page to the water refilling business. The login form itself is minimalistic,
requesting just the essential information—email and password—with a
prominent login button. This design suggests an efficient and secure entry point
for staff and administrative access, underscoring the importance of functionality
and ease of use for internal users who require access to the system's backend
for management and operational tasks.
40
Figure 26. Staff Active Orders Update
41
The Staff Delivered Orders Dashboard is a tool designed for monitoring
the status of completed deliveries. It displays a list with columns for the
customer's name, address, contact number, total quantity of items delivered,
the total amount of the order, and the date delivered. This straightforward layout
aids in providing a quick reference for staff to review completed transactions.
The table is equipped with search functionality, enhancing the ability to filter
through records efficiently. Additionally, pagination is included, indicating the
system can handle and display a large volume of data, which is essential for
high-operational businesses.
42
ix. Admin Dashboard Page
43
x. Admin Order Page
44
Figure 31. Admin Add New Customer
The add new order allows the system administrator to access all features
of managing new orders. This includes adding a new order, entering or
searching the data of the customer, and selecting the items being ordered.
45
The update order module allows the system administrator to access all
features of managing the progress or status of orders. This includes the ability
to assigned the order to specific delivery truck, update the status of orders as
well as updating the number of returned gallons. The interface indicates an
interactive, real-time system for managing customer orders, designed to offer
an overview of transactions for efficient administration.
The admin inventories pages show the dashboard for monitoring the
inventories. It provides real-time monitoring of gallons being produced and
returned in daily operations. Each product also features the number of gallons
returned and borrowed, and a specific date can be selected for viewing and
monitoring.
46
xii. Admin Resource Page
47
inventory accuracy. These interfaces provide a centralized, user-friendly
platform for administrators to oversee and manage resources critical to the
delivery service, including vehicle logistics maintenance, products, and
borrowed gallons highlighted from the project’s objectives.
48
Figure 36. Admin Staff account module
The Admin Staff Account Module displays a table listing staff members,
which is a key component of the internal management system for an
administrator. It shows essential details such as staff ID, first and last names,
addresses, and roles, and has an 'Actions' column with options to presumably
view, edit, or deactivate staff records.
49
The figure "Admin Settings" module, specifically the "Site Settings"
section user interface, allows the super admin to view and edit the company's
profile and contact information on the website landing page. It includes editable
fields for the company's slogan, which is currently set to a customer-centric
message, "Quench your thirst," and a brief description of the business, defining
Agua Boo as a water refilling station. The contact side lists the company's
Facebook page for social media presence, a phone number, and an email
address for direct contact. The 'Edit' button indicates that you can update these
fields as needed, indicating a dynamic system that allows you to manage site
content directly through the admin panel.
The figure above displays the report generation and printing features of
the Agua Boo Water Management System's report generation and printing
features. In Figure 38, the dashboard provides an interface for selecting a date
range to generate sales reports either summary or detailed, with fields for the
start and end dates and a submit button to process the request. The pop up
image shows the rendered sales report within the system's interface, ready for
download or printing. This functionality provides the administrative user with a
streamlined process for creating periodical sales reports for analysis or record-
50
keeping purposes. It makes it easy to access printed versions of sales data for
any given timeframe as a reference to the project's fifth objective.
2. Discussion
The SUS survey results for the "Agua Boo Web-based Management
System" showed a variation in perceived usability across different user roles
which are the admins, staff, and customers or consumers (as shown in Table
1).
The system's mean SUS score was 76.5%, translating to a 'B' grade.
This solid rating reflects the system's generally good usability. The relative
score gap between customers, staff, and administrators highlights specific
areas of improvement.
51
Table 1. Respondents Testing Results
Average 76.5 B
52
The table above shows the 20 respondents' testing results and how
individual SUS scores were calculated. The process involves summing the
scores for all odd-numbered questions and subtracting 5 to obtain (X).
Simultaneously, the total score for all even-numbered questions is summed,
and the result is subtracted from 25 to derive (Y). Combining these new values
(X and Y) and multiplying the sum by 2.5 yields the final SUS score. For the
overall mean of the system's SUS score, all respondents' results are summed
up and divided to get the average mean score of the system. See Figure 54 for
a detailed rating distribution for each of SUS questions.
The bar graphs visually summarize the distribution of responses for ten
questions on SUS survey, differentiated by odd-numbered questions
represented in blue and even-numbered in red. In the odd-numbered questions,
Question 5 is notable for receiving the highest count of '5' ratings, with 19
respondents indicating strong agreement, suggesting that the majority view is
that the website's functions are well integrated. On the other hand, within the
even-numbered questions, Question 8 stands out with the most '1' ratings,
accumulating 16 responses, which suggests that most of the respondents
strongly disagree with the statement, "I found the system very awkward to use."
a sign of positive user feedback. The graph pattern points to specific areas
where users feel the system excels or needs enhancement.
53
CHAPTER VI
CONCLUSION AND RECOMMENDATION
1. Conclusion
54
Lastly, the automation of sales report generation has effectively
reduced the time spent on manual report preparation. As a result, sales
data reliability has increased, and human errors in report generation
have been substantially decreased, as evidenced by the accuracy and
timeliness of reports detailed in the results.
2. Recommendation
1. The developers who would enhance this system can add a legend
that distinguishes the colors of the delivery truck to which the order
was assigned.
2. The system developers are encouraged to add another field to
upload a customer ID photo for validation and verification purposes.
3. Future developers of the system should put a restriction that allows
the customers to be marked inactive for not making new orders for
the next 15 days.
4. Future system developers would enhance it by adding an online
payment option for hassle-free and cashless transactions.
55
REFERENCES
56
Moreto, S. (2017). Getting Started with Bootstrap 4 for Web
Development [Video]. Retrieved from PackPub:
https://www.packtpub.com/product/getting-started-with-bootstrap-4-for-
web-development-video/9781788999113
MySQL. (2017). What is MySQL? Retrieved from MySQL:
https://dev.mysql.com/doc/refman/5.7/en/what-is-%20Mysql.html
Norozpour, S., Momenzadeh, M., & Abolhasani, A. (2021, June).
Proposing new system for handling business data systems with more
functionality and usability. Retrieved from ResearchGate:
https://www.researchgate.net/publication/352298830_Proposing_new_
system_for_handling_business_data_systems_with_more_functionality
_and_usability
Olan, A. (2016). https://dev.mysql.com/doc/refman/5.7/en/what-is-
%20Mysql.html. Retrieved from Academia:
https://independent.academia.edu/ArleneOlan
Pacinabao, K. (2016, April). Marketing Plan: Water Refilling Station.
Retrieved from Course Hero:
https://www.coursehero.com/file/82278241/purified-water-refill-
stationdocx/
Pilones, D. G., Decasa, J. P., De Vera, V. E., & Alejandrino, J. (2020,
July). INFORMATION SYSTEMS DEVELOPMENT PLAN FOR WATER
ZIP PURIFIED DRINKING WATER. Retrieved from ResearchGate:
https://www.researchgate.net/publication/349895910_INFORMATION_
SYSTEMS_DEVELOPMENT_PLAN_FOR_WATER_ZIP_PURIFIED_D
RINKING_WATER
Saniukaite, L. (2018). Speeding up Application Development With
Bootstrap. Retrieved from Toptal: https://www.toptal.com/twitter-
bootstrap/speeding-up-development-bootstrap
UIUXTrend. (n.d.). Measuring and Interpreting System Usability Scale
(SUS). Retrieved from UIUXTrend: https://uiuxtrend.com/measuring-
system-usability-scale-sus/
Vegh, C. D. (2017, July). Water Refilling Station Management System.
Retrieved from Scribd: https://www.scribd.com/doc/141646258/Water-
Refilling-Station-Management-System
57
APPENDICES
57
APPENDIX A
USE CASE SUITE
59
● Administrator
○ UC-00 Manage System Settings
○ UC-01 Manage Accounts/Users
○ UC-02 Manage Orders
○ UC-03 Manage Trucks
○ UC-04 Manage Gallons
○ UC-05 Manage Products
○ UC-06 Manage Sales
○ UC-07 Generate Report
● Staff
○ UC-08 Update Order status
● Customer
○ UC-09 Create & Submit Order
○ UC-10 View/Track Order Status
60
UC-00 Manage System Settings
Priority: Expected
Priority: Expected
61
Priority: Expected
Priority: Expected
Priority: Expected
62
Direct Actors System Administrator, staff
Priority: Expected
Priority: Expected
63
Main Success Scenario 1. On the bottom sidebar, click the
dashboard.
2. Inside of it is the graphical presentation
of sales.
Priority: Expected
Main Success Scenario 1.On the bottom sidebar, click the dashboard.
Priority: Expected
Main Success Scenario 1.On the top of staff dashboard, active orders
can be found and update it accordingly
64
UC-09 Create, Submit order
Priority: Expected
Main Success Scenario 1. Inside the profile page, click the “Add
Order” button.
2. Enter delivery address and create and
submit orders.
Priority: Expected
Main Success Scenario 1. In the profile page, scroll down and find
the active order table.
2. Click the specific order and view status
65
APPENDIX B
DATA DICTIONARY
66
Table 2. Add Staffs
Table 3. Customers
67
borrowed INT(11) Quantity of the borrowed gallons of
the customer
Table 4. Addresses
68
Table 5. Customer Forgot Password
Table 6. Orders
69
Table 7. Products
70
created_at TIMESTAMP Date and time created
Table 9. Trucks
71
APPENDIX C
SYSTEM’S OTHER UI
72
Figure 41. Customer Password Reset Link
73
Figure 43. Customer Change password
74
Figure 45. Admin Truck Deliveries
75
Figure 47. Admin Edit Truck Details
76
Figure 49. Admin Edit Product Details
77
Figure 51. Admin Edit Customer Details
78
Figure 53. Admin Add Staff
79
Figure 55. Admin View Staff Details
80
APPENDIX D
TESTING DOCUMENTATION
81
Figure 58. Data Gathering (1)
82
Figure 60. System Presentation & Testing (1)
83
Figure 62. System Presentation & Testing (3)
84
Figure 64. SUS Survey (2)
85
APPENDIX E
86
87
88
89
90
91
APPENDIX F
SYSTEM’S RELEVANT CODE
92
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\DB;
use App\Models\addstaff;
use App\Models\customers;
use App\Models\products;
use App\Models\trucks;
use App\Models\orders;
use App\Models\Sitesetting;
use App\Models\Address;
use Carbon\Carbon;
switch ($timeFrame) {
case 'Weekly':
$groupBy = "CONCAT(YEAR(created_at), '-', WEEK(created_at))";
break;
case 'Monthly':
$groupBy = 'MONTH(created_at)';
break;
default:
$groupBy = 'DATE(created_at)';
}
93
->get();
$weeklyData = orders::selectRaw('DAYNAME(created_at) as
day_of_week, SUM(total_price) as total_sales')
->whereBetween('created_at', [$startDate, $endDate])
->where('order_status', 'Delivered')
->groupBy('day_of_week')
->orderByRaw("FIELD(day_of_week , 'Sunday', 'Monday',
'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday')")
->get();
94
$totalWeeklySales = $weeklyData->sum('total_sales');
// Total borrowed.
$totalBorrowed = customers::sum('borrowed');
return view('admin.admindashboard',
compact(
'salesData',
'truckPerformance',
'salesByLocation',
'timeFrame',
'weeklyData',
'totalWeeklySales',
'totalSalesThisMonth',
'totalOrdersToConfirmToday',
'totalBorrowed'
));
}
95
public function toOrders(){
$orders = orders::with('customer', 'product')
->orderBy('updated_at', 'desc')
->get();
return view('admin.orders', compact('orders'));
}
96
return view('admin.addproduct');
}
return view('admin.addorder', [
'customers' => $customers,
'trucks' => $trucks,
'products' => $products
]);
}
$trucks = trucks::with('order')->get();
return view('admin.printreport');
}
97
function addStaff(Request $request){
$staffData = $request->validate([
'first_name'=>'required',
'last_name'=>'required',
'address'=>'required',
'contact_number'=>'required|numeric',
'role'=>'required',
'email_address'=>'required',
'password'=>'required',
'truck_id'=>'required'
]);
$staffData['password'] = Hash::make($staffData['password']);
$newStaff = addstaff::create($staffData);
$id->update($staffData);
98
$staffData = $request->validate([
'password'=>'required'
]);
$id->update($staffData);
// Prevent self-deletion
if (auth()->id() == $id->id) {
return redirect()->back()->withErrors(['error' => "Cannot delete
currently logged in account"]);
}
$id->delete();
return redirect(route('view.staff'))->with('success', 'Account deleted
successfully');
}
$customerData['customer_password'] =
Hash::make($customerData['customer_password']);
99
$newCustomer = customers::create($customerData);
if ($newCustomer) {
// Create an address entry using the customer's information
Address::create([
'customer_id' => $newCustomer->customer_id,
'fullname' => $newCustomer->customer_name,
'purok' => $newCustomer->customer_purok,
'barangay' => $newCustomer->customer_barangay,
'city' => $newCustomer->customer_city,
'phonenum' => $newCustomer->customer_phonenum,
]);
}
]);
$currentBorrowed = $customer_id->borrowed;
$customer_id->customer_name = $customerData['customer_name'];
$customer_id->customer_purok = $customerData['customer_purok'];
100
$customer_id->customer_barangay =
$customerData['customer_barangay'];
$customer_id->customer_city = $customerData['customer_city'];
$customer_id->borrowed = $updatedBorrowed;
$customer_id->customer_phonenum =
$customerData['customer_phonenum'];
$customer_id->is_active = $customerData['is_active'];
$customer_id->customer_email = $customerData['customer_email'];
$customer_id->update();
$orderCount = $customer_id->order()->count();
if ($orderCount > 0) {
return redirect()->back()->with('warning', 'This customer has an order
and cannot be deleted.');
}
$customer_id->delete();
return redirect(route('view.customers'))->with('success', 'Customer
deleted successfully');
}
101
// --------------- Add a Product ------------------
function addProduct(Request $request){
$productData = $request->validate([
'product_name'=>'required',
'product_price'=>'required|numeric',
'bundle_quantity' => 'nullable|numeric',
'bundle_price' => 'nullable|numeric'
]);
$newProduct = products::create($productData);
// if ($orderCount > 0) {
// return redirect()->back()->with('warning', 'This product is part of an
order and cannot be edited.');
// }
return view('admin.editproduct', ['product_id' => $product_id]);
}
$product_id->update($productData);
102
// Check if the product is part of any orders
$orderCount = orders::whereHas('product', function ($query) use
($product_id) {
$query->where('orders_products.product_id', $product_id-
>product_id);
})->count();
if ($orderCount > 0) {
return redirect()->back()->with('warning', 'This product is part of an
order and cannot be deleted.');
}
$product_id->delete();
return redirect(route('view.resource'))->with('success', 'Products deleted
successfully');
}
$newTruck = trucks::create($truckData);
$id->update($truckData);
103
return redirect(route('view.resource'))->with('success', 'Truck updated
successfully');
}
$orderCount = $id->order()->count();
if ($orderCount > 0) {
return redirect()->back()->with('warning', 'This truck has an order
and cannot be deleted.');
}
$id->delete();
return redirect(route('view.resource'))->with('success', 'Truck deleted
successfully');
}
104
$selected_bundle_products = $request-
>input('selected_bundle_products', []);
foreach ($selected_bundle_products as $productId => $quantity) {
$quantityForm = $request->input('bundle_quantities.' . $productId,
0);
$product = products::find($productId);
105
}
if ($request->input('order_status') == 'Delivered') {
$orderData['reason'] = null;
106
$id->update($orderData);
if ($request->filled('date_filter')) {
$dateFilter = $request->date_filter;
switch ($dateFilter) {
case 'today':
$ordersQuery->whereDate('created_at', Carbon::today());
break;
case 'yesterday':
$ordersQuery->whereDate('created_at', Carbon::yesterday());
break;
case 'this_week':
$ordersQuery->whereBetween('created_at', [Carbon::now()-
>startOfWeek(), Carbon::now()->endOfWeek()]);
break;
}
}
$orders = $ordersQuery
->orderBy('updated_at', 'desc')
->get();
107
// --------------- Deliveries Functions ------------------
$id->update($orderData);
if ($request->input('order_status') == 'Delivered') {
// Get the customer associated with the order
$customer = customers::find($id->customer_id);
108
// --------------- live update deliveries ------------------
public function toDeliveriesLive(){
$orders = orders::with('customer', 'product', 'truck')
->orderBy('updated_at', 'desc')
->paginate(20);
return view('admin.pages.partialsdeliveries_table', compact('orders'));
}
$validation = $request->validate([
'start_date'=>'required',
'end_date'=>'required'
]);
$startDate = $request->start_date;
$endDate = $request->end_date;
$orders = orders::with('product')
->where('order_status', 'Delivered')
->whereBetween('created_at', [$startDate, $endDate])
->get();
// Total Sales
$orderstoSum = orders::where('order_status', 'Delivered')
->whereBetween('created_at', [$startDate, $endDate])
->get();
$totalSales = $orderstoSum->sum('total_price');
109
->select(DB::raw('DATE(created_at) as order_date'),
DB::raw('SUM(total_price) as daily_sales'))
->groupBy('order_date')
->orderBy('order_date', 'asc')
->get();
$dataBundles = array_values($dataBundles);
$dataSingles = array_values($dataSingles);
110
$totalNumOrders = orders::whereBetween('created_at',[$startDate,
$endDate])
->where('order_status', 'Delivered')
->count();
$totalreturnedValue = orders::whereBetween('created_at',[$startDate,
$endDate])
->where('order_status', 'Delivered')
->sum('returned');
return view('admin.printreport',
compact(
'startDate',
'endDate',
'orders',
'totalSales',
'salesPerTruck',
'salesPerDay',
'labels',
'salesPerProduct',
'dataBundles',
'dataSingles',
'totalNumOrders',
'totalreturnedValue'
));
$sitesettings->update($siteData);
111
public function toCustomerinfos($customer_id){
$customer = customers::with('addresses')->findorFail($customer_id);
return view('admin.customerinfos', compact('customer', 'chistories'));
}
112
]);
// Create a new address
$address = new Address();
$address->fullname = $validatedData['Fullname'];
$address->purok = $validatedData['Purok'];
$address->barangay = $validatedData['Barangay'];
$address->city = $validatedData['City'];
$address->phonenum = $validatedData['Phonenumber'];
// Assuming you need to attach this address to a customer
// You should pass the customer ID to this method
$address->customer_id = $request->customer_id;
$address->save();
// Return a JSON response
return response()->json([
'success' => true,
'message' => 'Address added successfully.',
'address' => $address // Optionally send back the added address
]);
}
113