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.
Design - Create initial designs of the layout and behavior of various aspects of the new system, and show how it will be tested.
- Pseudocode for Order Report Page
Development - Implement the new system, documenting the techniques used to ensure that the system is robust against incorrect and/or malicious data.
Functionality - Test the new system and document how it should be used.
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.