-
Notifications
You must be signed in to change notification settings - Fork 2
Initial Software Design Document
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.
-
Sumanth Kumar Katapally
[email protected] -
Abhijeet Cherungottil
[email protected] -
Arjun Suresh (AJ)
[email protected]
- Description of Team Members
- Introduction
- Overview
- Approach
- Resources
- Development
- Database Configuration
- Data Collection using Node.js
- Package Build & Distribution
- Installation
- Accessibility
- Risks & Dependencies
- References
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.
- Real-time metrics display
- Historical performance data
- Accessible via desktop (Electron) and mobile (iOS) applications
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.
- 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
- Supported OS: Windows, Mac, Linux
- IDE: IntelliJ IDEA, VS Code
The SPAR dashboard provides users with system metrics, focusing on:
- CPU usage
- Memory consumption
- Disk space usage
- Network activity
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 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.
- For Linux:
.debpackages and.tar.gzarchives are used for distribution. - For Windows: Electron applications are packaged as
.exefiles. - For iOS: The app will be distributed via TestFlight and App Store Connect.
- Download and install the Electron desktop app.
- The desktop app collects system metrics and sends them to the Spring Boot backend for storage.
- Once installed, the Electron app must be running to collect system data.
- Install the iOS app once the Electron app is collecting system data.
- The iOS app allows you to remotely view and analyze system performance metrics.
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.
- 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.
Welcome to the MSCS_Spring2025_Capping wiki!