How dmitzdev/inventech-engineeringmanagementsystem works
This is a laboratory-equipment kiosk for student borrowing, advance reservations, and returns, with a separate administration area for inventory, reservations, transactions, reporting, and dashboard views. The main kiosk flow collects borrower details, selects a lab and equipment, then commits a transaction; the shared transaction context coordinates state and inventory updates. Return and clearance handling are additional paths. Kairo provides inventory-aware AI assistance, and the app generates a printable borrower sheet. The README is empty, so feature coverage comes from the source index and sampled references; unsampled details are not assumed.
Main entry points: TransactionContext.jsx Transaction state · App.jsx Kiosk router · AdminPanel.jsx Admin panel · EquipmentCatalog.jsx Equipment catalog
Components 23
Kiosk workflow
- Kiosk router
src/App.jsx - Borrower details
src/components/steps/BorrowerForm.jsx - Lab selection
src/components/steps/LabSelector.jsx - Equipment catalog
src/components/steps/EquipmentCatalog.jsx - Borrow cart
src/components/steps/BorrowCart.jsx - Advance booking
src/components/steps/ReservationModal.jsx - Transaction commit
src/components/steps/TransactionCommit.jsx
Returns and records
- Return handling
src/components/steps/ReturnEquipmentModal.jsx - Return clearance
src/components/steps/ReturnClearanceModal.jsx - Secure return station
src/components/steps/SecureReturnStation.jsx - Borrower sheet
src/components/print/BorrowerSheet.jsx
Administration
- Admin panel
src/components/admin/AdminPanel.jsx - Inventory manager
src/components/admin/InventoryManager.jsx - Reservation manager
src/components/admin/ReservationManager.jsx - Dashboard
src/components/admin/DashboardOverview.jsx - Audit reports
src/components/admin/AuditReports.jsx - Transaction history
src/components/admin/TransactionHistory.jsx
Shared services
- Transaction state
src/context/TransactionContext.jsx - Equipment data
src/data/equipmentData.js - Kairo assistant
src/components/ui/FloatingKairoBot.jsx - Kairo AI service
src/services/kairoAiService.js
Other components
- Student
- Gemini API
Connections 35
- Student → Kiosk router: starts session
src/App.jsx - Kiosk router → Borrower details: routes step
src/App.jsx - Kiosk router → Lab selection: routes step
src/App.jsx - Kiosk router → Equipment catalog: routes step
src/App.jsx - Kiosk router → Transaction commit: routes step
src/App.jsx - Kiosk router → Admin panel: routes admin
src/App.jsx - Borrower details → Transaction state: updates state
src/components/steps/BorrowerForm.jsx - Lab selection → Transaction state: reads state
src/components/steps/LabSelector.jsx - Equipment catalog → Transaction state: updates state
src/components/steps/EquipmentCatalog.jsx - Equipment catalog → Borrow cart: opens cart
src/components/steps/EquipmentCatalog.jsx - Equipment catalog → Advance booking: opens booking
src/components/steps/EquipmentCatalog.jsx - Borrow cart → Transaction state: updates state
src/components/steps/BorrowCart.jsx - Advance booking → Transaction state: updates state
src/components/steps/ReservationModal.jsx - Transaction commit → Transaction state: commits transaction
src/components/steps/TransactionCommit.jsx - Transaction state → Equipment data: updates inventory
src/context/TransactionContext.jsx - Transaction state → Borrower sheet: provides transaction data
src/components/print/BorrowerSheet.jsx - Kiosk router → Borrower sheet: renders sheet
src/App.jsx - Return handling → Transaction state: updates return
src/components/steps/ReturnEquipmentModal.jsx - Return clearance → Transaction state: updates clearance
src/components/steps/ReturnClearanceModal.jsx - Secure return station → Transaction state: reads state
src/components/steps/SecureReturnStation.jsx - Admin panel → Inventory manager: renders section
src/components/admin/AdminPanel.jsx - Admin panel → Reservation manager: renders section
src/components/admin/AdminPanel.jsx - Admin panel → Dashboard: renders section
src/components/admin/AdminPanel.jsx - Admin panel → Audit reports: renders section
src/components/admin/AdminPanel.jsx - Admin panel → Transaction history: renders section
src/components/admin/AdminPanel.jsx - Inventory manager → Transaction state: reads state
src/components/admin/InventoryManager.jsx - Inventory manager → Equipment data: uses equipment data
src/components/admin/InventoryManager.jsx - Reservation manager → Transaction state: reads state
src/components/admin/ReservationManager.jsx - Reservation manager → Borrower sheet: uses print sheet
src/components/admin/ReservationManager.jsx - Dashboard → Transaction state: reads state
src/components/admin/DashboardOverview.jsx - Dashboard → Equipment data: reads equipment
src/components/admin/DashboardOverview.jsx - Kairo assistant → Kairo AI service: asks assistant
src/components/ui/FloatingKairoBot.jsx - Kairo AI service → Equipment data: reads inventory
src/services/kairoAiService.js - Kairo AI service → Gemini API: requests generation
src/services/kairoAiService.js - Kairo assistant → Transaction state: uses session state
src/components/ui/FloatingKairoBot.jsx