
BIMS - Building Internal Monitoring System

Nikola Filipovski
Full-Stack Web Developer
About the Project
BIMS (Building Internal Monitoring System) is a local network monitoring application built using Node.js and EJS templating. Unlike traditional systems that rely on MySQL or cloud databases, BIMS uses Excel (.xlsx) files as its database. Each building is represented as a folder, and every folder contains dynamic Excel tables with device data.
This approach allowed the company to reuse existing documents and avoid costly migrations. Admins could upload, generate or modify Excel files directly through the user interface, and the system interpreted the data in real-time.
Architecture & Design
BIMS is a local network-only application. It is hosted on a private server and accessible exclusively within the internal LAN. The application was built to monitor every device with a static IP address, such as:
- IP Cameras
- Printers
- Wi-Fi Access Points
- Computers & Servers
- Switches & TVs
- Nurse Call Systems
- Any other device with a static IP
The system periodically checks whether devices are online or offline by pinging their IP addresses, then updates the UI based on the results.
Admin Control & Role Permissions
User management inside BIMS is fully dynamic. Only administrators can create new users and assign custom roles. Permissions can restrict:
- Which buildings a user can access
- Which categories of devices they can view
- Access to logs, reports, and system settings
For example, an administrator could create:
| Role | Building | Access Level |
|---|---|---|
| Maintenance | Building 1 | All devices |
| Reception | Building 2 | TV, Wi-Fi, Phones only |
| Technician | Building 3 | Cameras and Printers |
Admins can also create other administrators with full access to every building, device and action.
Database Logic Using XLSX Files
Instead of using SQL or NoSQL databases, BIMS treats folders as buildings and .xlsx files as tables. The application can:
- Create new building folders via the UI
- Upload existing Excel device lists
- Generate new files if none exist
- Add new devices directly from the dashboard
This method allowed the company to continue using spreadsheets they were familiar with, while still benefiting from a real-time monitoring system.
βThe database is literally a folder. The tables are Excel files. The system is smart enough to treat them like structured data.β
Logging & Security
BIMS includes a built-in logging system for administrators, recording:
- Failed login attempts
- Device scan errors
- Warning notices and system status
- User activity when modifying files or roles
Logs store user device information and IP details, showing exactly what happened and where. All of this helps administrators maintain accountability and quickly identify misconfigurations.
Server Reliability & PM2
The application is kept running using PM2, ensuring:
- Automatic restart on crashes
- Automatic restart after system reboot
- Background service management
- Resource monitoring for Node.js
In practice, this means the system simply keeps running. Even if the server restarts or a service crashes, PM2 brings everything back online instantly.
Responsive, Practical & Built for Real Use
The UI was made responsive so the app could be used on desktops, tablets, and mobile devices. The design focused on clarity, not complexity everything is understandable to non-technical staff.
Built to solve a real problem, using tools that already existed sometimes innovation is not about reinventing technology, but about making it work smarter.
If youβre interested in creating a similar monitoring solution for your organization, feel free to reach out to me.
Share this project:
- Share project BIMS - Building Internal Monitoring System on Facebook
- Share project BIMS - Building Internal Monitoring System on Whatsapp
- Share project BIMS - Building Internal Monitoring System on X (Formerly Twitter)
- Share project BIMS - Building Internal Monitoring System on LinkedIn
- Share project BIMS - Building Internal Monitoring System on Reddit