Skip to content

About

Asset management app (Spring Boot + React). Dockerized, CI, health checks, and E2E tests.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

Β 

History

177 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Krubles Asset Management System

Enterprise-grade asset management without enterprise complexity or cost.

Krubles is a powerful, offline-first desktop asset management system built with Electron, React, and SQLite. Track unlimited assets with lightning-fast search, custom categories, QR code generation, and comprehensive inventory management β€” all while maintaining complete data ownership.

Krubles Logo License Platform


✨ Key Features

🎯 Industry-Optimized Templates

Start with pre-configured categories for your industry:

  • IT & Technology - Computers, monitors, network equipment, software licenses
  • Auto Dealership - Vehicles, parts, service tools, office equipment
  • Warehouse & Distribution - Inventory products, equipment, safety gear, shipping supplies
  • Construction - Power tools, heavy equipment, safety equipment, materials
  • Healthcare - Medical equipment, surgical instruments, office equipment, furniture
  • Education - Computers, projectors, lab equipment, furniture
  • Custom - Build your own category structure from scratch

πŸš€ Performance at Scale

  • Lightning-Fast Search - FTS5 full-text indexing finds assets in <100ms even with 100,000+ records
  • Smart Pagination - Server-side pagination keeps memory usage constant regardless of dataset size
  • Optimized Database - 20+ performance indexes and SQLite optimization pragmas for maximum speed
  • Custom Field Search - JSON custom fields are automatically flattened and indexed for full-text search

πŸ“¦ Flexible Asset Tracking

  • Custom Categories - Create unlimited categories with custom icons and colors during setup
  • Category Filtering - Toggle between "My Categories", "Favorites", or "All Categories" views
  • Custom Fields - Add category-specific fields (text, number, date, dropdown, checkbox)
  • Inventory Tracking - Track individual items within bulk assets
  • Assignment Management - Check out assets to users with expected return dates
  • Maintenance Records - Schedule and track maintenance activities

πŸ” Advanced Search & Organization

  • Full-Text Search - Search across asset tags, names, descriptions, serial numbers, brands, models, and custom fields
  • Smart Filters - Filter by category, status, location, and custom criteria
  • Sortable Columns - Click any column header to sort ascending or descending
  • Debounced Search - Smooth typing experience with 300ms search delay
  • Category Preferences - Only see categories relevant to your workflow

πŸ“Š Business Intelligence

  • Real-Time Dashboard - At-a-glance view of total, available, assigned, and maintenance assets
  • Activity Timeline - Complete audit trail of all asset changes
  • Asset Statistics - Track asset counts by status and category
  • Database Optimization - Built-in tools to optimize database performance

🎨 Beautiful User Experience

  • Modern UI - Clean, professional interface built with React and TailwindCSS
  • Setup Wizard - Guided onboarding with business templates
  • Responsive Design - Works on any screen size
  • Keyboard Shortcuts - Fast workflows for power users
  • Visual Category System - Color-coded categories with emoji icons

πŸ”§ Technical Excellence

  • Offline-First - 100% functional without internet connection
  • Self-Hosted - Your data stays on your computer
  • SQLite Backend - Reliable, battle-tested database engine
  • TypeScript - Full type safety across the entire codebase
  • Electron - Native desktop performance on all platforms

🎬 Quick Start

Prerequisites

  • Node.js 18+ (Download from nodejs.org)
  • npm 8+ (comes with Node.js)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/krubles-asset-management.git
    cd krubles-asset-management
  2. Install dependencies

    npm install
  3. Start the development server

    npm start
  4. Build for production

    npm run package

The packaged app will be in the out/ directory.


πŸ“– User Guide

First-Time Setup

  1. Launch Krubles - The Setup Wizard will guide you through initial configuration
  2. Choose Business Type - Select from IT, Auto, Warehouse, Construction, Healthcare, Education, or Custom
  3. Review Categories - Select which pre-configured categories you want, or add your own custom categories
  4. Enter Business Info - Add your company name and default location
  5. Start Managing Assets - You're ready to go!

Managing Assets

Create an Asset:

  1. Navigate to "Assets" in the sidebar
  2. Click "New Asset"
  3. Fill in asset details (tag, name, category, etc.)
  4. Add custom fields specific to the category
  5. Save the asset

Search & Filter:

  • Use the search bar to find assets by any text field
  • Filter by category, status, or location using the dropdown filters
  • Click column headers to sort results

View Modes:

  • Toggle between "My Categories", "Favorites", and "All Categories" using the sidebar selector
  • Only see categories relevant to your workflow

Category Management

