Skip to content

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.

License

Notifications You must be signed in to change notification settings

LukeWait/midtown-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

App Screenshot

Table of Contents

Installation

Executable

Windows

  1. Download the latest Windows release from the releases page.
  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.
  2. Extract the contents to a desired location.
  3. Make the MidTownApp file executable by running the following command in the terminal:
    chmod +x MidTownApp
  4. Run the MidTownApp file by navigating to the directory in the terminal and executing:
    ./MidTownApp

From Source

To install and run the application from source:

  1. Clone the repository:

    git clone https://github.com/LukeWait/midtown-app.git
    cd midtown-app
  2. (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
  3. Install the dependencies:

    pip install -r requirements.txt
  4. Run the application:

    • Windows:
      python src\midtown_app.py
    • Linux:
      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.

Rock Paper Scissors Screenshot

  • Multiplication Table: Generate and view multiplication tables.

Multiplication Table Screenshot

  • Caesar Cipher: Encrypt and decrypt text using the Caesar Cipher algorithm.

Caesar Cipher Screenshot

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:

pip install pyinstaller==6.1.0

Windows

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

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:

    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:

    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.

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.

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

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Languages