Throughout this project, I had the opportunity to leave a legacy in my high school as well as learn a lot about myself and others. I first had to create some sort of structure in my life that would allow me to efficiently work through this project.
To accomplish this project in a manner that would allow me to hit as many design criteria as possible, I had to time manage myself in a very specific way. Essentially my structure every day was to walk into the STEM Capstone class and try to understand where the project was currently sitting. Then I would go home and do the actual work on the project, the part of this whole process that didn’t require me to talk to anyone else. This would allow me to ensure that my project was staying on schedule and hitting the correct criteria, while also being as efficient as possible. For example, at the beginning of the year, I mostly spent my class time talking with Mrs.Flores about the problem that I was truly solving with my new website, and we decided to shift my entire project towards a more reactive and proactive class registration methodology as opposed to just improving a Google Document from Ramtime. Not only did this shift my mindset about how big my project could be, but it allowed me to then go home and restructure my portfolio and presentation. That way my new driving questions became centered around a proactive change to class registration and my project became much bigger than it originally was. This would then allow me to work in the following weeks with ideas of how to start the coding work for my project.
In addition to preparing myself every day using a structured schedule, I also had to problem-solve and work with others to ensure that my design was truly meeting the needs of the community. For example, after I built the original design of the website, which consisted of the 4 academies and a limited amount of instructions on the front page, I found through pilot testing that many people wanted the ability to add and remove classes from my website. Instead of disagreeing with these testers and arguing that they needed to be more precise when entering classes, I listened and revised my website. Through some mentorship from Zach and Luke, I then allowed the entire school to add and remove classes as needed which overall got me better results from my main testing. In addition to listening to feedback from others, there were many problems that I needed to solve.
While I did have two different mentors helping assist me through the process of completing this project, I still ran into many issues that I needed to figure out how to fix. The biggest challenge that I can remember coming across was trying to figure out how to restructure Luke’s original code to work with a new Google Sheet database. This method would allow for any teacher to update my website, even after I leave at the end of this year. The main issue that I was having was trying to get the entire Google Sheet to parse into a JSON file that the website could read. I was trying to keep the class input formatted similarly so I could re-use Luke’s original search bar and algorithm. To solve this problem, I conducted a lot of research about PHP variables and how objects, strings, and integers are different from one another. Then I performed a lot of trial and error when coding and I printed lots of different variables on the index page of the website. This usually would allow me to figure out what variables contained certain information. Eventually, after about a week of doing this trial and error process, I figured out how to put the whole Google Sheet into a JSON file. Overall, my main method of problem-solving throughout this project was to break down issues into smaller pieces and use lots of trial and error to hopefully figure out what I did wrong.
Furthermore, with this project, I had to further my knowledge about the programming languages that I knew. As APCSP and APCSA were classes that only taught Java and Python, PHP was a completely new language for me. In this project, I not only had to learn how to code with PHP, but I also had to learn to read and understand what code Luke had previously completed on the website as well as the logic behind what he was doing so that I could further his original concept. Looking back, I’m extremely proud of how much knowledge I’ve come to know in these past 8 months. It is truly remarkable to see the amount of progress I’ve made from Luke’s original site to the site that I currently hold. It gives me hope in the future that I can solve any problem in the world, so long as I put my full focus into it.