A continuation of doggy dating deluxe, an android application
DoggyDatingDeluxe1
Overview
Description
Tracks where a dog is, and pairs them with others based on that location. Could be used as a dating app, or just meeting new dogs in the same area.
App Evaluation
- Category: Social Networking
- Mobile: This app would be primarily developed for mobile but would perhaps be just as viable on a computer, such as tinder or other similar apps.
- Story: Analyzes users music choices, and connects them to other users with similar choices. The user can then decide to message this person and befriend them if wanted.
- Market: Any individual could choose to use this app, and to keep it a safe environment.
- Habit: This app could be used as often or unoften as the user wanted depending on how deep their social life is, and what exactly they’re looking for.
- Scope: First we would start with pairing people based on music taste, then perhaps this could evolve into a music sharing application as well to broaden its usage. Large potential for use with spotify, apple music, or other music streaming applications.
Product Spec
1. User Stories
- [] A User will be able to login to application.
- [] User can select between multiple navigation items.
- [] A new user may create a profile.
- [] A user may post an image.
- [] A user may view a collection of posts.
- [] A user may view a collection of their own posts
Stretch Stories
- [] The Botton Navigation will have a custom design.
- [] The Signup Functionality will be done via button on Login page
- [] A user will be able to create a blog.
- [] A user will be able to post their location.
- [] Users with close locations will be matched.
- [] Users will be able to delete their account.
2. Screen Archetypes
- Login
- Register – User signs up or logs into their account
- Messaging Screen – Chat for users to communicate
- Upon selecting location choice users matched and message screen opens
- Profile Screen
- Allows user to upload a photo and fill in information that is interesting to them and others
- Match Screen
- Gives the user permission to match the similar locations or to decline.
3. Navigation
Tab Navigation (Tab to Screen)
- Profile
- Location
- Settings
Flow Navigation (Screen to Screen)
- Log-in -> Account creation if no log in is available
- Profile -> Text field to be modified.
- Location ->
Wireframes
Interactive Prototype
Schema
Models
Post
Property | Type | Description |
---|---|---|
objectId | String | unique id for the user post (default field) |
author | Pointer to User | image author |
image | File | image that user posts |
caption | String | image caption by author |
User
Property | Type | Description |
---|---|---|
objectId | String | unique id for the user post (default field) |
emailVerified | boolean | Check user email status |
username | String | a online username for any given user |
password | String | a password to protect a user’s account |
String | a user’s email, used for account recovery |
Networking
Screen Requests
-
Home Feed Screen
- (Read/GET) Query all posts where user is author
let query = PFQuery(className:"Post") query.whereKey("author", equalTo: currentUser) query.order(byDescending: "createdAt" print(error.localizedDescription) } else if let posts = posts { print("Successfully retrieved \(posts.count) posts." } }
- (Create/POST) Create a new comment on a post
- (Read/GET) Query all posts where user is author
-
Create Post Screen
- (Create/POST) Create a new post object
-
Profile Screen
- (Read/GET) Query logged in user object
- (Update/PUT) Update user profile image
HTTP Verb | Endpoint | Description |
---|
`GET` | /characters | get all characters
`GET` | /characters/?name=name | return specific character by name
HTTP Verb | Endpoint | Description |
---|
`GET` | /cities | gets all cities
`GET` | /cities/byId/:id | gets specific city by :id
`GET` | /continents | gets all continents
`GET` | /continents/byId/:id | gets specific continent by :id
`GET` | /regions | gets all regions
`GET` | /regions/byId/:id | gets specific region by :id
`GET` | /characters/paths/:name | gets a character's path with a given name