← Back to Projects
Software Development Project

Real-time System Monitoring App

A full-stack application to monitor computer hardware performance in real-time, featuring automated end-to-end testing.

Node.js
Express
Next.js
SSE
Playwright
AWS EC2

Overview

The goal of this project is to build a live dashboard that tracks a computer's vital signs (CPU load, RAM usage, and uptime). It focuses on high-frequency data updates and robust automated testing to ensure the monitoring data is always accurate and stable.

Architecture

The app uses a Client-Server architecture. The Node.js backend collects hardware data using system libraries. This data is pushed to a Next.js frontend via Server-Sent Events (SSE) for instant updates. The entire system is deployed on AWS EC2 and tested using Playwright.

Data Flow

  • 1The Node.js server retrieves hardware stats (RAM, CPU, Monitor count) every second using the systeminformation library.
  • 2A Server-Sent Events (SSE) connection is established between the server and the client to stream data without manual refreshing.
  • 3The Next.js UI receives the data stream and renders live charts or progress bars for hardware metrics.
  • 4Playwright automation scripts run headlessly to verify that the server endpoints are active and the UI displays the correct data values.
  • 5The application is containerized or manually deployed to an AWS EC2 instance for public access.

Test Strategy

The testing strategy focuses 100% on Automation to handle real-time data streams. Using Playwright, I validate that the server sends valid JSON and the UI reflects real-time changes without crashing.

Automation Framework Architecture

Built a Playwright test suite to perform End-to-End (E2E) validation. It covers API status checks, data consistency between backend and frontend, and UI stability during high-frequency updates.

Detailed Tech Stack

Backend Services

Node.js, Express.js, Server-Sent Events (SSE)

Platform & Tools

Next.js, Playwright (E2E Testing), Systeminformation, AWS EC2