An Android app to enhance the San Diego Zoo visitor experience by creating custom exhibit plans and optimizing routes for minimal walking distance.

Role

Software Developer

Timeline
March 2022

Technologies

  • Java
  • Android

Tools

  • Git
  • GitHub
  • Android Studio
  • JUnit
  • Espresso
  • Robolectric
  • Zenhub
  • Github Actions CI

Background

Zooseeker is an Android application designed to improve the San Diego Zoo visitor experience through enhanced navigation and exhibit planning. The project addressed usability issues with the official zoo app, where visitors found navigation difficult and relied on paper maps. I worked as part of a development team, focusing on route optimization algorithms, user interface design, and comprehensive testing implementation.

Solution

Zooseeker enables users to create custom exhibit plans and calculates optimal routes to minimize walking distance between selected attractions. The application automatically recalculates paths when users modify their plans, providing real-time route updates. I implemented pathfinding algorithms to determine shortest routes and developed an intuitive interface for exhibit selection and plan management. The app provides turn-by-turn navigation guidance to help visitors efficiently explore the zoo based on their preferences.

Process

I followed an Agile development methodology, creating user stories and Behavior-Driven Development scenarios to define feature requirements. I applied object-oriented design principles and the MVC architectural pattern to structure the codebase for maintainability. I developed a comprehensive testing suite using JUnit for unit tests, Robolectric for integration tests, and Espresso for UI automation. I configured GitHub Actions for continuous integration to automatically run tests on code commits. Throughout development, I used ZenHub and GitHub Issues to manage the project backlog and track progress.

Final Product

Zooseeker final product

Impact

The application successfully improves the zoo visitor experience through optimized route planning, helping users efficiently navigate exhibits while minimizing walking distance. By implementing a comprehensive automated testing pipeline covering unit, integration, and UI test scenarios, the project ensures high code quality and reliability through continuous integration practices. This work effectively demonstrates the application of Agile methodologies and modern Android development practices, showcasing how structured development processes contribute to successful project outcomes.

Reflection

This project provided valuable experience in Agile software development practices and collaborative team workflows. I improved my skills in Android testing frameworks and learned to structure applications using established design patterns. Working with pathfinding algorithms expanded my understanding of algorithm implementation in mobile applications. If I continued this work, I would focus on optimizing route calculation performance for larger datasets and enhancing the user interface based on visitor feedback.