https://github.com/lukewait/midtown-app
Educational GUI tool developed as part of a TAFE QLD assignment, providing interactive access to three algorithmic solutions: Rock Paper Scissors, Multiplication Table, and Caesar Cipher. Ideal for IT training and understanding basic programming concepts within a structured application.
https://github.com/lukewait/midtown-app
cryptography education games gui learning-tools python training
Last synced: 11 months ago
JSON representation
Educational GUI tool developed as part of a TAFE QLD assignment, providing interactive access to three algorithmic solutions: Rock Paper Scissors, Multiplication Table, and Caesar Cipher. Ideal for IT training and understanding basic programming concepts within a structured application.
- Host: GitHub
- URL: https://github.com/lukewait/midtown-app
- Owner: LukeWait
- License: mit
- Created: 2023-10-30T05:22:43.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-25T08:18:22.000Z (over 1 year ago)
- Last Synced: 2025-01-24T12:13:58.156Z (about 1 year ago)
- Topics: cryptography, education, games, gui, learning-tools, python, training
- Language: Python
- Homepage:
- Size: 2.31 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MidTown IT Training Solutions App
## Description
The MidTown IT Training Solutions App provides a GUI hub to switch between three algorithmic solutions:
- Rock Paper Scissors
- Multiplication Table
- Caesar Cipher
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [Development](#development)
- [License](#license)
- [Acknowledgments](#acknowledgments)
- [Source Code](#source-code)
- [Dependencies](#dependencies)
## Installation
### Executable
#### Windows
1. Download the latest Windows release from the [releases page](https://github.com/LukeWait/midtown-app/releases).
2. Extract the contents to a desired location.
3. Run the `MidTownApp.exe` file.
#### Linux
1. Download the latest Linux release from the [releases page](https://github.com/LukeWait/midtown-app/releases).
2. Extract the contents to a desired location.
3. Make the MidTownApp file executable by running the following command in the terminal:
```sh
chmod +x MidTownApp
```
4. Run the MidTownApp file by navigating to the directory in the terminal and executing:
```sh
./MidTownApp
```
### From Source
To install and run the application from source:
1. Clone the repository:
```sh
git clone https://github.com/LukeWait/midtown-app.git
cd midtown-app
```
2. (Optional) Create and activate a virtual environment:
- **Windows**:
```sh
python -m venv midtown_app_venv
midtown_app_venv\Scripts\activate
```
- **Linux**:
```sh
python3 -m venv midtown_app_venv
source midtown_app_venv/bin/activate
```
3. Install the dependencies:
```sh
pip install -r requirements.txt
```
4. Run the application:
- **Windows**:
```sh
python src\midtown_app.py
```
- **Linux**:
```sh
python src/midtown_app.py
```
## Usage
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.
## Development
### Building Executables with PyInstaller
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:
```sh
pip install pyinstaller==6.1.0
```
#### Windows
Run the following command from the project main directory:
```sh
pyinstaller --onefile --add-data "assets/images:assets/images" --add-data "assets/fonts:assets/fonts" --noconsole src/midtown_app.py
```
#### Linux
For Linux, you need to create a hook-PIL.py file to handle the PIL library correctly. Follow these steps:
1. Create a file named hook-PIL.py in the main directory of your project with the following content:
```sh
from PyInstaller.utils.hooks import copy_metadata, collect_submodules
datas = copy_metadata('Pillow')
hiddenimports = collect_submodules('PIL')
```
2. Run the following command from the project main directory:
```sh
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.
## License
This project is licensed under the MIT License. See the LICENSE file for details.
## Acknowledgments
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](https://www.freepik.com).
Fonts used in the app are open source Google Fonts.
## Source Code
The source code for this project can be found in the GitHub repository: [https://github.com/LukeWait/midtown-app](https://www.github.com/LukeWait/midtown-app).
## Dependencies
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