Your assignment is to create a Python program that uses a graphical user interface (GUI) to address a real-world problem. Within reason, you may choose to address any real-world problem that you would like. However, please only choose a real-world problem that is safe and legal.

Your program should read some sort of external data file to perform its analysis. The data file can be a text file, a CSV file, or even something else. The data file can be real data, or you can also make up your own simulated data to show a proof of concept. For examples, think back to the files provided along with homeworks 4 and 5. Homework 4 utilized a CSV file with employee income data, and homework 5 utilized a CSV file with grocery store price data. Neither of these files contained "real" data, but they were used to show the proof-of-concept for your program. If you are looking for inspiration or for real data files to use, an excellent and free source of data files to consider is Kaggle (see https://www.kaggle.com/datasets?fileType=csv).

Your program should use a GUI window to allow the user to specify and/or customize their analysis. The exact parameters of your GUI are of your choosing, but the minimum requirements are as follows.

  • Use at least two labels.
  • Use at least two potential messageboxes.
  • Use at least two buttons.
  • Use at least four dropdowns/text boxes.

Each button, dropdown, or text box should contribute meaningfully to your program's functionality. That is, do not place widgets on your GUI just to meet the minimum requirements above, but make sure that they are all useful in some way.

Your program should perform its analysis and either write or append its result to an output file. You may choose an appropriate format for this output file, but please choose an output format that is professional and makes sense within the scope of your project.

You may complete this project either individually or with a partner (that is, a group of two). One partner may submit the final project files on behalf of the group. In this case, please clearly indicate both partners' names on each file. Both partners will receive the same grade.

If you choose to complete the project with a partner, then your project has the following additional requirements.

  • Use at least four labels rather than at least two labels.
  • Use at least four potential messageboxes rather than at least two potential messageboxes.
  • Use at least three buttons rather than at least two buttons.
  • Use at least six dropdowns/text boxes rather than at least four.

When submitting your project, please include the following files.

  • A brief written report. The written report should describe your project concept, including what problem your problem is looking to solve and how your program addresses that problem. Additionally, your report should describe how to use your program for a user working with it for the first time. Please use three to four pages as a rough guideline for the expectations for the written report; however, you may write more or less as needed. Please design your report to look professional. For example, use complete sentences and check your spelling.
  • Your Python program.
  • At least one example data file.

Some considerations to note:

  • Design your GUI to be understandable and visually attractive. The exact parameters of your GUI are your choice, but please give some attention to its visual appearance.
  • Ensure that you handle potential errors in our code wherever possible. The specific types of errors possible depend on the nature of your project. However, for example, you may handle errors pertaining to an input file being invalid/not existing, user- inputted values being of the wrong data type or otherwise invalid within your real-world problem, etc.
  • Ensure that your application is crisp, professional, and well-formatted. For example, ensure that you have used spaces appropriately and checked your spelling.
  • Adding comments in your code is encouraged. You may decide how best to comment your code. At minimum, please use a comment at the start of your code to describe its basic functionality. For any functions in your code, write docstrings to describe what these functions do and how they work.
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.