A challenge that I faced when making this project? Where do I even begin! To be honest, most of the challenges that I came across were just one-off issues that ended up taking me hours to figure out. Usually, the solution to these were so simple. Something like a simple syntax error, incorrect method calls or variables calls, or something being referenced in the wrong place. Usually with coding a project I have these really ambitious ideas that end up taking me on a journey of learning different functionalities of PHP totally separate from the curriculum. Whatever ideas I have I almost always try to make into a reality no matter what. There are often times I have to outsource to researching ways to do specific things to make my vision come true. For example, the event listener for the table rows! Full honesty, I forgot a lot about how event listeners work in JS and my notes from Client-Side Web Development didn’t have a whole lot on it so I researched it. I found a source that kickstarted my memory of how event listeners work in JS and the integration potential. This brings me to my first big issue I had: clicking a row of one table to create or update the information on another table. Having a layout like this was going to require a lot of moving parts, especially because of the two separate set of input fields for both storeTransaction and Item. I found that source that had a way to listen for a click on a row, which it would then return the value of the first cell initially. Having this outline of understanding opened a whole new world of possibilities with table interactivity for me. I have used that code as a basic outline for table row listeners and I have modified it to do various things on clicking. I have also modified it to be a cell listener. I think the hardest part was handling all the exceptions for if and when the item table should display! Like, it shouldn’t display if there are no items in the transaction and it should remain open when any of the item buttons are clicked.

Another problem I faced was how different items would mathematically change the appropriate values of a transaction. I solved this by creating a function that will update the transaction based on all the item information in it, and that is called on first arrival and whenever any of the items are changed. I also made sure that when updating an item or a transaction the appropriate fields within themselves would update as well, hence why some are read only. My personal takeaway from this experience is, of course, all the different coding techniques and language syntax I learned, but also to just break down a project into segments, like the weeks for this project, and plan out each segment’s structure. Big projects are hard to keep straight in your head so just get it out of your head and into a model of some kind.