Skip to content

Build system

Abhijeet C edited this page Mar 30, 2025 · 1 revision

Desktop & iOS App for System Metrics Collection

Overview

This project consists of a desktop application (Electron) and an iOS application designed to collect and display system metrics such as CPU usage, memory consumption, disk utilization, and more. The backend is powered by Spring Boot and Node.js, handling data persistence and API exposure for metric collection.

Tech Stack

  • Frontend (Desktop App): Electron, React, Tailwind CSS
  • Frontend (iOS App): Swift (with accessibility features & logging)
  • Backend: Spring Boot (Java)
  • Metrics Collection: Node.js (using system APIs)
  • Communication: REST APIs over HTTP
  • Database: (To be specified, assumed SQL or NoSQL)

Features

Desktop App (Electron + React)

  • Built with Electron for cross-platform compatibility.
  • Uses React & Tailwind CSS for UI.
  • Runs in development mode with npm start.
  • Packaged into an installer (.exe) using npm run package.
  • Loads dummy data for testing purposes.

iOS App

  • Built with Swift.
  • Uses logging for tracking interactions across different pages.
  • Fully accessible, including support for dynamic text resizing and voice-over descriptions.
  • Simulated testing available through the iOS simulator.
  • Displays mock UI and dummy data for demonstration purposes.

Backend (Spring Boot & Node.js)

  • Spring Boot handles data persistence and REST API exposure.
  • Node.js collects system metrics and communicates with the backend.
  • Uses Electron Renderer to fetch and process system-level metrics.
  • Collected Metrics:
    • Device specifications (CPU, RAM, manufacturer, OS details)
    • CPU, Memory, Disk Usage, Disk I/O, Network, Battery
    • Process Metrics (running processes, user IDs, etc.)

Running the Project

For Desktop App

  1. Clone the repository.
  2. Navigate to the Electron app directory.
  3. Install dependencies: npm install
  4. Run in development mode: npm start
  5. To build the installer: npm run package

For iOS App

  1. Open the project in Xcode.
  2. Run on a simulator or physical device.

For Backend

  1. Run the Spring Boot server.
  2. Execute the Node.js script to start metrics collection.
  3. Ensure the Electron app is configured to send data to the backend.

Demo

  • Electron app loads system metrics from the local machine.
  • iOS app provides an accessible UI with logging for user interactions.
  • Backend collects and persists system metrics via Node.js and Spring Boot.

Build System Demo Video

📺 Watch the full build system demo here: YouTube Link

Future Enhancements

  • Implement real-time metric visualization.
  • Secure API endpoints.
  • Expand compatibility for different OS versions.

This project provides an end-to-end system monitoring solution with a desktop and mobile client, a backend, and real-time data collection. 🚀