{"id":21566763,"url":"https://github.com/lukewait/midtown-app","last_synced_at":"2025-03-18T05:27:36.591Z","repository":{"id":204399059,"uuid":"711752046","full_name":"LukeWait/midtown-app","owner":"LukeWait","description":"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.","archived":false,"fork":false,"pushed_at":"2024-06-25T08:18:22.000Z","size":2424,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-24T12:13:58.156Z","etag":null,"topics":["cryptography","education","games","gui","learning-tools","python","training"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LukeWait.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-30T05:22:43.000Z","updated_at":"2024-06-25T08:18:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"e4726af7-61e5-4fd9-9a5e-6c8ceb11b4c2","html_url":"https://github.com/LukeWait/midtown-app","commit_stats":null,"previous_names":["lukewait/midtown_it-training_app","lukewait/gui-app-switcher-midtownapp","lukewait/gui-app-switcher-midtown","lukewait/midtown-app"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukeWait%2Fmidtown-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukeWait%2Fmidtown-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukeWait%2Fmidtown-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LukeWait%2Fmidtown-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LukeWait","download_url":"https://codeload.github.com/LukeWait/midtown-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244162478,"owners_count":20408537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cryptography","education","games","gui","learning-tools","python","training"],"created_at":"2024-11-24T10:28:00.697Z","updated_at":"2025-03-18T05:27:36.566Z","avatar_url":"https://github.com/LukeWait.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MidTown IT Training Solutions App\n\n## Description\nThe MidTown IT Training Solutions App provides a GUI hub to switch between three algorithmic solutions:\n- Rock Paper Scissors\n- Multiplication Table\n- Caesar Cipher\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/LukeWait/midtown-app/raw/main/assets/screenshots/midtown-app-home.png\" alt=\"App Screenshot\" width=\"600\"\u003e\n\u003c/p\u003e\n\n## Table of Contents\n- [Installation](#installation)\n- [Usage](#usage)\n- [Development](#development)\n- [License](#license)\n- [Acknowledgments](#acknowledgments)\n- [Source Code](#source-code)\n- [Dependencies](#dependencies)\n\n## Installation\n\n### Executable\n#### Windows\n1. Download the latest Windows release from the [releases page](https://github.com/LukeWait/midtown-app/releases).\n2. Extract the contents to a desired location.\n3. Run the `MidTownApp.exe` file.\n\n#### Linux\n1. Download the latest Linux release from the [releases page](https://github.com/LukeWait/midtown-app/releases).\n2. Extract the contents to a desired location.\n3. Make the MidTownApp file executable by running the following command in the terminal:\n    ```sh\n    chmod +x MidTownApp\n    ```\n4. Run the MidTownApp file by navigating to the directory in the terminal and executing:\n    ```sh\n    ./MidTownApp\n    ```\n\n### From Source\nTo install and run the application from source:\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/LukeWait/midtown-app.git\n    cd midtown-app\n    ```\n\n2. (Optional) Create and activate a virtual environment:\n    - **Windows**:\n      ```sh\n      python -m venv midtown_app_venv\n      midtown_app_venv\\Scripts\\activate\n      ```\n    - **Linux**:\n      ```sh\n      python3 -m venv midtown_app_venv\n      source midtown_app_venv/bin/activate\n      ```\n\n3. Install the dependencies:\n    ```sh\n    pip install -r requirements.txt\n    ```\n\n4. Run the application:\n    - **Windows**:\n      ```sh\n      python src\\midtown_app.py\n      ```\n    - **Linux**:\n      ```sh\n      python src/midtown_app.py\n      ```\n\n## Usage\nAfter running the application, you can easily switch between the following applets:\n- **Rock Paper Scissors**: Play a classic game against another player.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/LukeWait/midtown-app/raw/main/assets/screenshots/midtown-app-rps.png\" alt=\"Rock Paper Scissors Screenshot\" width=\"600\"\u003e\n\u003c/p\u003e\n\n- **Multiplication Table**: Generate and view multiplication tables.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/LukeWait/midtown-app/raw/main/assets/screenshots/midtown-app-multiply-table.png\" alt=\"Multiplication Table Screenshot\" width=\"600\"\u003e\n\u003c/p\u003e\n\n- **Caesar Cipher**: Encrypt and decrypt text using the Caesar Cipher algorithm.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/LukeWait/midtown-app/raw/main/assets/screenshots/midtown-app-caesar.png\" alt=\"Caesar Cipher Screenshot\" width=\"600\"\u003e\n\u003c/p\u003e\n\n## Development\n### Building Executables with PyInstaller\nTo 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:\n```sh\npip install pyinstaller==6.1.0\n```\n#### Windows\nRun the following command from the project main directory:\n```sh\npyinstaller --onefile --add-data \"assets/images:assets/images\" --add-data \"assets/fonts:assets/fonts\" --noconsole src/midtown_app.py\n```\n#### Linux\nFor Linux, you need to create a hook-PIL.py file to handle the PIL library correctly. Follow these steps:\n1. Create a file named hook-PIL.py in the main directory of your project with the following content:\n    ```sh\n    from PyInstaller.utils.hooks import copy_metadata, collect_submodules\n\n    datas = copy_metadata('Pillow')\n    hiddenimports = collect_submodules('PIL')\n    ```\n\n2. Run the following command from the project main directory:\n    ```sh\n    pyinstaller --onefile --add-data \"assets/images:assets/images\" --add-data \"assets/fonts:assets/fonts\" --additional-hooks-dir=. --noconsole src/midtown_app.py\n    ```\n\nThis 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.\n\n## License\nThis project is licensed under the MIT License. See the LICENSE file for details.\n\n## Acknowledgments\nThis project was developed as part of an assignment at TAFE Queensland for subject ICTPRG434-435.\n\nIcons used in the app are designed by Freepik - [www.freepik.com](https://www.freepik.com).\n\nFonts used in the app are open source Google Fonts.\n\n## Source Code\nThe 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).\n\n## Dependencies\nFor those building from source, the dependencies listed in `requirements.txt` are:\n- CTkToolTip==0.8\n- customtkinter==5.2.1\n- darkdetect==0.8.0\n- Pillow==10.1.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukewait%2Fmidtown-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flukewait%2Fmidtown-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flukewait%2Fmidtown-app/lists"}