Skip to the content.

1. Introduction

1.1. Purpose of the Document

This document identifies functional elements related to the RhythmRun application and describes the implementation of these elements. The element description shall be of sufficient detail to verify design goals and thus serve as the guideline to the implementation of the RhythmRun application. This document also forms the basis for developing test code for the RhythmRun application.

1.2. Scope of the Document

This document describes the functionalities that are present in the RhythmRun application. It also describes in detail the various classes that implement these functionalities and the software interfaces associated with this application.

2. General Description

2.1. Product Goal

The goal of the RhythmRun application is to provide an accessible and engaging structure to running workouts in a way that is both functional and unique.

2.2. Development Profile

Developed in the Flutter framework for use on multiple different platforms, mainly using the Dart programming language. OS-specific devices:

2.3. Interfaces and Interactions

The app uses various APIs to function:

2.4. Assumptions and Dependencies

The RhythmRun application runs under the assumptions and dependencies laid out in the requirements document.

3. System Architecture Overview

3.1 Functional Design

A UML diagram showing the entire RhythmRun app with all the classes

Figure 1: RhythmRun Data Schema Diagram

3.2 Local Storage

3.3 Spotify API

3.4 Apple Music API

UML Diagram of a Client-Server architecture of the Spotify and Apple Music API along with a Façade called Music API that makes it work inside the RhythmRun app

Figure 2: Music API Schema

3.5 Apple Watch

3.6 Playlist Upload

3.7 BPM Analysis

3.8 Experience Levels

3.9 Performance Stats

3.10 Song

3.11 Song Customization

3.12 Workout

3.13 Workout Customization

3.14 Generate Playlist

3.15 Saving Playlist

Link to the Design Report v1 PDF