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:
- Comprehensive and expressive video editing suite - creators will be able to record vidoes with the in-app studio and then apply a variety of effects e.g., music, animations, filters, before uploading them.
- Creator insights and analytics tools - creators will have access to detailed analytics describing who is watching their videos, what videos perform the best, engagement throughout the video, in order to enable them to improve their content.
- Fast, reliable upload times - videos will be uploaded quickly and reliably.
Consumers features:
- Sophisticated recommendation algorithms - consumers will have access to a content discovery feed that recommends videos based on their watch history, likes, dislikes, comments, age and gender (as specified by the user in their profile), and what is currently popular in their general demograhpic.
- Optimised, friendly UI/UX - the user interface and user experience will leverage the most up to date research and data to make navigating it effortless. One salient feature is the ability to scroll through a infinite stream of suggested short-form videos without the need to click on them or select them first.
- Content moderation - all content will be filtered through a content moderation system before being uploaded to prevent inappropriate material from being hosted. Additionally, users will be able to report videos they deem inappropriate which will indicate to moderators that the video needs to be re-reviewd.
- Full social media platform functionality - the app will include extensive user profile customisation, private messaging between users, a following system to allow users to be suggested all uploads from certain creators, comment sections and like/dislike/view counters on all videos.
- Rapid content delivery - all content should be rapidly available on demand for users.
- Lightweight - BrainRot will be optimised so that it is lightweight and can run on older hardware.
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.
- Availability - availability is critical, as users expect to be able to take out their phone at anytime of day and be able to access the app. If the app cannot satisfy this, then users will switch to a different social media platform. Social media is all about instant gratification at all times of the day, hence availability is everything. Downtime is one way of measuring how available the system is.
- Reliability - reliability is critical, as an app that crashes or behaves unreliably will not be able to deliver instant gratification, especially to a customer base with a limited attention span. This defeats the purpose of the app. Reliability can be tested by failure testing - simulating failures or faults and seeing how the system recovers or handles it, and monitoring - looking at logs to track performance metrics and crash reports to ensure they remain consistent.
- Scalability - scalability is critical for the app, as social media platforms only become profitable with a large number of users. If the app cannot scale efficiently, new users will not enjoy the app and will leave, thus halting growth and profitability. Scalabiilty can be tested by simulating a massive influx of users and seeing how the app can handle it in terms of load balancing and provisioning new infrastructure.
- Security - security is critical, as it would be unethical to leak user data. Additionally, users will leave if they feel the app cannot be trusted. Security can be tested via vulnerability assessment and penetration testing. Third-party security companies can review internal policies and regulations as well.
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:
- Reliability - if the app is constantly crashing, then it will not be used even if it is available 24/7 to millions of users.
- Availability - social media is used and expected to be used at all hours of the day.
- Scalability - the app needs to reliable and available before new users will even consider using it.
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
- Availability - the availability of the app will be evaluated by measuring the uptime over a defined period. During this time, a simluated load will be applied.
- Reliability - the app’s reliability will be evaluated by calculating its mean time to failures and mean time to recovery over a given period of time. A simulated load will be applied.
- Scalability - the scalability will be evaluted by simulating an exponential growth in concurrent users and then measuring the change in the response time to deliver resources or respond to an action.
- Security - the security of the app can be evaluated by running automatic vulnerability scanners like OpenVAS. Additionally, all used libraries should be checked for security vulnerabilites.