FeaturesLoan Tracking

SYSTEM FEATURES

Loan Tracking

Invenicum’s loan tracking system helps you monitor items lent to team members, clients, or friends. Track who has what, when it’s due back, and automatically update inventory.


Overview

Automated Stock

Inventory adjusts automatically when items are loaned or returned.

Return Reminders

Dashboard highlights loans expiring today or overdue.

Borrower Profiles

Store contact details and comprehensive loan history.

Digital Vouchers

Generate formatted loan receipts for physical or digital tracking.

How It Works

Step 01

Creating a Loan

When you lend an item, Invenicum creates a loan record and decrements the item’s quantity.

1

Select Item

Navigate to the asset and verify sufficient quantity.

2

Form Entry

Enter Name (req), Email (opt), and Phone (opt).

3

Set Due Date

Define the expected return date for tracking.

lib/data/services/loan_service.dart:50
LoanService.createLoan(containerId, loan)
// POST /containers/{containerId}/loans
// Backend:
// 1. Validates quantity
// 2. Decrements stock
// 3. Status set to 'active'
Step 02

Loan States

active

Item is currently loaned out and unavailable for other uses.

returned

Loan completed. actualReturnDate is timestamped and stock is restored.

Step 03

Returning Items

lib/data/services/loan_service.dart:69
LoanService.returnLoan(containerId, loanId)
// PUT /containers/{id}/loans/{id}/return
// Backend automatically increments stock
Step 04

Deleting Loans

Loans can be deleted if created by mistake (lib/data/services/loan_service.dart:86).

Creator Only

No Auto-Restoration

Dashboard Integration

The main dashboard (lib/data/models/dashboard_stats.dart:13) provides loan insights:

Loans Expiring Today

Shows all active loans with expectedReturnDate matching today’s date. Click to view details or mark as returned.

Top Loaned Items

Highlights your most frequently borrowed assets, helping identify high-demand items that may need additional purchases.

Container-Specific Stats

Count
Total active loans
Quantity
Total loaned quantity
Overdue
Overdue loan count

Voucher System

Each loan generates a unique formatted voucher ID (lib/data/models/loan.dart:19):

V-000042
Format: V-{6-digit zero-padded ID}

Notifications and Reminders

Dashboard Alerts

Expiring Today

Dedicated “Loans Expiring Today” widget on Home.

Overdue

Calculated client-side: expectedReturnDate < now.

Future Roadmap

  • Email reminders to borrowers 24h before due date.
  • Automatic notifications when loans become overdue.
  • Recurring loan patterns for regular equipment sharing.

Loan Statistics

Access detailed analytics per container (lib/data/services/loan_service.dart:101):

GET /containers/{containerId}/loans-stats

Active countTotal loaned quantityOverdue countAvg durationMost frequent borrowers

Best Practices

Before Loaning
  • Verify Quantity: Ensure stock before creation.
  • Document Condition: Add notes on any damage.
  • Realistic Dates: Account for holidays/weekends.
  • Contact Info: Always get borrower email/phone.
Managing Active
  • Daily Review: Check dashboard every morning.
  • Communicate: Contact 1-2 days before due date.
  • Inspect: Verify item condition matches loan notes.
  • Sync: Mark returned as soon as they arrive.
High-Value Items
  • Approval: Require admin approval workflow.
  • Shorter Terms: 3-5 day maximum loans.
  • Photos: Attach pre-loan images to notes.
  • Insurance: Record relevant details in notes.

Limitations

No Partial Returns

Must return all units at once. Workaround: Create separate loans per unit.

Single Item Per Loan

Each loan tracks exactly one inventory item. Workaround: Create multiple loans.

No Late Fees

System tracks overdue status but doesn’t calculate financial penalties.

Manual Notifications

Borrowers aren’t automatically emailed; notifications are managed through Alerts.

API Reference

Loan Service API
Loan Data Model
Dashboard Stats API