Skip to content

A3hiK/MikroDex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


icon

⚑ MikroTik Hotspot Manager β€” Dark Futuristic Desktop App


Electron React Vite TailwindCSS SQLite


License: MIT Platform Status Website Made with ❀️


MikroDex is a premium Windows desktop application for managing MikroTik hotspot networks. Built with a dark futuristic UI, real-time monitoring, and seamless router integration.


Demo Site Β Β  Download Β Β  Report Bug





πŸ–ΌοΈ Screenshots

Dashboard View

πŸ“Š Dashboard
User Management

πŸ‘₯ User Management
Online Users

🟒 Online Users


πŸ–₯️ Overview

MikroDex brings a professional, glassmorphism-powered interface to MikroTik hotspot management. Whether you're an ISP technician or a network admin, MikroDex gives you full control β€” beautifully.


πŸ’‘ Why MikroDex?

Problem MikroDex Solution
😀 Winbox is outdated & clunky βœ… Modern dark UI with smooth animations
😀 No real-time monitoring βœ… Live dashboard, auto-refresh every 10s
😀 No local data history βœ… SQLite β€” full session & usage history
😀 Slow user management βœ… One-click create, edit & delete users
😀 No offline access βœ… Works fully offline, no cloud needed


✨ Features

πŸ“Š Real-time Dashboard

Live network statistics with auto-refresh every 10 seconds. Always know what's happening on your network at a glance.

πŸ”Œ Smart Router Connection

One-click connection to any MikroTik router via REST API with auto-reconnect on drop.

πŸ‘₯ Full User Management

Create, edit, and delete hotspot users with profile assignment, bandwidth control, and credential management.

🟒 Live Online Users

Real-time view of every active session β€” IP, MAC, uptime, and data usage in one clean table.

πŸ“œ Usage History

Complete log of every user session β€” login/logout time, data consumed, and session duration.

🎨 Dark Futuristic UI

Glassmorphism cards, neon glow accents, and buttery-smooth Framer Motion animations.

πŸ’Ύ Local SQLite Database

All your data stays on your machine. No cloud. No subscription. Full privacy.

πŸ” Secure by Design

Context isolation, disabled nodeIntegration, secure IPC bridge, and SQL prepared statements.


πŸ› οΈ Tech Stack

Layer Technology Purpose
πŸ–₯️ Desktop Framework Electron Cross-platform desktop app
βš›οΈ UI Library React Component-based interface
⚑ Build Tool Vite Fast dev server & bundler
🎨 Styling TailwindCSS Utility-first CSS
πŸ’Ύ Database SQLite / better-sqlite3 Local data persistence
πŸ—‚οΈ State Management Zustand Global app state
🎞️ Animations Framer Motion Smooth UI transitions
🌐 HTTP Client Axios Router API requests
πŸ”£ Icons Lucide React Clean icon set


πŸš€ Getting Started

βœ… Prerequisites

  • Node.js v16 or higher β†’ Download
  • npm or yarn
  • A MikroTik router with REST API enabled on port 8728

πŸ“¦ Installation

1. Clone the repository

git clone https://github.com/A3hiK/MikroDex.git
cd MikroDex

2. Install dependencies

npm install

3. Start in development mode

npm run electron-dev

πŸ’‘ This starts the Vite dev server on http://localhost:5173 and launches the Electron app with hot reload.

4. Build for production

npm run electron-build

πŸ“¦ Windows installer will be generated in the out/ directory.



πŸ“ Project Structure

MikroDex/
β”‚
β”œβ”€β”€ πŸ“‚ src/
β”‚   β”œβ”€β”€ πŸ“‚ components/          # Reusable UI components
β”‚   β”‚   └── Sidebar.jsx
β”‚   β”œβ”€β”€ πŸ“‚ pages/               # Application pages
β”‚   β”‚   β”œβ”€β”€ Dashboard.jsx
β”‚   β”‚   └── RouterConnection.jsx
β”‚   β”œβ”€β”€ πŸ“‚ services/            # Business logic & API layer
β”‚   β”‚   β”œβ”€β”€ MikroTikService.js
β”‚   β”‚   └── DatabaseService.js
β”‚   β”œβ”€β”€ πŸ“‚ store/               # Zustand global state
β”‚   β”‚   └── store.js
β”‚   β”œβ”€β”€ πŸ“‚ styles/              # Tailwind CSS entry
β”‚   β”‚   └── index.css
β”‚   β”œβ”€β”€ App.jsx                 # Root app component
β”‚   └── main.jsx                # React entry point
β”‚
β”œβ”€β”€ πŸ“‚ electron/
β”‚   β”œβ”€β”€ main.js                 # Electron main process
β”‚   └── preload.js              # IPC preload script
β”‚
β”œβ”€β”€ πŸ“‚ public/                  # Static assets
β”œβ”€β”€ vite.config.js              # Vite configuration
β”œβ”€β”€ tailwind.config.js          # TailwindCSS config
β”œβ”€β”€ postcss.config.js           # PostCSS config
β”œβ”€β”€ package.json
└── index.html


