Landon Beach
Springville, UT
Computer Science Major
Creativity Track
I used part of my Capstone project to work with two local companies to develop software applications for them. The first company asked us to create an application that took data after a Permit had been run through an Optical Character Reader (OCR). Then the application needed to find and extract information and output it into various fields. This screenshot is of an online repository that we used that contained and managed our code with version control so that we could collaborate and work on the code at the same time. These are only SOME of the files within the repository.
The second company asked us to create a simple website that contained static information. For this, we had each team create their own website and then we each presented them to the company. Then the company got to decide which designs they like more (or less), and then do whatever they wanted with them. So if the company liked some ideas of one website and some ideas of another website, then they could combine them together.
Since I am studying Computer Science, I wanted to do a project that was related to that field. It took me a while to figure out what to do. As a young Freshman or Sophomore, I was still learning and I was limited in my abilities. So I decided to use the Senior Capstone project as part of my EDGE project. But rather than just being in the class, I decided to implement ideas and concepts that I had learned from my CSIS classes. I also decided that this would be the perfect time to practice good Software Engineering techniques and practices, while also helping out the local community.
At first it sounded pretty straightforward and easy, but it became increasingly difficult. During the project, we had teams looking into additional algorithms and machine learning to efficiently extract the information with a high probability that the information would be correct. The initial design of the application took a while to figure out because we wanted to get it right the first time. There was also a slight delay since some members of the group had to learn “Regular Expressions”, which is basically a language used to find and match patterns in text. An example of a Regular Expression I wrote is on line 20 in the image below. It matches multiple formats of a date. In the end, we were able to finish their application.
This project was able to benefit not only me, but the two companies involved and the other members of the group. Both of the companies received their projects for free. Many people in the group ended up learning new and interesting topics and material. They got to learn more about spell checkers, machine learning, and regular expressions.
It helped me accomplish good Software Engineering techniques and practices for the Software Development Life Cycle. It also taught me how to effectively work with a large team of Software Developers and it forced me to come up with creative ways to solve complex problems. I was able to learn important skills that I will be able to carry on into my future career. Not only has this project benefitted me in the present, it be could be something that’ll benefit me in the future. This project is also something that I could reimplement in multiple programming languages as a challenge in the future to help fine tune my programming abilities within those languages.
If I could go back and redo this project, I would have programmed it in a different programming language other than Java. Better programming languages include (but aren’t limited to) Perl because of its native use of Regular expressions, JavaScript because of its native use of JSON, and Python because of the high-level functionality.