PartsDB
PartsDB
Electronics inventory system
PartsDB is a web-based inventory and lifecycle tracking system designed specifically for a high school VEX Robotics team. It addresses a recurring problem in competitive robotics programs: maintaining accurate, long-term records of physical parts across multiple seasons, robots, and student cohorts.
In a typical team environment, parts are used, reused, modified, broken, repaired, and eventually retired. Knowledge about a part’s history is often informal and lost when students graduate. PartsDB preserves this institutional knowledge in a structured, searchable database that remains consistent across seasons.
Why It’s Useful
Robotics teams accumulate hundreds of parts over time, many of which look identical but have very different histories. Without a centralized system, teams waste time re-diagnosing known failures, searching for usable components, or accidentally reusing unreliable or even illegal parts.
PartsDB provides a single source of truth for every physical item owned by the team. It enables teams to:
- - Track the full lifecycle of each individual part from acquisition to retirement
- - Record failures, diagnostics, and repair attempts over time
- - Preserve knowledge across seasons and graduating student members
- - Reduce wasted time and repeated troubleshooting
Key Features Include
- Per-Part Tracking: Each physical item is tracked as a unique entity using a UUID v4, rather than as a generic part type or SKU.
- QR Code Integration: Every part is assigned a QR code that links directly to its detail page, allowing students to scan parts in the pit or workshop and immediately view history or log issues.
- Failure and Repair History: Parts can accumulate multiple failures, each with one or more associated repair attempts, creating a complete historical record even if a part is later fixed.
- Normalized Data Model: Categories, parts, failures, and repairs are stored in a relational schema designed to avoid duplication and enforce consistency.
- Category Source of Truth: A predefined Python dictionary defines valid categories and part groupings, driving both database initialization and frontend dropdowns.
- Flask-Based Architecture: Built with Python and Flask using SQLAlchemy, emphasizing clarity, correctness, and long-term maintainability.
Technical Details
PartsDB is implemented as a Python Flask web application backed by a SQLAlchemy-managed relational database. SQLite is used during development, with a clear migration path to PostgreSQL or MySQL for production deployments.
The application explicitly controls database initialization, including the creation of read-only SQL views, to avoid unintended side effects. Human-readable names are always backed by stable identifiers, and no implicit behavior is hidden behind framework magic.
The system is deployed on a Linux-based server, with the application server configurable between the Flask development server and Gunicorn, and a reverse proxy handled externally.
In Summary
PartsDB is a purpose-built inventory and lifecycle tracking system tailored to the realities of competitive VEX robotics. It combines disciplined data modeling with a practical, student-friendly interface to preserve knowledge, reduce errors, and improve efficiency across seasons.
The project reflects real-world software engineering practices applied to a tangible, high-impact problem in a STEM education environment.
Icons by IONICONS and PAPIRUS
icon theme.
This website is based on an MIT-licensed template by codewithsadee.
Copyright (c) 2025 Derek Baier.