project-proposal-2024

BrainRot

Abstract

BrainRot is a social media app, primarily for phones, that allows users to create, edit and share short-form video content. It will include all the hallmarks of a social media app e.g., profiles, comments, content feed, with the added spice of a maximum 30 second video duration and plenty of music to keep content engaging. In order to inflict maximum brain rot upon the world, BrainRot will be designed to perform consistently at all hours of the day, regardless of user demand. At 6 pm in Inda or China, when there are tens of millions of users online, BrainRot will still be available to rot your brain too. When you are on a six-hour doom-scrolling bender, BrainRot will keep you there for another six without fail with our robust, fault-tolerant design. Whether you are our first user or our one billionth user, BrainRot will ensure you get the same, brain rotting experience!

Author

Name: Abdullah Badat

Student number: 47022173

Functionality

Once complete, BrainRot will have a variety of features to attract and keep both creators and consumers of content on the platform.

Creator features:

Scope

A minimal viable product of BrainRot should behave as follows. Users of BrainRot will be able to register with an email and password to create a profile. Basic user authentication and authorisation will suffice for an MVP, no multi-factor authentication is needed nor salting or peppering of passwords. From there, users can interact with the system in two main ways: as a creator and as a consumer. Creators will use the in-app video studio to record videos or upload existing videos, edit them, and then post them. Only basic editing tools are necessary for an MVP e.g., trimming duration of videos, adding music. Uploaded videos will then be made available to consumers. To facilitate this process, the app needs to interface with the phone’s camera and have a system to enable CRUD for the uploaded videos. As a consumer, the user will be able to find videos specifically via a search bar, or through a content discovery feed. The feed should not be personalised for an MVP and instead should just display either recent, most liked or most popular videos - the user should be able to choose between these options. The search bar will search for video titles or user profiles. Each video will have an accompanying comment section, view count (that increments appropriately) and like/dislike system. These metrics should determine if and when the video is recommended in the discovery feed with low latency.

Quality Attributes

The following quality attributes are the most important for the system.

If trade-offs are necessary, security should be prioritised above all else. It is both unethical and illegal to poorly secure user data. From there, the quality attributes by importance are:

Evaluation

Evaluating MVP

The UI/UX and the high-level functionality of the platform should be evaluated using the time on task and SUS evaluations tests as seen in DECO2500. A large (>10) sample of test users who know nothing of the system should be used. The basic consumer and creator functionality should be evaluated with unit tests using technologies like Mockito and JUnit (or equivalents) as seen in CSSE3200. An example of a test could be ensuring that a creator is able to record a vidoe, edit a video, and upload a video. More complex functionality should be evaluated using integration tests e.g., a creator uploading a video and then multiple consumers viewing it with low latency.

Evaluating quality attributes