project-proposal-2025

MoviePicker

Abstract

How many hours have you spent scrolling through Netflix, then Amazon Prime, and then Binge, trying to find a movie to watch with your friends, all for you to settle and watch something you’ve already seen before? MoviePicker will solve this problem for you!

MoviePicker allows everyone in your group to ‘swipe right’ on movies that interest them to find a choice that suits everyone! When you swipe, if others in your group have also ‘swiped right’ on the same movie, it will appear as a match and is a great choice for your group to watch together! You can filter the movie options by genre, length and by streaming platform, to ensure the chosen movie is exactly what everyone in your group wants to watch!

Author

Name: Megan Roxburgh

Student number: 46443829

Functionality

Replicating the quick ‘swiping’ functionality of modern dating apps, MoviePicker is a simple application that allows users to easily select a movie to watch, without spending hours wasting time scrolling through numerous streaming platforms.

Features

The main features that the application must include are:

Scope

The scope for the MVP should prioritise:

Quality Attributes

1. Extensibility

Extensibility of the application relates to how easily new features or extensions can be added to the software over its lifespan. As streaming platforms are constantly updating their movie options and new platforms enter the market, it is essential that the MoviePicker application allows developers to easily add these new platforms or movies to the system. Extensibility also relates to how easily it is to add TV shows or other forms of media to the system in the future. This simplicity could be maintained using a modular architecture system, meaning limited changes to the code are required when an update is made.

2. Scalability

Since the overall objective of the application is to connect multiple users and allow them to find a common movie they would all like to watch, scalability is very important. The application should work just as effectively for large groups (e.g. 6+ users) as it does for smaller groups (2 or 3 users).

This could be done by utilising a back-end cloud infrastructure (such as AWS) to facilitate the storage of the movie details in a database and manage the user connections to the group session.

3. Interoperability

Interoperability relates to how easily it is to share information and exchange data with internal components and other systems. This is particularly important for this project, as we need to share information between users in a group across multiple devices, and also receive movie information from a range of different streaming platforms. It would also be beneficial for the application to work across different platforms (e.g. iOS, Android).

In terms of the internal communication, when the specified number of users swipe right on a movie, we need to immediately display that the movie is a match on all devices. This requires information to be exchanged between the different users, and to record how many of the users in a group have swiped right on each movie option.

To connect to existing streaming platform, we need to retrieve the movie data from each platform. As the data can change with platforms constantly adding or removing movies, it will be important that the appliation is always retrieving the most up-to-date information.

Evaluation

1. Extensibility

This attribute can be evaluated by adding a new streaming platform to the application. If the new platform can be added easily by and integrating the data seamlessly into the existing databases, then this attribute would be considered successful. “Easily” could be quantified as being able to be added in a few hours. This could also be tested by adding tv shows, or other forms of media, to the application.

2. Scalability

To evaluate the scalability criteria, testing can be performed where the number of users is gradually increased to see if there is an upper limit on the size of the groups allowed. Different performance metrics could also be analysed, to see if the speed of the system slows down with increased usage, or to see how much memory is being utilised. The application would be considered successful in this attribute if it can allow at least 8 users in a group to use the server without interuption. A tool such as JMeter could be used for this.

3. Interoperability

This criteria could be testing by user testing and ensuring that all devices (potentially both iOS and Android) can connect to the group access pin and movies are successfully found if all users ‘swipe right’. In terms of testing the connection to external streaming platforms, this can be tested by verifying the movie details received are current, accurate and complete, and cross-checking this with the platform directly. Unit tests could be written to check this information is being returned and displayed as expected.