- Project Outline -
Project: Design and build a database inventory system for LLoyd Gourmet Cheese Company.
Team: 4 people.
My role and responsibilities: Coding using MySQL, PHP, HTML, JavaScript. Design of the website. User testing. Report writing and editing.
Tools used: MySQL, PHP, HTML, JavaScript, Microsoft Word, Miro.
Date: September 2019 - March 2020.
- Introduction -
The purpose of this project was to design and build a database inventory system for the Lloyd Gourmet Cheese Company (LGCC). The company was looking at new ways to manage their inventory and considered purchasing enterprise resource planning (ERP) software in the near future. Before purchasing the software, they wanted to build a prototype using MySQL, PHP, HTML and JavaScript. The purpose of the prototype was to see how an ERP system could help their business and what advantages it would provide. The process of building the system was divided into three distinct tasks:  
 - Creating the database design developing forms
 - Queries and reports
 - Refining the database​​​​​​​
The distribution manager for the company was the primary point of contact for our team and he provided the following initial functional specification to help develop the first iteration of the design: 
 - Design the tables for this database 
 - Define the fields (data structures) for each table 
 - Create the tables in MySQL 
 - Populate the tables with a reasonable amount of data 
 - Create suitable forms for each of the data tables. Keep in mind the functionality needed for each form. Use validation rules  and access form controls were necessary. Make the system easy to use 
 - Produce any queries or reports dictated by the client 
 - Produce relevant user and technical documentation 
While LGCC initially provided a functional specification, throughout the development of the system our team was in constant contact with them. This resulted in the their needs being integral to each iteration of the prototype. It also reduced the probability of building a prototype which is completely useless for LGCC. This iterative approach was heavily based on the principles of user-centred design which is deployed in designing physical products. 
With this methodology in mind the team set about building the system by developing the database design. 
- Database Design -
The first step involved in building the system for LGCC was to create a high level database design. This involved creating the necessary tables and data types within those tables based on the customer needs. Following principles of good programming practice the main focus was on the outputs outlined in the functional specification. Once the outputs were well understood the focus then shifted to table’s logic and structure.   
Initially there was confusion with regards to what the client was looking for and how the client currently operated their business. This was particularly the case with regards to information about expiration dates and how many cheeses and supplier were involved with the business. These issues resulted in inadequate designs however, this issue were resolved through conversation with the client and gaining more insight into the business. After a couple of iterations a final database design was constructed. 
The information was displayed to the customer using an application design worksheet as well as ER diagrams. 

Entity relationship (ER) diagram for database design, created using Miro

The appropriate fields were highlighted and color coded with some tables requiring a compound primary key to uniquely identify individual records in a table. 
One of the main challenges with developing the database design was understanding the M: N (many-to-many) relationships, which were necessary for this process. Initially the M: N relationship was solved by adding foreign keys to the “many” side of the relationship that points to the primary key of the related table. However, the research carried out on M : N relationships during the database design stage, indicated that this approach was incorrect for two reasons: 
 - This approach creates a significant amount of data redundancy 
 - Given the structure and contents of the table the relational operations become increasingly complex and inefficient. 
