| 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
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
| 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
Made with โค๏ธ and ๐ฆ Rust
โญ Star this repo โข ๐ Report Bug โข ๐ก Request Feature