Personal tools
You are here: Home > CS 342 Blog Entries > Folder with blog entries for Cooper Walbrun > Blog Entry for Week Ending March 17

Blog Entry for Week Ending March 17

by Walbrun, Cooper last modified Mar 17, 2017 03:15 PM

This week, I shifted gears and focused on my Individual Project (the Sampler), as opposed to my Plone Gamification add-on group project. However, that is not to say I didn't spend any time on the group project.

Over the past 6 days, I have actually finished my project's code and design, and I have thoroughly tested it for anomalies. I have written unit tests comparing the GUI's output to the core classes' outputs, and have them all passing smoothly. As you'll read about below, the process of completing the main implementation of my addition to the source was not an easy one, and I have indeed dedicated a huge chunk of my time to this project over the last 10 days. Needless to say, it feels good to be done.

Regarding my group project, what I have contributed has been establishing the formal documentation of an existing error in the add-on, to which I have assigned myself and Levi (using GitHub's Issue tracker). We finally made the necessary changes for the source to be included in Plone as a package given its new name and source directory structure, and Cory, Levi, and I all worked together to learn where particular things are handled by the add-on's source code. After our discussions, we have concluded exactly which files we will need to modify in order for each of us to do our respective parts in this project. I spent a long time on Monday night talking to Levi, trying to flesh out exactly what the functional specifications of our project would be so we could correctly diagram its logic flow, and the process helped both of us attain a better grasp on the semantics of our add-on.

It has been a trying task creating this seemingly simple interface for my individual project's pre-existing code, which in itself was rather simple (being less than 500 lines altogether). I have realized that the library I chose to build and manipulate my GUI (PyQt5) has very few walkthroughs/guides on the internet for setting up a GUI, and the syntax for the Qt framework has changed significantly between PyQt4 and PyQt5, thus rendering any existing help on the internet irrelevant to my situation. Naturally, this looming dilemma spawned a number of other specific difficulties (about which I will be reporting more of in the official project report). Luckily, I have kept track of them in an "obstacle log", which I described in last week's blog entry.

Anyways, to get around this versional challenge, I had to do extensive research on PyQt5's documentation on particular methods, just to be able to determine how they should be used in order to contrive my desired result. As I said, there were surprisingly few examples relevant to what I was trying to do (linking a GUI I designed to existing source code), so my development amounted to a lot of trial-and-error. Thankfully, the further I got in the project, the better I understood PyQt5, and now I can comfortably say that I can make a GUI for any source code, so long as the methods are clearly defined. In the end, my project did not turn out to be particularly lengthy code-wise, but conceptually it was a nightmare to conceive.

The coming week is spring break at the UW Oshkosh campus, although I will remain focused on my classwork. I intend to write up my official account of the individual project, which is a paper, and I also want to have at least one discussion with my team members about what they've been up to. Hopefully, we can start hatching a plan for how we will go about implementing our new features in the add-on as far as class organization, our group's workflow through GitHub, and so forth.

by Walbrun, Cooper last modified Mar 17, 2017 03:15 PM
CS emphasis accredited by

ABET logo

Contact Us

Computer Science Department
UW Oshkosh
800 Algoma Blvd.
Oshkosh, WI 54901

Phone: (920) 424-2068
Fax: (920) 424-0045
Building: Halsey Science Hall

Rooms: 229 (general office), 218 (George Thomas, chair)

Email: Send mail to chair at