Feature
Description
Status
๐ Real-time Monitoring
Tracks active applications every second
โ
Active
๐ Browser Detection
Identifies Chrome, Edge, Firefox, and Brave
โ
Active
๐ URL Extraction
Extracts current tab URLs from browser windows
โ
Active
๐จ Modern Web GUI
Beautiful, responsive dashboard with dark mode
โ
Active
๐ฑ Edge App Mode
Launches in native-like Edge app window
โ
Active
โก Efficient Storage
Uses hashbrown::HashMap for in-memory tracking
โ
Active
๐พ SQLite Persistence
Flushes data to database every 30 seconds
โ
Active
๐ Low Resource Usage
<1% CPU on idle, <100MB memory
โ
Active
๐ REST API
JSON API endpoints for dashboard data
โ
Active
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ฅ๏ธ System Monitor Dashboard โ
โโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ Current Activity โ ๐ Statistics โ
โ โข msedge.exe โ โข Uptime: 2h 15m โ
โ โข System Monitor โ โข Tracked Apps: 25 โ
โ โข http://localhost โ โข Active Now: 1 โ
โโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ ๐ Recent Activity โ
โ ๐ Chrome.exe (45m) โ
โ โโโ GitHub (15m) โ
โ โโโ Stack Overflow (20m) โ
โ โโโ YouTube (10m) โ
โ ๐ฅ Firefox.exe (30m) โ
โ โโโ ChatGPT (25m) โ
โ โโโ Reddit (5m) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Requirement
Version
Purpose
๐ช Windows
10/11
Operating system
๐ฆ Rust
Latest
Programming language
๐ง MSYS2 MinGW64
Latest
Build environment
๐ Microsoft Edge
Latest
App mode launcher
# Clone the repository
git clone https://github.com/itzmeJan/sysmonitor.git
cd sysmonitor
# Build the project
cargo build --release
# Start the monitor
cargo run --release
๐ Auto-launch : Edge app window opens automatically
๐ Manual : Visit http://localhost:3030
๐ฑ App Mode : msedge --app http://localhost:3030 --window-size=800,600
๐ What Happens When You Run
graph TD
A[๐ Start Monitor] --> B[๐ Create usage.db]
B --> C[๐ Start Web Server :3030]
C --> D[๐ฑ Launch Edge App]
D --> E[๐๏ธ Monitor Active Apps]
E --> F[๐พ Flush to Database]
F --> G[๐ Update Dashboard]
G --> E
style A fill:#ff6b6b
style B fill:#4ecdc4
style C fill:#45b7d1
style D fill:#96ceb4
style E fill:#feca57
style F fill:#ff9ff3
style G fill:#54a0ff
Loading
๐จ Web Interface Features
Section
Description
Auto-refresh
๐ฏ Current Activity
Active app, window title, URL
โ
2s
๐ Statistics
Uptime, tracked apps, active count
โ
2s
๐ Recent Activity
Historical usage with hierarchical grouping
โ
2s
๐ Light Mode : Clean, modern light theme
๐ Dark Mode : Auto-detects system preference
๐จ Glassmorphism : Modern glass-like design
๐ฑ Responsive : Optimized for small PWA windows
Endpoint
Method
Description
Response
/api/dashboard
GET
Dashboard data
JSON
/api/health
GET
Health check
JSON
/
GET
Main dashboard
HTML
/static/*
GET
Static assets
CSS/JS
๐ Example API Response
{
"uptime" : 135 ,
"total_apps" : 25 ,
"active_apps" : [
[" msedge.exe:http://localhost:3030" , 45 ]
],
"recent_activity" : [
{
"app_name" : " chrome.exe" ,
"window_title" : " GitHub" ,
"url" : " https://github.com" ,
"timestamp" : 1703123456 ,
"duration" : 900
}
]
}
CREATE TABLE usage_logs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
identifier TEXT NOT NULL ,
app_name TEXT NOT NULL ,
window_title TEXT NOT NULL ,
url TEXT ,
timestamp INTEGER NOT NULL ,
duration INTEGER NOT NULL
);
Active App โ Identifier โ HashMap โ SQLite โ Dashboard
โ โ โ โ โ
msedge.exe โ msedge.exe:URL โ RAM โ usage.db โ Web UI
๐๏ธ Project Structure
๐ sysmonitor/
โโโ ๐ src/
โ โโโ ๐ main.rs # ๐ฆ Main Rust application
โโโ ๐ web/
โ โโโ ๐ index.html # ๐ Dashboard HTML
โ โโโ ๐ static/
โ โโโ ๐ style.css # ๐จ Modern CSS styling
โ โโโ ๐ script.js # โก Dashboard JavaScript
โโโ ๐ Cargo.toml # ๐ฆ Dependencies & config
โโโ ๐ usage.db # ๐พ SQLite database
โโโ ๐ README.md # ๐ This file
๐ฆ Rust : High-performance system programming
๐ช Win32 API : Windows system integration
๐ Warp : Async web server framework
๐พ SQLite : Lightweight database
๐จ CSS3 : Modern styling with custom properties
โก JavaScript : Dynamic dashboard updates
CPU Usage : <1% on idle systems
Memory Usage : <100MB with thousands of records
Update Frequency : Every 1 second
Database Flush : Every 30 seconds
Dashboard Refresh : Every 2 seconds
Arc<Mutex<HashMap>> for shared state
Atomic operations for counters
Graceful error handling
Transaction-based database writes
const ACTIVITY_RETENTION_HOURS : u64 = 24 ; // Keep data for 1 day
const MAX_RECENT_ACTIVITIES : usize = 1000 ; // Show all activities
Port : 3030
Host : localhost
CORS : Enabled for local development
Feature
Priority
Status
๐ Charts & Graphs
High
๐ง Planned
๐ค Export (CSV/JSON)
Medium
๐ง Planned
๐ท๏ธ Activity Categories
Medium
๐ง Planned
๐ Usage Notifications
Low
๐ก Ideas
๐จ Custom Themes
Low
๐ก Ideas
๐ฑ Mobile App
Low
๐ก Ideas
We welcome contributions! Here's how you can help:
๐ด Fork the repository
๐ฟ Create a feature branch
โจ Make your changes
๐งช Test thoroughly
๐ Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
๐ฆ Rust Community for the amazing ecosystem
๐ช Microsoft for Windows API documentation
๐ Web Standards for modern browser APIs
๐ก Open Source community for inspiration