This project was created as the portfolio project for CS361 (Software Engineering I) at Oregon State University. The project is a Recipe Calculator and Converter desktop application. It is written in python and uses PySide6 and PyQT 5 for the UI. The app utilizes microservice architecture. Users input values into the UI and then the client-side request is sent to the server in order to receive back the desired data (the response). This client/server interaction is handled using ZeroMQ. The development of the project followed a typical Agile development cycle with a focus on fulfilling user stories and inclusivity heuristics.
- Python
- ZeroMQ for client/server communications for microservices
- PySide 6 for UI
- PyQT 5 integrated with PySide for UI
- PyCharm
-
Clone the Git repo and navigate to the directory
https://github.com/nohabean/Recipe-Calculator-Converter.git cd ./path/to/Recipe-Calculator-Converter -
Install Dependencies
-
Python 3.11+
pip install -r requirements.txt
-
-
Run the client, server, and UI in separate terminals, starting with the server.
-
Terminal 1: Run tcp_server.py
python tcp_server.py -
Terminal 2: Run tcp_client.py
python tcp_client.py -
Terminal 3: Run UI.py
python UI.py
-
The Conversions tab takes user input to convert measurements for each entered value. Users can add multiple entries, delete an entry, delete all entries, clear all current inputs in the entries, and export the entries and results.
To use this, the user should input a valid value for the quantity to convert, select the input units, and then select the desired output units. Once all entries are filled, click the Calculate button to see the output result(s) of the conversion(s). If a required field is missing or if the input is not valid, the user will be notified.
The Recipe Calculator tab takes user input to change quantities for recipe values to change serving sizes. Similarly to the Conversions tab, users can add multiple entries, delete an entry, delete all entries, clear all current inputs in the entries, and export the entries and results.
To use this, the user should input the name of the recipe component, the quantity/value of that component, the measurement unit, choose to increase or decrease the value, and then input the value to multiply or divide the recipe quantity by. Once all entries are filled, click the Calculate button to see the output result(s) of the conversion(s). If a required field is missing or if the input is not valid, the user will be notified.

