project-proposal-2024

Spotter: A social fitness platform

Abstract

Spotter reimagines the fitness journey, seamlessly blending workout logging, progress tracking, and social connectivity into a single dynamic platform. Aimed at gym enthusiasts and fitness lovers, Spotter fosters a vibrant community where achievements are celebrated and motivation is shared. It is a holistic fitness ecosystem designed to offer comprehensive workout logging, social feed, leaderboards, direct messaging, statistics dashboard, group communities, and user profiles.

Author

Name: Connor Golin

Student number: 46932565

Functionality

Spotter is a holistic fitness ecosystem designed to offer:

Scope

The minimum viable product for Spotter focuses on the core functionalities necessary to engage and retain users:

Quality Attributes

  1. Scalability: Essential for accommodating a growing number of users and increasing simultaneous connections, ensuring seamless performance by dynamically adapting to demand spikes and high-usage periods, thus maintaining user experience as the platform expands.

  2. Availability: High availability is crucial for Spotter as it is required to provide uninterrupted access for logging routines, tracking progress, and engagement within the community. Any downtime risks frustrating users and potential abandonment. Thus, High Availability is a must.

  3. Maintainability: This is vital for Spotter’s ongoing relevance and responsiveness, especially in the rapidly changing landscape of online social platforms. Quick updates, bug fixes, and feature additions are essential to keep pace with evolving user needs and fitness trends.

Evaluation

Functionality

  1. User Account Creation:
    • Verify that users can successfully create new accounts with valid credentials.
    • Test account creation with various input scenarios (valid/invalid email, password strength, etc.).
    • Ensure user data is securely stored and cannot be accessed without proper authentication.
  2. Simple Workout Logging:
    • Test adding workouts with different exercise details (sets, reps, weight, notes).
    • Verify that workout data is correctly stored and can be retrieved.
    • Test search and filtering functionality for existing workouts.
  3. Social Feed:
    • Verify that users can post, like, comment, and share fitness-related content.
    • Test content sharing with different media types (text, images, videos).
    • Ensure that feed updates are reflected in real-time for all users.
  4. User Profile:
    • Test updating user profile details (profile picture, bio, and post showcase).
    • Verify that changes are correctly reflected on the user’s profile page.
    • Ensure that other users can view the updated profile information.

Quality Attributes

  1. Scalability:
    • Method: Conduct load testing using tools like Apache JMeter or Locust to simulate concurrent user activities (login, workout logging, social feed interactions).
    • Metrics: Response times, throughput (requests per second), resource utilisation (CPU, memory, database).
    • Success Criteria: Maintain response times below 2 seconds and avoid resource saturation under expected load conditions.
  2. Availability:
    • Method: Continuously monitor application uptime, response times, and error rates using tools like Pingdom, New Relic, or self-hosted monitoring solutions.
    • Metrics: Uptime percentage, Mean Time To Recovery (MTTR), average response time.
    • Success Criteria: Achieve at least 99.9% uptime, MTTR no more than 1 hour, and average response time below 500ms.
  3. Maintainability:
    • Method: Track development metrics such as deployment frequency, lead time for changes, change failure rate, and time to restore service after an issue or outage.
    • Metrics: Deployment frequency, lead time for changes, change failure rate, time to restore service.
    • Success Criteria: Deploy new features or bug fixes within 2 weeks of development, change failure rate less than 10%, time to restore service after an issue within 4 hours.