Skip to content

Initial Software Design Document

abhijeet1999 edited this page Mar 6, 2025 · 1 revision

System Processes and Reports (S.P.A.R) Capstone Project

Overview

The System Processes and Analysis Reporting (S.P.A.R) application is designed to support users of the Linux operating system, specifically Ubuntu Linux. It provides real-time system metrics such as CPU, memory, disk usage, and running processes. The application includes two primary interfaces:

  • Desktop Application (Electron)
  • Mobile Application (iOS)

The goal of S.P.A.R is to provide an intuitive, user-friendly interface for monitoring system health and performance across different devices.

Team Members

Table of Contents

  1. Description of Team Members
  2. Introduction
  3. Overview
  4. Approach
  5. Resources
  6. Development
  7. Database Configuration
  8. Data Collection using Node.js
  9. Package Build & Distribution
  10. Installation
  11. Accessibility
  12. Risks & Dependencies
  13. References

Introduction

S.P.A.R is a system monitoring application designed to display the state of the system, components, and active processes in real-time. It is compatible with the Ubuntu Linux distribution and offers a detailed view of system metrics such as memory, disk, CPU, and processes.

Key Features:

  • Real-time metrics display
  • Historical performance data
  • Accessible via desktop (Electron) and mobile (iOS) applications

Approach

S.P.A.R consists of two main components:

  • Client-Side: Displays real-time metrics to users, allowing them to monitor system performance at a glance.
  • Server-Side: Stores and provides access to previously collected system data, enabling users to generate reports and analyze trends over time.

The system primarily supports Ubuntu Linux for metric collection, with future plans for supporting other distributions.

Resources

Technologies Used:

  • Backend: Spring Boot (Java), Node.js
  • Frontend: Electron (Desktop App), SwiftUI (iOS App)
  • Database: MySQL
  • Other: GitHub for version control, Xcode for iOS development, VS Code for front-end development

Development Environment:

  • Supported OS: Windows, Mac, Linux
  • IDE: IntelliJ IDEA, VS Code

Development

SPAR Dashboard Concept

The SPAR dashboard provides users with system metrics, focusing on:

  • CPU usage
  • Memory consumption
  • Disk space usage
  • Network activity

Database Configuration

We use a MySQL database for storing system metrics, with tables for:

  • System Metrics (CPU, memory, disk, and processes)
  • Users (for authentication and roles)
  • User-Device Subscription (to manage device subscriptions)

Data Collection using Node.js

Data collection is achieved via libraries such as systeminformation and @trufflesuite/ps-list in Node.js, which gather metrics like CPU, memory, disk, and process information asynchronously.

Package Build & Distribution

  • For Linux: .deb packages and .tar.gz archives are used for distribution.
  • For Windows: Electron applications are packaged as .exe files.
  • For iOS: The app will be distributed via TestFlight and App Store Connect.

Installation

Desktop Application (Electron)

  1. Download and install the Electron desktop app.
  2. The desktop app collects system metrics and sends them to the Spring Boot backend for storage.
  3. Once installed, the Electron app must be running to collect system data.

iOS Application

  1. Install the iOS app once the Electron app is collecting system data.
  2. The iOS app allows you to remotely view and analyze system performance metrics.

Accessibility

We aim to design a UI that accommodates color-blind users by using color-blind-friendly palettes and combining color with text and icons to represent the status of various metrics.

Risks & Dependencies

  • External Dependency Risks: Low, as the app uses stable open-source technologies like Electron, Spring Boot, and system monitoring APIs.
  • Internal Dependency Risks: Medium, due to the risk of misconfigured credentials or data flow interruptions between the desktop app and backend.
  • Mitigation: Automated backups, error handling, and restricted access to ensure reliability.

References

Welcome to the MSCS_Spring2025_Capping wiki!