-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Playpal v2 must have two apps Playpal & Playpal Services. The Playpal app will be used by dog owners to connect with other dog owners and service providers. The Playpal Services should be used by dog service providers to connect with dog owners.
As a register user I should be able to sign in with an email and password, but also use an external account like google.
As a user I should be able to register to playpal by providing:
- First name
- Last Name
- Mobile Number
- Password
- Short Bio
- One Profile photo
- Gender
- DOB
- Descriptors (interest) Additionally, as a user, I should have the option to be able to register using a google account and skip some of the registration processes.
As a dog owner, I should be able to create a profile for my dog. The dog profile should have the following.
- Dog name
- Breed
- Sex
- Weight
- Short Bio
- More Descriptors (energy levels, etc)
As a dog owner, I should be able to swipe (right) like or dislike (left) to select what dogs I want my dog to go to on a dog playdate.
As a dog owner, I should be able to filter dogs by the dog descriptors and owner descriptors. Dog descriptors are as age, breed, sex, weight, sex. Dow owner descriptors are gender and interest.
As a dog owner, I should be able to double-click a dog card to flip the card to see a photo of the dog owner with information about the dog owner, such as bio and descriptors. Additionally, I should be able to click the card to expand the card to reveal more information about the dog and its owner that could not fit in the original card.
As a dog owner, I should only be able to message users who own dogs that I liked and who liked my dog.
As a user, I should be able to become a dog service provider (dog walker/dog sitter) by downloading the Playpal Service App.
As a dog owner, I should be able to see dog walkers near me and request their services. I should be able to see the dog walkers ratings, reviews, and charging fee.
As a dog walker, I should have the choice of what dog walks I want to accept from a list of walk requests.
As a dog owner, I should be able to see the location of the dog walker when they are walking my dog in a map inside the Playpal app. Additionally, I should be able to see the walking path on a map inside the Playpal app.
Dog walkers and dog owners should be able to message each other during the dog walk.
As a dog owner, I should be able to see dog sitters near me and request their services. I should be able to see the dog sitters ratings, reviews, and charging fee.
Dog sitters and dog owners should be able to message each other during the period of the sitting.
As a service provider after my dog walk or dog sitting I should be able to review the interaction I had with the dog owner and the dog.
As a dog owner after the dog walk or dog sitting I should be able to review the interaction I had with the service.
The review consists of two parts a five-star rating system and a textual interaction experience review.
This documentation's purpose is to present a structured and concise overview of Playpal, an Android-based mobile application that allows users(dog owners) to connect with each other. It will address the software components, requirements, features, and implementation of the application. This document is intended to aid both developers and users in better understanding Playpal.
Playpal is designed to provide users with a convenient method of connecting and communicating with each other in order to arrange playdates for their dogs. More specifically, it is intended to provide dogs with new experiences, and to maintain or improve their social behavior, health, and happiness. This is done by providing users with a local selection of dog profiles that they can approve or skip. The information included in each profile includes the respective dog’s temperament, likes, dislikes, breed, age, and photos. This profile “matchmaking” enables users to find and select dogs they consider to be most compatible with their own dog. If any two users happen to approve each other’s dogs, they are matched and are able to communicate with each other via in-app messaging.
2.1.1 The Client
The client will look and function similarly to the popular dating app Tinder. There will be a login, registration, matchmaking(home), user profile, and messenger page. A navigation bar that contains 3 buttons, each of which will link to and identify another page in the application, will be located at the top of the screen. Users will be able to log in or register when they open the app. New users can sign up and have their profile data stored in the application's database. Once logged in, the user will be redirected to the matchmaking page where they are shown a selection of local user profiles from which they can approve or skip. The user will be able to traverse between the matchmaking, user profile, and messenger pages of the app via the navigation bar. On the user profile page, users can edit their profile and on the messaging page, users can engage with each other while also having a record of their matches and the conversations between them.
2.1.2 Firebase Backend
Firebase is a Backend-as-a-Service (BaaS) app development platform that provides a variety of hosted backend services. Essential to this project are the following capabilities of Firebase: Cloud Firestore, authentication, and cloud storage. An important note about Firebase’s Cloud Firestore feature is that due to it being a cloud-hosted NoSQL database, stored data about users is automatically synchronized in real-time to all connected devices. We do not need a dedicated server since Firebase and its cloud functionality will serve that purpose for us. When a user selects or ignores a profile, edits their profile, or messages one of their matches, the database will be updated and this info will sync across all devices using the application.
All dog owners are the target audience of this application. Any dog can benefit from having a playdate with another dog. The dogs will be better socialized with each playdate and become familiar with and friendlier around new people and other dogs.
ID: FR1 -- Realtime Database for Profiles
- Description : The real-time database capability of Firebase will provide the ability to store user profile data and keep track of which users any particular user has approved and skipped. Each user will also have a unique ID.
- Dependency : N/A
ID: FR2 -- User Registration
- Description : A new user can register via a form and create a profile for their dog by providing the following information: a descriptive bio, photos, weight, age, sex, breed, and energy level. Once the registration is complete the user profile data is pushed to the database.
- Dependency : FR1
ID : FR3 -- User Authentication (Login)
- Description : An existing user can log in via their username and password, or via Gmail authentication. The login credentials are matched against the database to determine the correctness and to separate user accounts.
- Dependency : FR1, FR2
ID: FR4 -- Edit Profile
- Description : Existing users can edit their dog’s profile in order to display updated information. The user can update things such as the bio, photos, weight, age, and temperament. Breed and sex can also be changed if the user would like to match another dog. It is not recommended for users to edit these unless the situation described occurs. Changes are reflected in the database.
- Dependency : FR1, FR2
ID: FR5 -- Profile Roulette (Matchmaking)
- Description : Current users will be able to approve or skip profiles one at a time and then their choices will be recorded in the database. A method will check if the user of the approved profile has also approved the current user. If there is mutual approval the users are matched and a conversation is created between them.
- Dependency : FR1, FR2, FR4
ID: FR6 -- In-App Messaging
- Description : Matched users can message each other and have a record of the conversation. Users are free to message each other as they please or choose to end a conversation. Users can have multiple conversations with different users they’ve matched with.
- Dependency : FR1, FR5
ID : FR7 -- Navigation Links
- Description : Users will be able to transition between matchmaking, user profile, settings, and messaging pages of the app via a navigation bar.
- Dependency : N/A
ID : FR8 -- Settings
- Description : Users will be able to see an Account and About Us page along with notifications ON/OFF button and Log Out feature
- Dependency : N/A
ID : FR9 -- Filtering Option
- Description : Users will be able to filter their dog matchmaking by age, energy level, weight, distance, and even the breed.
- Dependency : N/A
ID: UIR1 -- User Authentication/Registration page
- Description : When the application is opened, users will be prompted to either log in or register via a form. New users can sign up using a valid email and will need to create a profile during registration. Existing users can log in using their username/email and password.
- Dependency : N/A
ID: UIR2 -- User Profile page
- Description : The user can edit their dog’s profile in order to display updated or different information. This page will display the user's profile data in a form with applicable text fields which can be edited to modify desired information. In addition, users can add or remove photos from the profile.
- Dependency : UIR1
ID: UIR3 -- Matchmaking page
- Description : Users will be presented with other local user profiles one at a time and can choose to either approve or skip them.
- Dependency : UIR2
ID: UIR4 -- Messaging page
- Description : This page should have two capabilities. One, it will display all matched conversations for a user and if there are enough they should be able to scroll through them. Second, once a conversation is selected it will be expanded to fit the page and display sent messages on the right and received messages on the left of the page. Users will also have the option to exit the current conversation and select another conversation to expand.
- Dependency : UIR3
ID : UIR5 -- Navigation Menu
- Description : The navigation menu will be presented as a header or footer to the entire application and should contain buttons or links to all the pages of the application. It should also indicate which page is currently in use.
- Dependency : N/A
ID : UIR6 -- Services Page
- Description : This page will have multiple uses as it allows users of the app to find and hire someone to provide dog services. These services will include both sitters/walkers as well as the ability to view their profiles and ratings from other dog owners. If the walker/sitter seems adequate, the user who is hiring can send them a message to discuss further details.
- Dependency : N/A
ID : NFR1 -- Android Studio
- Description : The ideal use to develop the application.
ID : NFR2 -- Emulator
- Description : Simulate and test the app being develop in the android studio.
ID : NFR3 -- Java
- Description : The primary programming language used to develop the application.
ID : NFR4 -- XML
- Description : The mark-up language used to develop the UI for the application.