CS2340C_Team45

Conclusions & Reflections


Robert Ives

This project was a valuable experience, with numerous challenges and opportunities for learning. My primary responsibility was designing the user interface (UI) for the app, as well as being the "Team Leader". I was not the only UI designer though, as Bryan was an amazing collaborator in this regard, with his work on the logistics page, navigation bar, and some button designs. Throughout the project, I had to learn new libraries and services, such as Firebase, which presented a steep learning curve being my first time using such tools. There were many bugs to fix along the way, but solving them and helping my team members solve theirs contributed quite well to my de-bugging skills.

One of the main challenges I faced was ensuring the UI was both functional and user-friendly, which led to a good bit of iteration and feedback from the team. While I am not completely satisfied with the final design, I’m proud of what I accomplished. Working in a team of four, compared to larger teams, was another challenge, but even with the added responsibility, we pulled through. Overall, I feel like I was able to make a sizeable contribution to this project.

This project provided a great opportunity to develop my skills, especially in android app development and interacting with databases, and gave me a better understanding of how to work in a team environment. I learned how to collaborate on complex tasks, improve my coding practices, and manage my time in a faster-paced development cycle with pressured deadlines.


Brandon Manville

This project tested my git skills. A few times throughout the project, either I or another team member would end up in a sticky git situation (such as 2 commits behind, 10 ahead), and I had to learn new ways to get out of these situations. Overall, the project allowed me to grow my git skills moderately. Going into this project, I already had an internship under my belt, so I was already familiar with large code bases, (some) industry standard practices, GitHub, etc. Still, this project gave me more insight into why some things are done the way they are. At the internship, I was just plugged into the codebase and never got to develop it from the ground up. This project let me see how much early decisions can affect the future quality of the whole project and how important it is to write maintainable code (even for the little things) as that code may be used in so many places later on. Finally, it taught me the importance of setting up a pipeline for things such as checkstyles or unit tests. In the beginning, we often had checkstyle errors in our code (due to someone forgetting to run it). This led to quite a few "fix checkstyle" commits. Once we set up a pre-commit hook for this, we almost completely eradicated the problem. This really shows how setting up simple pipelines can really improve the quality of the codebase as a whole.

I mainly contributed to the backend logic of the app. I was responsible for a very large portion of the database logic and error checking and handling. I only touched the front-end stuff whenever slight changes were needed to better suit the backend. In the team, I was mainly responsible for the backend logic (as stated), helping with git problems, and trying to ensure the code quality stayed up to par in efficiency, reusability, and readability.


Srikar Satluri

This project gave me many new insights and skills, before this class I had never properly used java or really any much OOP other than what was required in 1331 and 1332. I still feel as if I am lacking a proper understanding and felt as if at times I was cutting corners, for which my team members came in clutch in helping me out and giving me pointers on where I was going wrong. I learned much about how to use git, Android Studio, and firebase. I now have a deeper understanding and appreciation for documentation after seeing how big our project has gotten since the start. Though the sprints were lots of work I can confidently say it was worth the effort.


Bryan Shook

Throughout this project I gained knowledge and new understandings about android studio, firebase, SOLID/GRASPS principles, and design patterns. We tried to incorporate SOLID/GRASPS principles throughout the project which were reinforced with design patterns we implemented such as singleton, strategy, and observer. I personally worked on the collaborative aspect of the project which helped me learn a lot about firebase and database structuring. It was difficult getting used to new technologies, but after the project I feel confident in reading documentation and learning on my own. There were not many guidelines on the sprint outlines that allowed for a lot of creative freedom. This was different from previous classes and I grew accustomed to it quickly. Overall the project helped me learn basic software design principles which will help me in the future.