I gained experience with software design and engineering in a 10 week-long team project to build a fully-functional Android app utilizing agile methodology. My team of 4 met with a project manager bi-weekly to review our project iterations and set upcoming goals. Our PM also acted as our “customer” to help us identify user requirements and provide feedback. The project was built using predominately Java in Android Studio, using JIRA for requirements tracking and GitHub for source control.
The beginning stages of our projects entailed outlining user requirements and scaling the scope of our project to fit feasibly within our timeline. Our initial app proposal was for an app to track multiple types of entertainment including books, movies, and TV shows. Because our goal was to have a polished, fully-functional app by the deadline, we scaled down to focus solely on movie searching and logging.
I worked on early stage wireframing sketches with another team member who contributed color scheme and layout ideas. Together we implemented the basic interface of the app in Android Studio. I focused on the functionality of the movie pages – adding features for “favoriting” and giving ratings and comments for logged movie entries.
My team used the TMDb external API to allow the user to search for movies. The title, movie poster, and date released were pulled from the API and displayed in the app to preview a movie before adding it to the watched list.
Beyond the expected app debugging, there were challenges in coordinating with a busy team to delegate workload and communicate effectively. Ultimately, we gained a lot of experience in utilizing the project tools and guidance of our PM to establish a successful workflow and complete our app.
Our future ideas for the app included added the other media tracking, for books and television shows, as well as considering a social feature, in which users could link a social account such as Facebook and follow friends to share what they have been watching or reading. This would have also entailed reevaluating user requirements and redesigning the interface.