Note
Status: 🚧 Ongoing Project
Due to my increasingly busy schedule and school commitments, progress might be slower than before or even put to a halt.
A fullstack project for monitoring network devices. It automatically or manually checks whether devices are reachable (online/offline) and visualizes the status on a nicely designed website.
- Add, edit, and delete devices
- Automatic reachability check (e.g., every 30 seconds)
- Display of current status (🟢 online / 🔴 offline)
- Logging of status changes in the database
- Frontend with table view / card view and live status
Before running the application, the database must be created.
Make sure not to use a dash - in the name, as MySQL has issues with it.
Example:
CREATE DATABASE dcs_app;- Go to the backend directory.
- Create the file:
src/main/resources/application.properties
- Adjust the database credentials found in
application.properties.example:
spring.application.name=backend
# Database Configuration
spring.datasource.url=jdbc:mysql://localhost:3306/dcs_app
spring.datasource.username=YOUR_DB_USERNAME
spring.datasource.password=YOUR_DB_PASSWORD
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# JPA Configuration
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
# CORS and Redirect Configuration
frontend.url=http://localhost:3000Note:
spring.jpa.hibernate.ddl-auto=updateensures that tables are automatically created if they do not yet exist.
In the backend folder:
./mvnw spring-boot:runOr, if Maven is installed globally:
mvn spring-boot:runThe backend will run on:
http://localhost:8080
- Go to the frontend directory.
- Install dependencies:
npm install --force- Start the development environment:
npm run devThe frontend will run on:
http://localhost:3000
- Open the frontend in your browser:
http://localhost:3000 - Add a device, check its status, and watch the logs.
- All changes are automatically saved in the
dcs_appdatabase.
GET /api/devices → List all devices
POST /api/devices → Add a new device
GET /api/devices/{id} → Device details
PUT /api/devices/{id} → Edit device
DELETE /api/devices/{id} → Delete device
GET /api/devices/scan/{id} → Scan device via nmap
GET /api/status_logs → List all logs
GET /api/status_logs/{deviceId} → List all logs of a device
GET /api/status_logs/latest/{deviceId} → Latest log entry of a device
POST /api/status_logs → Add new log entry
DELETE /api/status_log/{id} → Delete log entry
-
CIDR Block Support Currently, only individual IPs can be checked (via
nmap -snon specific addresses). In the future, it will be possible to scan entire CIDR ranges (e.g.,192.168.0.0/24):- Automatic resolution of the range into individual IPs
- Detection of all active hosts within a subnet
-
Docker Setup Full Docker deployment for easy and portable setup.
-
Advanced Status Reports
- Historical uptime statistics
- Export options (CSV, JSON)
- Notifications on status changes
-
Professional Speed Tests
- Measure download/upload speed and latency per device
- Integration of standardized test methods (e.g., via
speedtest-clior similar APIs) - Display results in clear graphs and tables on the frontend
- Optional automatic periodic testing for continuous monitoring data
Made with ☕ + 💻 by AnonNanoo
Copyright © 2025 AnonNanoo. All Rights Reserved.