Fortunately, the difficulties that arise with M: N relationships can be avoided by creating a composite entity. An example of composite entities from the database design is the supplier order details table. This tables essentially converts what would have been an 1:M table and creates a 1:M relationship. 
Data redundancy leads to data anomalies which can destroy the effectiveness of the database. However, the composite tables in this context are critical in minimizing data redundancy. 
Once the customer was satisfied with the database design, the next step in developing the system was to develop the necessary tables, forms queries and reports using MySQL, PHP, HTML, and Java Script. 
- Developing the System -
My team and I did some research into how database inventory systems are typically set up. As a result of this research and our increasing familiarity with the problem space, it became clear that the system was essentially split into two aspects. The customer facing side and staff facing side of the application. These two aspects revolved around the inventory and product tables respectively. The customer would use the application to purchase cheese which would diminish the inventory. While the staff would use to application to replenish stock and look at insightful company trends and reports.
Therefore the best approach of explaining the database is through the separate lenses of the customer and staff members.   
- User Interface -
- About the User Interface -
A critical component of this system is the user interface (UI) as the system will be used on a daily basis by staff and customers alike. Failure to recognise the importance of user experience would be detrimental to the uptake of the application, therefore the interface should be easy to use and intuitive.
A number of different interface design practices where deployed in the development of the interface and they stemmed from researching the users, their goals, skills, preferences and tendencies.
The first objective was to keep the interface simple and ensure the interface is almost invisible to the user. This was achieved by avoiding unnecessary elements and using clear and concise language on labels and messages.
Another crucial aspect to the user interface was to create a consistent design using common UI elements. By ensuring consistency throughout the application users should feel comfortable and be able to quickly complete tasks. Repeated patterns in the design and layout help to facilitate efficiency. Once the user of the application learns how to complete one task, they should be able to transfer that skill to operate the rest of the application.
Page layout and colour also played an important role in the UI. These features were used to draw attention to certain items and helped to increase readability and scan-ability.
System feedback was also an important consideration in designing the application. By informing users of actions, errors and changes in state it helps to alleviate any frustrations the user may have with the system.​​​​​​​
- Design Iterations -
To help improve and refine the UI, the system underwent four separate user tests. It was extremely beneficial to get customer feedback with regards to the usability of the sight and the progress is outlined in the images below. 
Comparing the first design iteration to the final design iteration, here are some of the changes that were made based on user feedback:
 - Keep a consistent design throughout the website
 - Keep the visuals simple. Less distracting
 - Include all the cheeses on the order page. That way multiple orders can be made in one go
 - Highlight the cheeses that are low in stock and should be ordered soon
 - Have a running total cost as items are being added to the cart
 - Keep everything simple. The website should be intuitive and easy to navigate
 - Make sure you can return to the homepage at any point

First iteration of the supplier order form

Final iteration of supplier order form

- Full Technical Report -
To view the full report, click the button below. It goes through each section discussed here in detail. It also includes extra information such as the employee function flow, the customer functional flow, different trends and various reports. It also discusses the user testing the website underwent. 
- What I Learned -
 - Taking a user-centred design approach to this project
 - Learning to work with a client involves lots of communication to ensure the design is how they want it
 - Iterative process. The website went through many design iterations until the final one was reached that the client was happy with

You may also like

MOD LOGO
2021
The MOD logo was created for my portfolio. The logo went through multiple design iterations before settling on the final design seen here. This page outlines that process and the thinking behind my design.
ARTFLOW PROJECTS
2021
ArtFlow is an app that lets you turn your Android mobile or tablet into a complete digital sketchbook. Please enjoy my creations using this app!
SIMULATED BIKE COMPANY
2020
The simulation exposed me to all the aspects of setting up, operating and growing a business. It challenged me to make tough decisions in departments such as marketing, product development, manufacturing, sales, accounting, finance, business partner negotiations, and profitability analysis.
IDEAS
2021
This page gives a summary of the projects I am currently working on. It also provides a link to a regularly updated Google Drive folder, showing all my progress to date.
GRAPHIC DESIGN
2021
RECIPE APP
2021
This project involved designing and prototyping a "Chef Recipes" app on Figma, which included multiple artboards, custom icon designs, editing images and text, and everything else needed to create a polished realistic design.
FOODCLOUD PROJECT
2018
This is a project I worked on in the final year of my Engineering degree. I worked with two others. We collaborated with FoodCloud on this project. FoodCloud is a social enterprise that aims to reduce food waste and hunger within Ireland and the UK. FoodCloud gave my group this prompt: "How might we effect a step-change reduction of food waste in the Hospitality and Food Service (HaFS) sector by 2020?"
INSTAGRAM POSTER
2020
As part of this project I was asked to create a poster setting out the details of a new corporate creativity and innovation programme for an organisation of my choice.  The poster is positioned as a ‘call to action’ and education poster, encouraging employee participation in the new programme. 
Back to Top