Sherlock is a comprehensive, self-hosted inventory and lending management system designed for school labs, makerspaces, and workshops.
This project is a complete, ground-up rewrite and significant feature expansion of the original Sherlock v1.0. It transforms the application from a simple inventory list into a powerful, data-driven lab management platform built on a modern and robust Python/Django backend.
Command Center Dashboard | Checkout Terminal |
---|---|
![]() |
![]() |
Item Detail & Audit Trails | On Loan Reporting |
![]() |
![]() |
The goal of Sherlock v2.0 is to provide a powerful, easy-to-deploy, and intuitive tool for lab managers to track their physical inventory. It answers the critical questions of lab management:
- What do we have and where is it?
- Who has borrowed our equipment?
- When is it due back?
- What is our inventory's lifecycle?
- Hierarchical Structure: Organize your inventory logically with Sections, Spaces, and Items.
- Stock Control: A full, permanent audit trail for every stock change (e.g., "Received New Stock," "Reported Damaged").
- Label Printing: Generate and print custom barcode and QR code labels to seamlessly bridge your physical and digital inventory.
- Unified Search: A powerful, live-search dashboard to find any item or student record in the system.
- Student Records: Maintain a secure database of students with filtering and search capabilities.
- Kiosk-Style Checkout Terminal: A dedicated, fast interface for lending items, featuring a live, as-you-type search for both students and items.
- Stock Validation: The system automatically checks available stock before allowing a checkout.
- Partial Returns & Loan History: A sophisticated check-in system that allows for partial returns and keeps a complete, auditable log of every transaction for both students and items.
- Due Date & Overdue Tracking: Assign a due date to every loan and get instant visibility on overdue items through the main dashboard and a dedicated report.
- Camera Scanning: Use your device's camera for rapid checkouts and to instantly look up any item, space, or section with the Universal Scan tool.
- Data Visualizations: The main dashboard features charts for weekly loan activity and most popular items, providing instant insight into your lab's operations.
Sherlock is designed for incredibly simple deployment. It is packaged as a standalone executable using PyInstaller, containing the entire application, web server, and all dependencies.
- Go to the Releases page of this repository.
- Download the latest
.zip
file for your operating system (e.g.,Sherlock-v2.0.0-Windows.zip
). - Unzip the file and double-click the
Sherlock
executable.
The server will start, automatically creating a new database on the first run. The application will be available at http://127.0.0.1:8000
and on your local network.
- Clone the repository:
git clone https://github.com/YOUR-USERNAME/Sherlock-python.git cd Sherlock-python
- Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On macOS/Linux .\venv\Scripts\activate # On Windows
- Install dependencies:
pip install -r requirements.txt
- Run migrations:
python manage.py migrate
- Create a superuser:
python manage.py createsuperuser
- Run the development server:
python manage.py runserver
- Backend: Python 3, Django
- Frontend: HTML, CSS, HTMX, Chart.js
- Server: Waitress
- Packaging: PyInstaller
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for the full license text and the NOTICE file for attribution details.