I started working through the 100 Days of Code course of Udemy last February, and I’m in the home stretch. I’m on the final lessons, which are really just prompts for projects. No hand holding, just a brief description of the goal. I recently finished a tkinter GUI program, the goal of which was to enable adding text watermarks.

I took a few liberties–mainly, I made it possible to layer a png on top of the background. It was a really fun project and quickly grew more complicated than I expected it to. I got some hands on experience with the Single Responsibility Principle, as I started off doing everything in my Layout class.

Eventually, I moved all the stuff that actually involved manipulating the Image objects to an ImageManager class. I feel like I could have gotten even more granular. That’s one thing I would love to get some feedback on. How would a more experienced programmer have architected this program?

Anyway, I guess this preamble is long enough. I’m going to leave a link to the repository here. I would have so much appreciation for anyone who took the time to look at the code, or even clone the repo and see if my instructions for getting it to run on your machine work.

Watermark GUI Repo

  • Hammerheart@programming.devOP
    link
    fedilink
    arrow-up
    7
    ·
    6 months ago

    Thank you SO MUCH. This is exactly the kind of response i wanted, and also thought it would be naive to hope for. Seriously, you’rr awesome.

    And i really appreciate how you even looked for something nice to say too. :)

    • best_username_ever@sh.itjust.works
      link
      fedilink
      arrow-up
      1
      ·
      6 months ago

      Thanks. I like helping for stuff like that.

      Last but not least: when you make a lot of small changes, always do:

      1. Make small fix
      2. Test!
      3. Stage or commit on git

      This way you won’t get lost. And don’t fix everything at once. Make a list of small changes and do that one at a time.

      Also to make development easier:

      • create a virtual environment if you need (maybe hard)
      • use PyCharm, it’s great (easy)