SysAura is a real-time system and server(still working on server) monitoring application that provides detailed insights into CPU, memory, disk, and network usage. It features a modern React frontend and a robust Node.js backend with WebSocket support for real-time updates.
https://drive.google.com/drive/folders/1QqdzelWDzui8TduurK6YV7NphFt5Wn7U
- Real-time monitoring of system metrics (CPU, memory, disk, network)
- User authentication and authorization with role-based access (admin and user)
- System management and monitoring
- Server managementand monitoring
- Alerts and notifications for system events
- Responsive UI with dark mode support
- WebSocket support for live data updates
- Frontend: React, TypeScript, Vite, Tailwind CSS
- Backend: Node.js, Express, WebSocket, SQLite
- Authentication: JWT
- Real-time communication: WebSocket
/src- React frontend source code/backend- Node.js backend server- Root contains configuration files for frontend and backend
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/yourusername/sysauraft.git cd sysauraft -
Install frontend dependencies:
npm install
-
Install backend dependencies:
cd backend npm install -
Create a
.envfile in thebackenddirectory with the following variables:PORT=5000 JWT_SECRET=your_jwt_secret NODE_ENV=development
-
Start the backend server:
cd backend npm run dev -
Start the frontend development server:
# In the project root npm run dev -
Open your browser and navigate to
http://localhost:5173
The backend provides RESTful API endpoints for authentication, system metrics, system management, alerts, and user management.
POST /api/auth/register- Register a new userPOST /api/auth/login- Login userGET /api/auth/me- Get current user info
GET /api/metrics/current- Get current system metricsGET /api/metrics/history/:systemId- Get metrics history for a systemPOST /api/metrics/:systemId- Save system metrics
GET /api/systems- Get all systems (admin only)GET /api/systems/user- Get systems for current userGET /api/systems/:id- Get a single systemPOST /api/systems- Create a new systemPUT /api/systems/:id- Update a systemDELETE /api/systems/:id- Delete a system
GET /api/alerts- Get all alertsGET /api/alerts/system/:systemId- Get alerts for a specific systemPOST /api/alerts- Create a new alertPATCH /api/alerts/:id- Update alert status
GET /api/users- Get all users (admin only)GET /api/users/profile- Get user profilePUT /api/users/profile- Update user profilePUT /api/users/password- Change passwordPUT /api/users/email/:id- Change emailPUT /api/users/role/:id- Change user role (admin only)DELETE /api/users/:id- Delete user (admin only)
The application uses WebSockets for real-time updates. Connect to the WebSocket server at ws://localhost:5000 and send/receive JSON messages.
- Authentication:
{ type: "auth", token: "jwt_token" } - Subscribe to system:
{ type: "subscribe", systemId: "1" } - Unsubscribe from system:
{ type: "unsubscribe", systemId: "1" }
- Authentication success:
{ type: "auth_success", userId: 1, role: "admin" } - Authentication error:
{ type: "auth_error", message: "Invalid token" } - Subscription confirmation:
{ type: "subscribed", systemId: "1" } - Unsubscription confirmation:
{ type: "unsubscribed", systemId: "1" } - Metrics update:
{ type: "metrics", systemId: "1", data: {...}, timestamp: "..." } - Error:
{ type: "error", message: "Error message" }
- Admin:
- Email: [email protected]
- Password: admin123
- Abhishek (https://github.com/Abhishekmystic-KS/)
- Akshatha (https://github.com/AkshathaaRk/)
This project is licensed under the MIT License.