The MidTown IT Training Solutions App provides a GUI hub to switch between three algorithmic solutions:
- Rock Paper Scissors
- Multiplication Table
- Caesar Cipher
- Download the latest Windows release from the releases page.
- Extract the contents to a desired location.
- Run the
MidTownApp.exe
file.
- Download the latest Linux release from the releases page.
- Extract the contents to a desired location.
- Make the MidTownApp file executable by running the following command in the terminal:
chmod +x MidTownApp
- Run the MidTownApp file by navigating to the directory in the terminal and executing:
./MidTownApp
To install and run the application from source:
-
Clone the repository:
git clone https://github.com/LukeWait/midtown-app.git cd midtown-app
-
(Optional) Create and activate a virtual environment:
- Windows:
python -m venv midtown_app_venv midtown_app_venv\Scripts\activate
- Linux:
python3 -m venv midtown_app_venv source midtown_app_venv/bin/activate
- Windows:
-
Install the dependencies:
pip install -r requirements.txt
-
Run the application:
- Windows:
python src\midtown_app.py
- Linux:
python src/midtown_app.py
- Windows:
After running the application, you can easily switch between the following applets:
- Rock Paper Scissors: Play a classic game against another player.
- Multiplication Table: Generate and view multiplication tables.
- Caesar Cipher: Encrypt and decrypt text using the Caesar Cipher algorithm.
To build executables for Windows, macOS, and Linux, you can use PyInstaller. I recommend using PyInstaller version 6.1.0 as it is stable and doesn't result in the executable being flagged as a virus like some newer versions. First, ensure you have PyInstaller installed:
pip install pyinstaller==6.1.0
Run the following command from the project main directory:
pyinstaller --onefile --add-data "assets/images:assets/images" --add-data "assets/fonts:assets/fonts" --noconsole src/midtown_app.py
For Linux, you need to create a hook-PIL.py file to handle the PIL library correctly. Follow these steps:
-
Create a file named hook-PIL.py in the main directory of your project with the following content:
from PyInstaller.utils.hooks import copy_metadata, collect_submodules datas = copy_metadata('Pillow') hiddenimports = collect_submodules('PIL')
-
Run the following command from the project main directory:
pyinstaller --onefile --add-data "assets/images:assets/images" --add-data "assets/fonts:assets/fonts" --additional-hooks-dir=. --noconsole src/midtown_app.py
This will generate the executable in the dist
directory. It will also create a build
directory and .spec
file. These are used in the build process and can be safely removed.
This project is licensed under the MIT License. See the LICENSE file for details.
This project was developed as part of an assignment at TAFE Queensland for subject ICTPRG434-435.
Icons used in the app are designed by Freepik - www.freepik.com.
Fonts used in the app are open source Google Fonts.
The source code for this project can be found in the GitHub repository: https://github.com/LukeWait/midtown-app.
For those building from source, the dependencies listed in requirements.txt
are:
- CTkToolTip==0.8
- customtkinter==5.2.1
- darkdetect==0.8.0
- Pillow==10.1.0