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
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
{
"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
📁 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