Building the Pet Adopt Mobile Application for an Animal Association
This capstone project was developed to support an animal association by providing a mobile application that connects pets in need of adoption with potential adopters. Many animal shelters and associations currently rely on social media or manual processes to manage pet listings, adoption requests, and events, which can be inefficient, difficult to track, and time-consuming for staff and volunteers. The association needed a simple, secure, and easy-to-use mobile solution that centralizes adoption information and improves communication with pet lovers without disrupting existing workflows.
To meet the needs of the animal association and end users, I reviewed typical adoption workflows to identify where software could streamline daily processes. After this initial analysis phase, it became clear that there was an opportunity to reduce administrative effort by replacing fragmented communication channels with a single mobile platform that allows users to browse pets, submit adoption requests, view events, and communicate with the association and the association’s member.
During early discussions and design planning, the project scope was defined to focus on core adoption functionality first, followed by optional enhancements such as real-time chat, advanced filtering, and notifications. Based on this scope and stakeholder needs, the functional and non-functional requirements for the Pet Adopt Mobile Application were identified and are listed below.
Functional Requirements:
- Users can create an account and log in using supported authentication methods, including email and password or other supported providers.
- Users can log out of the application and securely end their session.
- Users can view and update their profile information, including name, email address, phone number, and profile photo.
- The system restricts access to certain features (posting pets, adoption requests, and chat) to authenticated users.
- Users can browse a list of pets available for adoption, displaying summary information such as pet name, species, age, and thumbnail image.
- Users can view detailed pet profiles, including photos, age, breed, description, vaccination status (if available), and location.
- Users can filter pets by species, age range, gender, and category.
- Users can save pets to a favorites list and remove pets from that list, with the favorites list displaying saved pet profiles.
- Administrators can create new pet listings by entering pet details such as name, species, age, breed, description, location, and uploading images.
- Administrators can delete pet listings from the system.
- Pet listings can be marked as adopted or unavailable, and their status will be displayed to users.
- The system supports uploading, storing, and displaying pet images within pet profiles.
- Users can submit an adoption request for a selected pet, including entering contact information and optional notes.
- Users can view the status of their adoption requests, including pending, approved, or rejected.
- Users can view a list of upcoming animal association events, displaying event title, date, time, and location.
- Users can view detailed event information, including description, schedule, and event images (if available).
- Users can send messages to the animal association or pet owners through a chat interface.
- Users can receive messages in real time or near real time.
- The system displays message history within a chat conversation, including sender name and message content.
- The system displays timestamps for each message.
Non-Functional Requirements:
- Simple: The application provides a modern, simple, and easy-to-use user interface with clear navigation.
- Secure: User data is protected using secure authentication and access control, and administrative features are restricted to authorized users only.
- Scalable: The system is designed to support future growth in users, pet listings, and adoption requests without performance degradation.
- Responsive: The application is optimized for mobile devices and adapts to different screen sizes using React Native with Expo.
- Reliable: The system provides stable performance and handles errors gracefully with user-friendly messages.
- Maintainable: The codebase is organized to support future feature extensions and long-term maintenance.
- Available: The application is available for use most of the time, excluding planned maintenance periods.
- Compatible: The system is compatible with Android devices, with optional iOS support through Expo.
- Privacy-Focused: The system stores only necessary user data to support application functionality.
- Efficient: The application loads pet listings and details within an acceptable response time.