Andrew Benson, Vivian Chu, Michelle Huynh,
Cathy Pham, Adrian Portillo, Yingyan Wu
Figma, Trello, Google Suite, Firebase, GitHub
Ionic: Angular, HTML, Sass, Typescript
Seal Spotter is an app for casual beachgoers to report images of tagged mammals they spot during their trip to the beach. Our goal is to help researchers in the Pacific Marine Mammal Center (PMMC) Network learn more about and stay updated with mammals that have been released back into the wilderness.
The Pacific Marine Mammal Center (PMMC) is a rescue center for sea lions and seals, located in sunny Southern California. Seal Spotter will give PMMC a greater ability to track patients from any rehabilitation center and keep tabs on their success after release.
Through haphazard, non-standardized trial and error, the Pacific Marine Mammal Center (PMMC) has gained an immense data set of resighted animals with the help of PMMC volunteers and scientists.
Based on the needs of our sponsor, here are the three main themes we focused on as we worked on this project...
Allow users to easily report tagged seal sightings
Provide users with the necessary information to learn more about sea lions and seals while staying safe
Notify researchers when reports have been submitted by users by making data from reports available to PMMC
In our initial meeting with PMMC, we were introduced to 3 members of the staff that we'd be closely working with for the duration of the project:
Kirsten Donald, Director of Education
Wendy Leeds, Animal Care Coordinator
Dr. Alissa Deming, Vice President of Conservation Medicine and Science
We established an hour-long weekly meeting time during which we reported to PMMC on our progress, answered their questions, and requested more information and resources if needed. Before each meeting, we wrote agendas detailing the deliverables we were to present and the questions we needed answered, leaving space for our sponsors to ask their own questions as well.
They informed us that there was already a version of Seal Spotter on the App Store, made by a team they previously worked with. This version unfortunately was difficult to work with for PMMC's researchers as it required downloading an enormous .zip file each time they wanted to access the reports. The user interface was also unpolished and unprofessional. With these issues in mind, we set about building a new version of Seal Spotter. We received access to the GitHub for the previous app, but found that the lack of communication with the previous team, the poor usability of the first version, and our time constraints made it in our better interests to completely build the new Seal Spotter app from scratch using Ionic and Firebase.
To speed up development for both iOS and Android, we chose to build our app in Ionic as it adapts code to suit both operating systems. We chose Figma as our drafting tool as we made low and high fidelity wireframes to flesh out our ideas and present to our sponsor.
In order to stay within a reasonable scope and deliver a fully functional app for iOS and Android by the end of 20 weeks, we set about outlining Seal Spotter's functional and nonfunctional requirements and the user stories that accompany them.
These user stories framed the specific tasks we planned to carry out in order to meet all of these requirements. These tasks were split into two sections: the majority of the functions of Seal Spotter in the first 10 weeks and the report forms and database view in the last 10 weeks.
Landing Page
see what main pages are available so that I know what I am able to do in the app.
Safety Information
be warned about important safety information before using the app so that I do not violate any laws when interacting with a seal.
be able to access a key safety information page in the seal spotter app so that I can recall how to safely take a picture of a seal.
Reporting
be able to see emergency contact information before starting my report so that I can contact PMMC about an injured animal.
share pictures of seals I’ve spotted so that I can complete a report.
input necessary information about seals I’ve spotted so that I can complete a report.
see an overview of my report before submitting it so that I can confirm and check my responses.
edit my report before submitting so that I can ensure I am providing the accurate information.
Information
be able to view seal related information on the different types of seals so that I can identify them better and submit a more accurate report.
be able to learn more about PMMC’s impact so that I can understand the importance of my contributions.
Contact
get contact information based on my location to ensure that I report the injured seal to the correct organization.
Data
the data obtained from seal reports to contain important fields such as the photos, and type of seal so that I have enough information to analyze tag information.
to be able to access reported information from seal sightings in an intuitive tabular format on an external website so that I do not need to run slow software.
to be able to download retrieved data from seal reports in an excel format so that the data better integrates with our existing record system.
Alerts
to be alerted of a submitted report so that I can stay updated on tagged seal sightings.
Reporting
save my report draft so that I can submit a more complete and accurate version later.
view and modify past reports so that I can ensure all uploaded information is accurate.
Availability
Users should be able to access the app at all times whether they’re connected through Wi-Fi or cellular data.
Data Integrity
User data should be collected for research purposes only; the data collected will be data the user consents to providing.
The system should provide users with a way to view the app's privacy policy.
Efficiency
Users should be able to access the app quickly and efficiently to maximize their experience on the app creating reports and viewing information without major lag time.
Portability
The app should be accessible on both iOS and Android.
The interface should be able to adjust to screen sizes.
Security
Data sent in through reports will be accessible only to PMMC researchers.
Usability
The interface should be easy to use and intuitive for both general users and marine researchers.
The backend system should be simple for marine researchers to retrieve information and data from submitted reports.
Agile was a new framework that our team had to adapt to working with. We maintained a 2-week sprint structure and tracked our progress using Trello, with the lists Product Backlog, Sprint Planning, Current Sprint, In Progress, and Done acting as organizers for the tasks we had to fulfill.
We created tasks framed by user stories and assigned each task a value based on the amount of time and effort we predicted it would take to complete. These tasks were organized into the Product Backlog and moved to Current Sprint in sections at the start of each sprint.
We assigned specific team members to each task before moving them to In Progress in order to maintain accountability. Some of our members' strengths laid more in design while others' were in development.
We met at least twice a week as a full team to define weekly tasks and get on the same page as the sponsors, getting user feedback from them before moving on with designs and development. As we got further into development, we began splitting tasks between teams more often and working concurrently, translating approved wireframes into code while creating new wireframes for other functions at the same time. These smaller teams would find time amongst themselves to work on their assigned tasks together.
After speaking with our sponsors and defining our requirements, we created a site map to brainstorm Seal Spotter's pages. This process helped us plan out Seal Spotter's pages and features as well as visualize the relationships between pages. This step was essential before proceeding on to creating our next artifact, the sketches.
Sketches
With our requirements solidified and sitemap established, we created initial sketches of the Seal Spotter application. Using our requirements document and our user stories, we drafted low-fidelity wireframes through paper, pen, and Figma. We created frames for each page and discussed our final thoughts and decisions with the sponsors before translating them into a low-fidelity wireframe.
Low Fidelity Wireframes
We consolidated our sketches into low-fidelity wireframes. This served as our skeleton for our high-fidelity prototype. During this stage, we solidified our design and added the interactions between pages and components. Once again, we presented this to the sponsors to ensure that we met their expectations before moving on to creating our high-fidelity prototype.
We created a style guide, planning out the components of the color palette, font, buttons, and text inputs, while keeping in mind that we wanted PMMC's branding to be incorporated and accessible design. The style guide is an accumulation of all of our ideas together based on references from PMMC’s website. Additionally, we drew inspiration from apps that our sponsors noted for us to take a look at.
Based on the vision for the Seal Spotter app, we worked on creating a new logo that matched the color palette and style of our designs. We iterated upon a few different ideas and came up with four main logos.
Final Logos
After speaking with our sponsors, they noted that they enjoyed the logo shown in the figure above since the seal was highlighted as the centerpiece. These are the final logos we used in Seal Spotter.
Between each design iteration, we would always check in with our sponsors and receive feedback on our design to ensure that they were able to have input in our design process. Often, we would create multiple frames so that they could choose which design they preferred most. Otherwise, we would present our designs during our weekly meetings and discuss with the sponsors whether they had any thoughts on our design, and made sure that the sponsors were on board with them before proceeding with development.
Usability Testing
After consolidating the majority of our design, we performed user testing sessions using Maze and simultaneously had the participant perform a think-aloud as they walked through our prototype.
There were a few usability concerns within our prototype that were brought to our attention:
Subjects found the wording of the “Animal Emergency Information” button unclear; they were unsure of what tapping on this button would entail.
Our Change: We renamed the button to “Animal Rescue Information” to better reflect the button’s purpose.
A participant found the photo upload page confusing. The page was lacking a progress bar and question label, appearing inconsistent with the following report pages. This made it seem like it had less importance than the proceeding questions.
Our Change: We updated the page's design to include the same progress bar and question label as the rest of the report pages. This way, it would be more apparent that the upload page was part of the report and essential to the reporting process.
A/B Testing
We performed A/B testing for the cancel button located at the top of our "Report a Sighting" pages. We wanted to know whether placing the button would be more intuitive for the users if it were to be placed on either the left side or the right. We sent out a survey asking users which placement they preferred best.
Results
The results showed that users found that having the close button on the left was the most intuitive for them. Thus, in our design, we finalized this aspect by moving this button to the left side of the page header.
Development
Before developing our application, we ran by our high-fidelity designs with our sponsors to get their insight on what should be kept or added to our current design. Once we received their approval of the design, we moved on to developing the Seal Spotter App using Ionic/Angular.
Our development process revolved around the user stories we established earlier on in the project. We addressed a select few user stories in each sprint and developed our app based on these selected user stories. At the end of the sprint, we would present what we developed to our sponsors.
Because our sponsors were non-technical, they did not have much input during our development process. Thus, if we ran into problems, we would have to refer to online resources in order to get development tasks done on time. In order to streamline our process, we delegated development tasks to each member of the team to ensure that someone was responsible for getting a feature done. We would discuss bugs or development roadblocks with each other and had Quality Assurance checks. Doing so helped alleviate any challenges that we came across during the development phases.
Upon opening Seal Spotter, read the safety pop-up to learn how to safely keep your distance from nearby seals. After closing the pop-up, access the homepage which includes navigation to main features and information about PMMC.
Learn more about the different seals commonly found on the Southern California coast through the seal information tab! Each card includes an image of the seal, the seal's classification, and various information about that species.
Keep you and nearby seals safe by reviewing the safety guidelines! Access this information by navigating to the safety information tab.
Spotted a tagged seal on the beach? Report its location and upload an image of the seal through the reporting feature! This report will also ask you to identify the seal's species, tag location, and tag colors to give the most accurate data possible to reporters.
If a seal appears to be injured, don't report it through the form. Instead - contact your closest rescue center through the Animal Rescue Information feature!
PMMC researchers can filter through and sort the database based on various properties. Doing so will allow them to more efficiently analyze report data.
To easily access data from specific timeframes, PMMC researchers can select dates to download data from.
Understanding an unfamiliar framework - both Agile and Ionic - was a difficult challenge.
Agile - As we advanced through the course we adapted to the agile framework and gained more experience managing our project under this framework. With advice from our instructor, we were able to adjust the way we managed our project and grew used to the framework.
Ionic - We grew more familiar with this framework as we worked with it throughout the two quarters. Our learning was also supplemented by the ionic documentation, which we referred to constantly during the development process.
Non-technical Sponsors
Our sponsors were non-technical. This led to:
Gaps in terminology and concepts
Lack of feedback due to sponsor's limited understanding of development process
Lack of technical guidance
Our Solutions:
We had consistent communication with our sponsors, frequently asking them questions and giving updates through meetings and email.
We created user stories based on their verbal expectations. We improved the way we presented our designs to ensure there was clarity in what we were communicating.
We selected a familiar framework we had experience in to alleviate challenges; we also learned to be resourceful and pooled knowledge from documentation and tutorials.
Developer account access Issues:
Since PMMC did not have any records of their developer accounts for android or apple,
Google Play Store policy breach
Due to a change in Google Play Store policy that PMMC neglected to accept, the original Seal Spotter account was terminated from the Google Play Store, and PMMC was unable to establish any future developer accounts for android development.
However, PMMC was eventually able to establish an account using an alternative education email which was not affected by the Google Play Store ban.
In order to support the long term maintenance of our application, we constructed a handful of documents that allow PMMC researchers as well as potential future developers that interact with our system. These artifacts include:
A file that contains various wireframes, an interactive prototype, app icons and branding, and a style guide for future development on the application
Provided in the form of a link that the sponsor or future developers can access at any time
The actual source code of Seal Spotter itself (developed using ionic with capacitor)
The source code contains files for both iOS and android platforms as well as several external libraries such as the google firestore database and google cloud location services.
A file that contains instructions on how to clone the project from GitHub, and install the necessary dependencies.
Provided in the form of a PDF file
Multiple UML sequence and class diagrams that describe the underlying classes and interactions between the ionic frontend and firebase
Provided in the form of a PDF file as well as links to the actual documents themselves on online diagraming tool: LucidChart
A document which lists the accounts and services necessary for Seal Spotter's operation, such as firebase credentials, google cloud services and others.
Provided in the form of a PDF in the project handoff zip file.
A tutorial document intended to provide PMMC researchers the knowledge on how to access the report database, sort, add and remove data and manage access to the database viewer.
Provided in the form of a PDF file with instructions and several images for reference.
A pdf slides deck that explain various potential ethical concerns revolving around the app, as well as several solutions to these ethical concerns.
Provided in the form of a PDF slides deck.