Balthazars Magical House for Witches and Wizards
The Purpose of this Program
I made this program as the main component of a minor project in my first year of university. It was designed to be used on a raspberry
pi with command line executions to encrypt and decrypt password information and upload files to a drop box folder. Seeing the opertunity
to make anything, I decided to create something I would use in my own hobbies, specifically Dungeons and Dragons (D&D).
Balthazar's Magical Hosue for Witches and Wizards is the name of a store I created in the game of D&D I was running. Players could go
there to purchase magical items for their adventures. The store functioned by generating a random selection of items each day for the
players to purchase.
The Developement Choices
The first choice I made with this project was to use Python. I choose Python as, at the time, I was most familure with it and had just
finished studying the Python library TKinter and wanted to keep using it to make the GUI for the program. I have since learnt to use
languages like C# or integrating javascript with HTML which I intend to use in a recreation of this project I will put on this website.
While study the unit I made this program for, we used GPG as an encryption decryption method and so I used the same approach for the
password protection of this program. The GPG encryption created an encrypted file seperate to the txt file I used to store the user
information, so when encrypted, the normal txt file would then be deleted. The same went for decryption just the other way around. I
know that this is a barely acceptable form of encryption and decryption but for this project it was acceptable given the lack of online
connection to the program. I found the dropbox uploader code online and added it as the final piece of technology required for the assessment.
The GitHub folder for this program contains a subfolder titled rasp_pi_version
which contains the raspberry pi runable version which uses the above mentioned encryption and dropbox while the main version can be run
without a raspberry pi leavign the files decrypted and with no dropbox connection.
I chose to use exception handling rather than if statements and the like for a reason that I have honestly forgotten as I made this program
around June of 2019. In the recreation of this program made with JavaScript, I will find a better way of handling these sections of code.
The Design Choices
The GUI design for the program is far fromn special as I went for simplicity and usability over fancy graphics. That being said, I wish I had of had the time to make it more visually appealing as I intend to do with the JavaScript HTML version I will be making. As far as layout goes, I wante to have each rarity of item sperated into sections roughly following the accending order of rarity. I then created an additional section for the buttons that manipulated the content.