This repository contains the source code for a coffee machine software in Object oriented Programming style . The software allows users to interact with the coffee machine, make various types of coffee, check resources, process payments, and generate reports.
Here is the sequential programming version of this project(without OOP) base_mode
The coffee machine software fulfills the following requirements:
-
generate_report: Users can generate a report that displays the current status of the coffee machine, this function accepts a coffee_maker object as it's input. -
find_drinkObject: The software makes use of this function to assign the user's choice of drink an object that represents the drink in the program. Accepts the prompt and a dictionary of all objects. -
run_software: This is the function responsible for all the operations within the program.
To run the coffee machine software, execute the main.py file. The software provides a user-friendly command-line interface for interaction. You can type the following commands:
espresso: Make an espresso coffee.latte: Make a latte coffee.cappuccino: Make a cappuccino coffee.report: Generate a report of the coffee machine status.off: Turn off the coffee machine.
If you need assistance or want to explore other commands, you can type help to access the help section.
The project consists of the following files:
-
main.py: The main source code file that contains the coffee machine software logic. It imports themenuItem,CoffeeMaker,MoneyMachineandSystemGraphicsclasses inorder to access the user's requests within the software. -
UI_interactions.py: This file provides additional functions required by the coffee machine software that handles the Software's UI handle the coffee purchase process. -
coffee_maker.py: This file contains theCoffeeMakerclass, which serves as a blueprint for any internal info regarding the specific drink. -
menu.py: This file contains theMenuItemandMenuclasses. Both classes act as a blueprint for the structure of a coffee object. TheMenuclass'find_drink(self, order_name)function returns the specifc drink with all it's ingredients to an objectMenuItem, which makes the object accessible. -
money_machine.py: This file contains all the necessary functions regarding the transactional side of the software. -
graphics.py: This file contains ASCII art used for enhancing the user interface and the graphics classSystemGraphicsresponsible for implenting system graphics within the software. It includes the company logo, report design, and payment section design.
Special thanks to Angla Yu for bringing about the idea for this project and supplying the base implementations for CoffeeMaker Menu MenuItem MoneyMachine through her 100 days of code course on Udemy
The ASCII art used in the software's user interface is created using the art library.
Note: The ASCII art in the README might not render properly on all platforms. Please refer to the actual source code files for accurate representations.
Feel free to explore the source code and adapt it to your needs. Enjoy your coffee machine software!
This project is licensed under the MIT License - see the LICENSE.txt file for details.