Create Custom Categories:

  1. Go to Settings β†’ Category Management
  2. Click "Manage Categories"
  3. Add new categories with custom names, icons, and colors
  4. Set category-specific custom fields (e.g., VIN for vehicles, SKU for inventory)

Category Preferences:

  • Mark categories as favorites for quick access
  • Hide unused categories from dropdowns
  • Reorder categories in your preferred sequence

Inventory Tracking

Enable Tracked Inventory:

  1. When creating an asset, check "Track Individual Items"
  2. Enter total quantity (e.g., 50 identical laptops)
  3. System automatically creates unique QR codes for each item
  4. Track individual item assignments and locations

Check Out Assets:

  1. Select asset β†’ Click "Assign"
  2. Enter assignee name, purpose, and expected return date
  3. System automatically updates availability

πŸ—οΈ Architecture

Technology Stack

Frontend:

  • React 19.2.3
  • TypeScript 5.x
  • TailwindCSS 3.x
  • Zustand 5.0.9 (state management)
  • Lucide React (icons)

Backend:

  • Electron 39.2.7
  • Better-SQLite3 12.5.0
  • FTS5 (full-text search)

Build:

  • Webpack 5.x
  • Electron Forge 7.10.2

Database Schema

Core Tables:

  • categories - Asset category definitions with custom fields
  • assets - Main asset records with FTS5 indexing
  • custom_field_definitions - Dynamic field schemas per category
  • inventory_items - Individual item tracking for bulk assets
  • assignments - Asset checkout/check-in records
  • maintenance_records - Scheduled and completed maintenance
  • inventory_transactions - Receive/adjust/transfer operations
  • activity_log - Complete audit trail
  • user_category_preferences - Per-user category visibility settings
  • business_profile - Company information

Performance Features:

  • FTS5 virtual table for sub-100ms full-text search
  • 20+ composite and partial indexes
  • Custom fields flattened into searchable text
  • Incremental auto-vacuum to prevent bloat
  • WAL mode for concurrent access
  • 64MB cache size for optimal performance

πŸ”§ Development

Project Structure

asset-management/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/      # React UI components
β”‚   β”‚   β”œβ”€β”€ AssetManager.tsx
β”‚   β”‚   β”œβ”€β”€ CategoryManager.tsx
β”‚   β”‚   β”œβ”€β”€ SetupWizard.tsx
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ database/        # SQLite schema & migrations
β”‚   β”‚   β”œβ”€β”€ db.ts
β”‚   β”‚   β”œβ”€β”€ schema.ts
β”‚   β”‚   └── migrations.ts
β”‚   β”œβ”€β”€ ipc/             # Electron IPC handlers
β”‚   β”‚   β”œβ”€β”€ assets.ts
β”‚   β”‚   β”œβ”€β”€ categories.ts
β”‚   β”‚   β”œβ”€β”€ categoryPreferences.ts
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ types/           # TypeScript interfaces
β”‚   β”‚   └── api.ts
β”‚   β”œβ”€β”€ utils/           # Utility functions
β”‚   β”‚   └── customFieldsIndexer.ts
β”‚   β”œβ”€β”€ index.ts         # Electron main process
β”‚   β”œβ”€β”€ preload.ts       # IPC bridge
β”‚   └── App.tsx          # React root
β”œβ”€β”€ public/              # Static assets
β”œβ”€β”€ package.json
└── README.md

Available Scripts

npm start          # Start development server with hot reload
npm run package    # Build production executable
npm run make       # Create distributable installers
npm run lint       # Run ESLint
npm run build      # Build for production

Database Optimization

The system includes automatic database optimization:

  • Automatic Schedule - Runs 30 seconds after startup, then every 24 hours
  • Manual Optimization - Available in Settings β†’ Database Optimization
  • Operations Performed:
    • FTS5 index rebuild
    • Custom fields re-indexing
    • ANALYZE query planner statistics
    • PRAGMA optimize
    • Incremental vacuum

πŸ“Š Performance Benchmarks

Operation Dataset Size Performance Status
Full-Text Search 100,000 assets <100ms βœ…
Paginated Load Any size <200ms βœ…
Sort Operation 100,000 assets <50ms βœ…
Asset Creation N/A <20ms βœ…
Database Size 100,000 assets <500MB βœ…
Memory Usage Any dataset <250MB βœ…

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


πŸ™ Acknowledgments


πŸ“ž Support


Made with ❀️ by the Krubles Team

Krubles - Enterprise asset management without the enterprise price tag.

About

Asset management app (Spring Boot + React). Dockerized, CI, health checks, and E2E tests.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages