Second semester junior year at UW-Madison, I was enrolled in CS 506: Software Engineering. This course focused on software development tactics such as agile development, version control, roles in a team, etc. The course was unique in it’s focus on hand-on experience. With that, as the beginning of the semester, each student had to pitch a project idea. The professor and TAs then boiled the projects down to around 12 total. My project was chosen to move forward with. Other students then self assigned to teams that they desired to join, and development began.
PiggyBank Overview
Let’s assume you go to a store and buy something for $8.50 and you are using cash. You hand the cashier a $10 dollar bill which will give you $1.50 back. What happens with that coin change usually? Put it in your pocket and eventually lose it? Put it in your car cup holder and forget about it? For those of you who actually keep the change throughout many purchases, you know that change can add up to quite a lot on top of the dollar bills that are received. PiggyBank will allow you to quickly transact this change from the cashier directly to the virtual “piggy bank” where you can hold it without losing it like with physical coins. This will be accomplished with a mobile iOS application which will have 2 modes: merchant, customer.
The six person team was split up into frontend and backend. I took on the project manager roll, while also developing the frontend application, and bringing the MVC together working with the backend team. For the frontend, we used a development tool called Expo which allowed us to spin up a local React Native application, which was key to developing an iOS application while using Windows machines. The backend was a Java Spring architecture which utilized authentication as well for security. For the database, we utilized Firebase which was the best option for it’s simplicity and quick integration. Beyond development, we learned plenty about the inner workings of an agile team, such as documentation for requirements and specification, design planning, code reviews, etc.
At the end of the semester, PiggyBank was demoed to the class. The application was runnable locally, and with the use of fake monetary balance as we realized early on in the project that adding fintech was out of the scope of the semester. This project aided tremendously looking forward into the working world of software development, and it kickstarted my experience in an agile developer environment.