Edward Giles

Generate PDF Download PDF

→ Index

Inventory System

Languages/frameworks used: PHP, MySQL, Bootstrap

For my International Baccalaureate Internal Assessment for Computer Science, I wrote a secure inventory-management system for My Nonna's, a group of Italian restaurant stalls in schools in Singapore. It is a web application, written in PHP with MySQL, and it keeps a database of all items that the restaurants need to stock, and whether each restaurant has performed a stock-take on a given day. When stock-takes are performed, it keeps track of any items that need to be ordered, and communicates this information to the 'admin manager' who is responsible for contacting ingredient suppliers.

The staff in each stall do a daily stock-take of the ingredients they have available. They use the system by scanning a special QR code, corresponding to a specific item, when that item needs to be re-ordered from the supplier. The QR codes contain a web link to a special web-page in the system, which writes the information about the item into a database table. The 'admin manager' then accesses a page which reads this table and displays all of the stalls' requests for items. When the day's stock-take is complete, the staff scan a special QR code to signal this to the admin manager.

In order to ensure that there is no unauthorized ordering of ingredients or bad edits to the database, the system requires users to log in. It transmits and stores their login details securely, using PHP's implementations of bcrypt and SHA-256 for password hashing. I also made use of Bootstrap to make sure the pages of the application are laid out in a professional manner.

Project Documentation

This project was done in five stages:

Planning/Requirements - Find a client, and gather the requirements for the new system.

- Letter from Client

- Requirements Document

Design - Create initial designs of the layout and behavior of various aspects of the new system, and show how it will be tested.

- Database and UI Designs

- Flowcharts

- Pseudocode for Order Report Page

- Table of Test Cases

Development - Implement the new system, documenting the techniques used to ensure that the system is robust against incorrect and/or malicious data.

- Implementation Details

Functionality - Test the new system and document how it should be used.

- Demonstration Video

Evaluation - Install the new system so that it can be used by the client, collect their feedback, and suggest ways to develop the system further.

- Evaluation Document

→ Index

YouTube LinkedIn GitHub SoundCloud