sjbar03's Dev Blog

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.

IC+ interface example

On the left is an example of the IC+ interface I was attempting to replicate.

PillPal GUI,
                        comparison

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.

Development Resources

GitHub Repository

Contact me

  sjbar03@gmail.com

  sjbar03

  stephenbarlett

  stephen.bar.14

  stephenbarlett