PartsDB

This page is still a work in progress, check back soon for additional details!

https://pdb.derekbaier.com

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.

PartsDB dashboard overview
Current dashboard view showing tracked parts and system status

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.
Placeholder for PartsDB feature screenshot
Placeholder for future screenshot (part detail view, QR scan flow, or repair history)

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.