Skip to content
agustin117 edited this page May 10, 2022 · 44 revisions

Playpal

1. Introduction

1.1 Purpose

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.

1.2 Scope

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. Description

2.1 Product Components

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.

2.2 Users

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.

3. Requirements

3.1 Functional Requirements

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

3.2 UI Requirements

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

3.3 Non-Functional Requirements

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.

4. Prioritization

  1. Sign in page - Create the bottom to sign in using username/email and password and have the "sign-in" and "forgot password" bottom
  2. Home page - Profile selection. Choose which profile to swipe left and right.
  3. Data base - Have the database setup to store information such as the username/email and password, when a person swipe left and right, profile information like their height, weight, breed, conversation, and more.

5. Diagrams

Wireframe

Class Diagram