Skip to content

🔄 Check-In / Check-Out System #85

@fusion94

Description

@fusion94

Summary

Add a check-in/check-out system to track which user has possession of an item, when it was checked out, and when it is expected to be returned. This is essential for shared inventories in organizations, ranges, and armories.

Motivation

In organizational settings — gun ranges, law enforcement armories, training facilities — multiple people access shared inventory. Without formal check-out tracking, items go missing, accountability is lost, and there is no record of who had what and when. A check-in/check-out system brings the same rigor to item custody that stock history brings to quantity tracking.

Proposed Implementation

  • Create a checkouts DB table (id, item_id, checked_out_by, checked_out_at, expected_return_date, checked_in_at, checked_in_by, notes)
  • Add /api/items/:id/checkout and /api/items/:id/checkin endpoints
  • Add /api/checkouts endpoint for listing all active checkouts
  • Build checkout/checkin modals with user selection, expected return date, and notes
  • Add status indicator on item list: available, checked out, maintenance
  • Display checkout status prominently on item detail page
  • Show checkout history timeline per item
  • Add an active checkouts dashboard widget or page
  • Overdue checkouts (past expected return date) should be highlighted

Acceptance Criteria

  • checkouts table tracks check-out and check-in events with user and timestamp
  • Items can be checked out with an expected return date and notes
  • Items can be checked in with the return recorded
  • Item list shows status indicator (available, checked out, maintenance)
  • Item detail page displays current checkout status and checkout history
  • Active checkouts list is available (dashboard widget or dedicated page)
  • Overdue checkouts are visually highlighted
  • Only available items can be checked out (prevent double checkout)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions