This is a mobile iOS app that utilizes the Movie Databases API to allow a user to match their account to an assortment of movies. This way the target audience of the app can connect with other users who wish to watch the same movies.
This is an app that showcases the current movies playing organized by their genres to allow users to find matches on what to watch with other users.
- Category: Social/Entertainment
- Mobile: As of right now, this app will primarily be used and desgined for iOS mobile phones.
- Story: Analyzes what genres of movies a user is interested in and matches them with others users who have the same movie interests. It allows the user to reach out to their matches if they choose to.
- Market: This app can be used by anyone, but the target audience are those from ages 13-25. The possible implementation of a kids vs. adults movie selections could make the app more safe and age-friendly.
- Habit: This app can be used whenever the user wants, depending on if they want to watch a movie/s with some company.
- Scope: First we want to match people based on what types of movies they are interested in. This could possibly evolve into users actually watching the movies with their matches, while possibly implementing the choice of streaming vs. in theater. This has potential use with the AMC Theater application.
Required Must-have Stories
- User has to be able to create an account and log back in with all their previous information (favorites, matches) saved.
- User must see the home screen that organizes all the movies by genre
- User has to be able to click on a movie genre and swipe yes or no on all the movies within the specified genre
- User must be able to see all the matches they have matched with other users for when it comes to any of the movies they swipped right to
- Profile page for each user
Optional Nice-to-have Stories
- Streaming vs. In Theater Choice of Available Movies
- Adults vs Kids
- Chat Feature
- To only make matches with other users based on their locations
- Launch Screen:
- Logo and Name
- Login Screen:
- Allows for creation and login of accounts
- Home Screen:
- Current Movies Organized By Genre
- Swiping Screen:
- After clicking on a genre within the Home Screen, this screen will allow a user to swipe yes/no to all the movie options within that specified genre. The screen will provide the title of the movie and the movie poster.
- Profile Screen:
- Your profile information along with a list of all the movies the user has favorited.
- Matches Screen:
- This screen will show a list of all matches a user has with other people for any movies that they have favorited/swipped right to.
Tab Navigation (Tab to Screen)
- Home Tab
- Profile Tab
- Matches Tab
Flow Navigation (Screen to Screen)
- Launch Screen
- Login Screen
- Home Screen
- Swiping Screen
- Home Screen
- Matches Screen
- Profile Screen
[This section will be completed in Unit 9]
Property | Type | Description |
---|---|---|
username | Pointer to User | Login screen username |
password | Pointer to password | Login screen password |
profileName | String | Name of user. |
profileImage | file. | Image that user posts |
commentsCount | Number | number of comments that has been posted to an image |
swipe | Boolean | Movie approval/disapproval |
Login Screen Home Feed Screen (Read/GET) Create Genres Screen
- (Read/GET) Query all posts where user is author
let url = URL(string: "https://api.themoviedb.org/3/genre/movie/list?api_key=a07e22bc18f5cb106bfe4cc1f83ad8ed&language=en-U")!
let request = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 10)
let session = URLSession(configuration: .default, delegate: nil, delegateQueue: OperationQueue.main)
let task = session.dataTask(with: request) { (data, response, error) in
// This will run when the network request returns
if let error = error {
print(error.localizedDescription)
} else if let data = data {
let dataDictionary = try! JSONSerialization.jsonObject(with: data, options: []) as! [String: Any]
self.movies = dataDictionary["results"] as! [[String:Any]]
print(dataDictionary)
// TODO: Get the array of movies
// TODO: Store the movies in a property to use elsewhere
// TODO: Reload your table view data
}
}
(Create/POST) Create a new object Profile Screen (Read/GET) Query logged in user object (Update/PUT) Update user profile image Swiping Screen (Read/GET) Create Swiping Screen (Create/POST) Create a new object Matches Screen
Network Requests for The Movie Database API:
- [OPTIONAL: List endpoints if using existing API such as Yelp]
Base URL: https://developers.themoviedb.org/3/genres/get-movie-list
HTTP Verb Endpoint Description GET
/genre/movie/list Get all movie genres GET
/movie/{movie_id} Get all movies