PillPal Development Blog
Overview
PillPal is an interactive study tool for pharmacy students- specifically for my girlfriend, Pearl. I have carefully designed it to include the features that she wants/needs to review. She is a pharmacy intern at Walgreens, so the design of the interface is directly influenced by the IC+ system used at WG.
The tool uses real data sourced from the OpenFDA API. Currently, the program only uses a small percentage of what the API provides, information wise. This will allow the program to expand as Pearl's needs grow more complex.
Design Challenges
When I dove into this project, my Python was rusty. I hadn't written a Python program in over a year, but I wanted to refresh myself since Python has become an industry standard. So, the first challenge was Python syntax. I had just completed a semester of OCaml, and written my first project in C++ (TerminalSnake), so a dynamically typed language was a tricky adjustment.
My second challenge was the tkinter GUI library. I have experience with several GUI libraries (Java's Swing, OCaml's Bogue), so the documentation was fairly easy to digest. Once I got going, developing a GUI with OOP principles was a welcome change. The OCaml GUI library I used in CamelCapital (Bogue) left much to be desired.
The List Table Widget
My favorite part of the GUI for this program is the custom ListTable widget I designed to facilitate displaying a multi-columned tkinter listbox.
On the left is an example of the IC+ interface I was attempting to replicate.
I group a listbox into a tkinter frame for each column in the table, then I link the scrollbars and selections. Putting it all behind an abstraction barrier, I have a custom table I can use in other parts of the application and even other programs.