Our product is Tubluar, a streamlined console-based application designed to optimise the holiday experience. By offering a seamless platform for renting or purchasing beach essentials directly from the command line, Tubular eliminates the need to navigate multiple applications, simplifying the process for users. Our innovative click-and-collect system ensures that customers can effortlessly pick up their orders right at the beachfront, enhancing convenience and enjoyment.
In addition, Tubular features an intuitive owner view, empowering shop owners with comprehensive tools to manage their inventory, track order details, and be prepared for customer collection times. Holidays are a time to de-stress; with Tubular, customers and staff are given an easy and efficient experience!
Here is a general overview of our application:
Here is our SQLite DB Architecture:
Throughout the program we pass the cart
object, this holds the users current items in the cart. We initially were going to add this to the db each time but there would be no way to differentiate it from an actual real order right now if they quit the program mid order so we opted for this attempt. The cart
object is the same as the return from the db queries, an array of tuples for columns of the db.
DatabaseHelperStub.py (Not implemented in tests) This replaces the DB with data structures that would represent the output of the database and manipulated these.
ViewProductStub.py
This stubs the output of StockView
which provides data throughout the program.
view_products
from ViewStock and test the methods which uses data from this method.
TestOwnerView.py
Mocks user input to see how the program interacts. In addition it uses MagicMock
to see when a method is called and with what arguments. The first two test checks if a user input of 1 calls the correct views. The 3rd checks if updating stock works well and notifies the user. The 4th check tests the customer order selection prompt comes up. The 5th test comes up checking if after that it allows you to return to the start.
TestProduct.py Mocks user input to see how the program interacts. Further comments in the code itself.