SebastianAndreu commited on
Commit
9e77c8b
Β·
verified Β·
1 Parent(s): 1b5464b

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +214 -0
README.md ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # πŸ”§ Makerspace Inventory Management System
2
+
3
+ An intelligent, AI-powered inventory management system designed for makerspaces, workshops, and educational facilities. This system combines computer vision, natural language processing, and optimization algorithms to streamline inventory tracking and improve workspace efficiency.
4
+
5
+ ![Python](https://img.shields.io/badge/Python-3.10-blue)
6
+ ![Gradio](https://img.shields.io/badge/Gradio-5.9-orange)
7
+ ![License](https://img.shields.io/badge/License-MIT-green)
8
+
9
+ ## 🌟 Features
10
+
11
+ ### πŸ›’ **Smart Check-Out System**
12
+ - **AI-Powered Image Recognition**: Upload photos or use your webcam to automatically identify tools and equipment
13
+ - **Gemini Vision AI**: Utilizes Google's Gemini 2.5 Flash model for accurate item detection
14
+ - **Vector Search**: ChromaDB-powered semantic search for fuzzy matching between detected items and inventory
15
+ - **Real-time Inventory Updates**: Automatic quantity tracking and session logging
16
+ - **Multi-Item Support**: Scan multiple items in a single image
17
+
18
+ ### πŸ“¦ **Intelligent Item Addition**
19
+ - **OCR Receipt Processing**: Upload PDF or image receipts to automatically extract items
20
+ - **Fuzzy Matching**: Smart name matching to find items even with typos or variations
21
+ - **Interactive Editing**: Review and modify detected items before adding to inventory
22
+ - **Manual Entry**: Quick single-item updates with auto-completion
23
+ - **Update History**: Complete audit trail of all inventory changes
24
+
25
+ ### πŸ“Š **Data-Driven Layout Optimization**
26
+ - **Pattern Mining**: Discovers which items are frequently checked out together
27
+ - **Association Rules**: Calculates support, confidence, and lift metrics for item pairs
28
+ - **Distance Optimization**: Uses greedy relocation algorithm to minimize walking distance
29
+ - **Visual Analytics**: Side-by-side comparison of current vs. optimized layouts
30
+ - **Actionable Recommendations**: Specific move suggestions with quantified benefits
31
+
32
+ ## πŸš€ How to Use
33
+
34
+ ### Check Out Items
35
+ 1. Click **"πŸ›’ Check Out Items"** on the main menu
36
+ 2. Upload an image of items or use your webcam
37
+ - Or manually type item names (comma-separated)
38
+ 3. Review detected items and adjust quantities
39
+ 4. Confirm checkout (optionally enter user ID)
40
+
41
+ ### Add Items to Inventory
42
+ 1. Click **"πŸ“¦ Add Items"** on the main menu
43
+ 2. **Receipt Upload Tab**:
44
+ - Upload a PDF or image receipt
45
+ - Review extracted items
46
+ - Check/uncheck items to include
47
+ - Edit quantities if needed
48
+ - Click "Apply Updates"
49
+ 3. **Manual Entry Tab**:
50
+ - Type item name
51
+ - Enter quantity
52
+ - Click "Add to Inventory"
53
+
54
+ ### Analyze Layout Efficiency
55
+ 1. Click **"πŸ“Š Inventory Analysis"** on the main menu
56
+ 2. Adjust analysis parameters:
57
+ - **Minimum Support**: Pattern frequency threshold (0.02 = 2%)
58
+ - **Top K Pairs**: Number of frequent pairs to optimize (25)
59
+ - **Maximum Moves**: Limit on relocations (10)
60
+ - **Minimum Gain**: Distance improvement threshold (0.05 units)
61
+ 3. Click "πŸ” Run Analysis"
62
+ 4. Review:
63
+ - Frequent item pairs
64
+ - Relocation recommendations
65
+ - Distance savings
66
+ - Visual layout comparison
67
+
68
+ ## πŸ“ˆ Key Metrics Explained
69
+
70
+ ### **Support**
71
+ Frequency of items appearing together in checkout sessions
72
+ - Example: 0.10 = items appear together in 10% of checkouts
73
+
74
+ ### **Lift**
75
+ How much more likely items are checked out together vs. randomly
76
+ - Lift > 1: Positive correlation (should be near each other)
77
+ - Lift = 2: Items are 2Γ— more likely to be checked out together
78
+
79
+ ### **Confidence A→B**
80
+ Probability of checking out item B when checking out item A
81
+ - Example: 0.80 = 80% chance of checking B with A
82
+
83
+ ### **Distance Saved**
84
+ Reduction in walking distance by relocating items
85
+ - Measured in grid units (1 unit β‰ˆ 1 meter)
86
+
87
+ ## πŸ› οΈ Technology Stack
88
+
89
+ - **Frontend**: Gradio 5.9 (Interactive web interface)
90
+ - **AI/ML**:
91
+ - Google Gemini 2.5 Flash (Vision AI for image recognition)
92
+ - Sentence Transformers (Semantic embeddings)
93
+ - ChromaDB (Vector database for similarity search)
94
+ - **OCR**: Tesseract + Pytesseract
95
+ - **Data Processing**: Pandas, NumPy
96
+ - **Optimization**: Custom greedy algorithm for layout optimization
97
+ - **Visualization**: Matplotlib
98
+ - **Fuzzy Matching**: RapidFuzz
99
+
100
+ ## πŸ“‚ File Structure
101
+
102
+ ```
103
+ .
104
+ β”œβ”€β”€ app.py # Main application file
105
+ β”œβ”€β”€ requirements.txt # Python dependencies
106
+ β”œβ”€β”€ README.md # This file
107
+ β”œβ”€β”€ items.csv # Inventory database
108
+ β”œβ”€β”€ locations.csv # Physical location grid
109
+ β”œβ”€β”€ checkouts.csv # Checkout history
110
+ β”œβ”€β”€ update_log.csv # Inventory update log
111
+ β”œβ”€β”€ screwdriver.png # Example checkout image
112
+ └── mcmaster_receipt.pdf # Example receipt
113
+ ```
114
+
115
+ ## πŸ”§ Local Setup
116
+
117
+ ### Prerequisites
118
+ - Python 3.10 or higher
119
+ - Tesseract OCR installed on your system
120
+
121
+ ### Installation
122
+
123
+ 1. Clone the repository:
124
+ ```bash
125
+ git clone <repository-url>
126
+ cd makerspace-inventory
127
+ ```
128
+
129
+ 2. Install system dependencies (Ubuntu/Debian):
130
+ ```bash
131
+ sudo apt-get update
132
+ sudo apt-get install -y tesseract-ocr poppler-utils
133
+ ```
134
+
135
+ 3. Install Python dependencies:
136
+ ```bash
137
+ pip install -r requirements.txt
138
+ ```
139
+
140
+ 4. Run the application:
141
+ ```bash
142
+ python app.py
143
+ ```
144
+
145
+ 5. Open your browser to `http://localhost:7860`
146
+
147
+ ### Environment Variables
148
+ The Gemini API key is currently hardcoded. For production use, set it as an environment variable:
149
+ ```bash
150
+ export GEMINI_API_KEY="your-api-key-here"
151
+ ```
152
+
153
+ ## πŸ“Š Data Format
154
+
155
+ ### items.csv
156
+ ```csv
157
+ item_id,item_name,category,quantity,unit,description,location_id
158
+ I0001,Hex Key Set,Hand Tools,12,sets,Standard SAE hex key sets,L001
159
+ ```
160
+
161
+ ### locations.csv
162
+ ```csv
163
+ location_id,x,y,capacity
164
+ L001,0,0,1
165
+ ```
166
+
167
+ ### checkouts.csv
168
+ ```csv
169
+ timestamp,user_id,session_id,item_id
170
+ 2025-12-05T10:30:00Z,U0001,S00001,I0001
171
+ ```
172
+
173
+ ## 🎯 Use Cases
174
+
175
+ - **Makerspaces & Fab Labs**: Track tools and equipment usage
176
+ - **Educational Workshops**: Monitor student equipment checkouts
177
+ - **Tool Libraries**: Manage community tool sharing
178
+ - **Research Labs**: Optimize equipment layout based on usage patterns
179
+ - **Manufacturing Facilities**: Improve tool room efficiency
180
+
181
+ ## 🀝 Contributing
182
+
183
+ Contributions are welcome! Please feel free to submit issues or pull requests.
184
+
185
+ ### Development Roadmap
186
+ - [ ] Barcode/QR code scanning
187
+ - [ ] User authentication system
188
+ - [ ] Advanced analytics dashboard
189
+ - [ ] Mobile app integration
190
+ - [ ] Multi-location support
191
+ - [ ] Automated reorder suggestions
192
+ - [ ] Integration with purchasing systems
193
+
194
+ ## πŸ“ License
195
+
196
+ This project is licensed under the MIT License - see the LICENSE file for details.
197
+
198
+ ## πŸ‘₯ Authors
199
+
200
+ Developed as part of a makerspace automation project.
201
+
202
+ ## πŸ™ Acknowledgments
203
+
204
+ - Google Gemini AI for vision capabilities
205
+ - Anthropic Claude for development assistance
206
+ - Open-source community for amazing tools and libraries
207
+
208
+ ## πŸ“ž Support
209
+
210
+ For questions, issues, or feature requests, please open an issue on GitHub or contact the development team.
211
+
212
+ ---
213
+
214
+ **Built with ❀️ for makers, by makers**