Video walkthrough of working parts: https://www.youtube.com/watch?v=VUkteWFkY00&feature=youtu.be
CSN iOS 238 Spring Profe
MEME GENERATION
:::info Unit 8 Group Milestone - Meme Generator - Submission. :::
Allows .
-
Category: Social Networking
-
Mobile: This app will be developed for Mobile
-
Story: Uses pictures and text, to display and/ or create Memes. The User will be able to create Memes, like Memes, and have a friends list.
-
Market: Any individual could choose to use this app, and to keep it a safe environment, people would be organized into a friends lists
-
Habit: This app could be used as often or infrequently 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 Facebook, Reddit, Instagram, Snapchat, and other image posting social media outlets.
Required Must-have Stories
- User logs in to access previous Memes and preference settings -Update Login complete
- User can upload a picture and lay over with text.
- User able to like, and favorite memes.
- Profile pages for each user
- Settings (Accessibility, General, etc.) -Update Settings screen created -Persistant Log in -User is able to switch between camera and album -User is able to logout
- Users are able to open camera from Mobile device of Photo library from simulator
- Users are able to load images through parse server, with comments and scroll through them
Optional Nice-to-have Stories
- Able to search for friends
- User can share Memes.
- Light Mode Dark Mode Toggle
- Forgot password feature
*Splash
- Login
- Register - User signs up or logs into their account
- Upon Download/Reopening of the application, the user is prompted to log in to gain access to their profile information to be properly matched with another person.
- …
- Profile / Setting Screen
- Allows user to upload a photo and fill in information that is interesting to them and others * this is Meme Generator *
- Meme Scroll Timeline Screen.
- Allows user to be able to find friends and add them.
Tab Navigation (Tab to Screen)
- Splash
- Login
- Memes
- Settings / Profile
- Generator
Flow Navigation (Screen to Screen)
- Forced Log-in -> Account creation if no log in is available
- Meme Selection Scroll (Or Queue if Optional)
- Generator ->
- Profile -> Text field to be modified.
- Settings -> Toggle settings
- User
- Posts - Memes
- Comments
- Likes
- Follow
- Text
- User
- objectId
- createdAt
- Updated password At
- Post - Meme
- objectId
- Author
- Image
- Caption
- Comment Count
- Likes Count
- createdAt
- UpdatedAt
- Comment
- objectId
- Author
- createdAt
- UpdatedAt
- Likes
- objectId
- Author
- createdAt
- Follow
- objectId
- Author
- createdAt
- Text
- objectId
- Author
- createdAt
| Property | Type | Description | |
| Model User | |||
| objectId | String | unique User ID | |
| createdAt | DateTime | date when login was created (default) | |
| UpdatedAt | DateTime | date password was changed | |
| Model Post | |||
| objectId | String | Unique ID for the User post (default) | |
| Author | pointerToUser | image Author | |
| Image | File | image that user posts | |
| Caption | String | meme caption by author | |
| Comment Count | Number | number of comments that have been posted | |
| Likes Count | Number | number of likes that have been posted | |
| createdAt | DateTime | date when post was created | |
| UpdatedAt | DateTime | date when meme was last updated | |
| Model Comment | |||
| objectId | String | unique ID for the comment | |
| Author | pointer to User | comment Author | |
| createdAt | DateTime | date when the comment was created | |
| UpdatedAt | DateTime | date if/when the comment was updated | |
| Model Likes | |||
| objectId | String | unique Like ID | |
| authorWho | pointerToUser | Like author | |
| createdAt | DateTime | date Like was created | |
| Model Follow | |||
| objectId | String | unique Follow ID | |
| authorWho | pointerToUser | Follow author | |
| createdAt | DateTime | date Follow was created | |
| Model Text | |||
| objectId | String | unique Text ID | |
| authorWho | pointerToUser | Text author | |
| createdAt | DateTime | date Text was created |
| Network Requests | ||
|---|---|---|
| CRUD | HTTP VERB | Example |
| Create | POST | Creating a new post |
| Read | GET | Fetching posts for user’s feed |
| Update | PUT | Changing a user’s profile image |
| Delete | DELETE | Deleting a comment |
-Login Screen
let query = PFQuery(className:"Post")
query.whereKey("author", equalTo: currentUser)
query.order(byDescending: "createdAt")
query.findObjectsInBackground { (posts: [PFObject]?, error: Error?) in
if let error = error {
print(error.localizedDescription)
} else if let posts = posts {
print("Successfully retrieved (posts.count) posts.")
// TODO: Do something with posts...
}
}
| -Login Screen | ||
|---|---|---|
| (Read/GET) | Query Login | |
| (Create/POST) | Create User Login | |
| -Meme Feed | ||
| (Read/GET) | Query post where user is Author | |
| (Create/POST) | Create a new like / comment on Post | |
| (Delete/DELETE) | Delete existing like / comment | |
| -Profile | ||
| (Read/GET) | Query logged in user object | |
| (Update/PUT) | Update user profile image | |
| -Generator | ||
| (Read/GET) | Query images | |
| (Create/POST) | Create a new Meme |
| HTTP VERB | Endpoint | Decription | |
|---|---|---|---|
| POST | https://hc-central.heroku.com/auth/ | Link the new add-on to your Heroku user account | |
| POST | /connections//actions/import | Import a mapping configuration | |
| GET | /connections/ | Monitor the connection and mapping status | |
| POST | /connections//actions/pause | Pause the connection | |
| POST | /connections//actions/resume | Once Paused, it can be Resumed | |
| POST | /connections//actions/restart | Restart the connection | |
| POST | /mappings//actions/reload | Reload a mapping | |
| GET | /mappings/ | Get mapping details | |
| POST | /connections//mappings | Create a new Mapping | |
| PUT | /mappings/ | Edit existing mapping | |
| DELETE | /mappings/ | Delete existing mapping |