πŸ”§ Configuration

MikroTik Router Settings

Parameter Default Notes
Host 192.168.88.1 Your router's IP address
Port 8728 MikroTik REST API port
Username admin Router admin username
Password β€” Your router password

Database Location

Windows:  C:\Users\{Username}\.mikrodex\database.db


πŸ”Œ MikroTik API Usage

import MikroTikService from './services/MikroTikService';

// Connect to router
const result = await MikroTikService.connect('192.168.88.1', 'admin', 'password');

// Get all online users
const onlineUsers = await MikroTikService.getOnlineUsers();

// Create a new hotspot user
const newUser = await MikroTikService.createHotspotUser({
  name: 'testuser',
  password: 'pass123',
  profile: 'default'
});

// Delete a user
await MikroTikService.deleteHotspotUser('testuser');

Supported Operations:

Operation Description
connect() Establish connection to router
disconnect() Close router connection
getHotspotUsers() List all hotspot users
createHotspotUser() Add a new user
deleteHotspotUser() Remove a user
getOnlineUsers() Get live active sessions
getRouterInfo() Fetch router system details


πŸ’Ύ Database Schema

routers          -- Saved router connection profiles
users            -- Hotspot user records
usage_history    -- Session logs with data usage
settings         -- App configuration key-value store
login_history    -- Login and logout event records
import DatabaseService from '../services/DatabaseService';

// Save a setting
DatabaseService.setSetting('theme', 'dark');

// Read a setting
const theme = DatabaseService.getSetting('theme');


πŸ“ NPM Scripts

# ── Development ──────────────────────────────
npm run dev              # Vite dev server only
npm run electron-dev     # Electron app + Vite  ← recommended

# ── Production ───────────────────────────────
npm run build            # Build React for production
npm run electron-build   # Package Windows installer

# ── Code Quality ─────────────────────────────
npm run lint             # Run ESLint
npm run format           # Format with Prettier
npm run preview          # Preview production build


🎨 Theme Customization

Edit tailwind.config.js to adjust the color system:

colors: {
  primary:  '#6095ff',  // Blue  β€” buttons, links
  accent:   '#00f0ff',  // Cyan  β€” highlights
  purple:   '#b026ff',  // Purple β€” badges
  pink:     '#ff006e',  // Pink  β€” alerts
  dark:     '#0f1419',  // Deep background
  surface:  '#1a232f',  // Card surface
}
Class Usage
.btn-primary Primary action buttons
.btn-secondary Secondary / ghost buttons
.card-glass Glassmorphism cards
.badge Status indicator badges


πŸ› Troubleshooting

πŸ”΄ Connection Issues
  • Verify the router IP address is reachable on your network
  • Ensure MikroTik REST API is enabled on port 8728
    • Go to: Winbox β†’ IP β†’ Services β†’ api-ssl / api
  • Check firewall rules on both the router and your machine
  • Confirm your username and password are correct
πŸ”΄ Database Issues
  • To fully reset the database, delete this file:
    C:\Users\{Username}\.mikrodex\database.db
    
  • Rebuild the native module:
    npm rebuild better-sqlite3
πŸ”΄ Electron / Build Issues
  • Clear the Vite cache β€” delete the .vite folder
  • Reinstall all dependencies from scratch:
    rm -rf node_modules
    npm install


πŸ” Security

Feature Status
Context isolation in Electron βœ… Enabled
nodeIntegration βœ… Disabled
IPC communication via preload βœ… Secure
Form input validation βœ… All forms
SQL injection prevention βœ… Prepared statements


πŸ‘¨β€πŸ’» Extending MikroDex

βž• Adding a New Page

1. Create component in  src/pages/YourPage.jsx
2. Import it in        src/App.jsx
3. Add a route in      <Routes>
4. Add menu entry in   src/components/Sidebar.jsx

βž• Adding a New Service

1. Create file in      src/services/YourService.js
2. Export as singleton instance
3. Import and use in your components


🌐 Demo & Links

Link
🌐 Website mikrodex.pro.bd
πŸ“₯ Download Latest Release
πŸ› Issues Report a Bug
πŸ’¬ Developer Jazabor Ashik


πŸ“„ License

MIT License β€” Free to use, modify, and distribute.
See the LICENSE file for full details.


πŸ’™ Crafted with passion by

Network Engineer Β· Desktop Developer Β· MikroTik Enthusiast


Facebook Β  Website



If MikroDex made your life easier, drop a ⭐ β€” it keeps this project alive!


About

πŸ–₯️ MikroTik Hotspot Manager for Windows. Real-time user monitoring, hotspot user CRUD, session history & glassmorphism UI. Powered by Electron, React, Vite & SQLite.

Topics

Resources

Stars

10 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages