project-proposal-2024

Real. The social media without the addiction

Abstract

Tired of endlessly scrolling through irrelevant content on social media and getting sucked into an endless scrolling frenzy? Introducing our new platform, which offers a refreshing alternative to traditional social media feeds. Like Instagram, our platform showcases images uploaded by people you follow, but without the endless scrolling. Say goodbye to mindless scrolling and hello to a curated feed that only shows images from accounts you follow. With our platform, you can eventually get “all caught up,” meaning you’ve seen all the photos uploaded by people you follow in the past month and can feel satisfied with your social media experience. Experience a more meaningful and efficient way to stay connected with our platform.

Author

Name: Caleb Murphy

Student number: 46976578

Functionality

The system provides a simple application that allows people to post photos and videos of themselves as well as view other photos and videos posted by others on the platform. With this simple application allowing users to only be able to see posts from those they follow, this application will help mitigate endless scrolling and help keep you off social media while keeping you up to date with your friends and family.

Features

The software system should have the following features:

Scope

The MVP should include:

Account: Basic information (username, first and last name, biography).

Searching: Show non-followed accounts when the full username is searched; filter followed accounts by name or username; provide a follow button for non-followed accounts.

Posting: Upload images or videos (up to one minute); view all media from followed accounts.

Notifications: Receive notifications for followed account posts, interactions (likes or comments) on user posts, and tag requests from followers.

User Feeds: Display followed accounts’ posts in descending order by posting date; show only posts from the past month.

Interaction: Like and comment on posts.

Quality Attributes

Availability

Availability in this context means ensuring the platform is consistently accessible to users without downtime. It also includes accessibility on both mobile and computer platforms.

Given the project’s basic functionality, the architecture should allow for continuous updating while the application is running. Additionally, robust server infrastructure and contingency plans should be in place to minimize disruptions.

Scalability

Scalability is the ability of a system to handle growing workloads without compromising performance. In this context, it means designing the platform to easily adapt to increasing users, posts, and interactions. This includes using scalable architecture like cloud services and efficient data storage mechanisms.

Scalability is crucial for the system due to the potential for many users uploading and interacting simultaneously. Stress testing tools like K6 will be used to evaluate the system’s ability to handle increased user load.

Security

Security in this context involves protecting the platform from unauthorized access, attacks, and data breaches. This includes implementing software and protocols to maintain normal operations even during attacks and ensuring the safety of systems and resources. Measures include encryption, access controls, software updates, and monitoring for suspicious activity. This is crucial for a platform where users post photos publicly.

Evaluation

Availability

The availability of the system will be evaluated using tools like Apache JMeter or Locust to simulate various levels of traffic and load on the platform. This will help determine how the system responds to different scenarios and whether it can maintain normal operations during peak usage. Additionally, monitoring tools will be used to track uptime and performance metrics, allowing for proactive measures to be taken to ensure high availability.

Scalability

The scalability of the system will be evaluated using load testing tools like K6, which will simulate increasing numbers of users and interactions to measure the system’s performance under different load conditions. Additionally, performance metrics such as response times and resource utilization will be monitored to assess how well the system scales to meet growing demands.

Security

The security of the system will be evaluated using automated vulnerability scanning tools, such as OWASP ZAP, to identify and mitigate potential security vulnerabilities. Additionally, manual penetration testing will be conducted to simulate real-world attacks and assess the system’s resilience to various security threats.