Goods Inventory is a full-stack web application built for the Departamento de Ingeniería Industrial at Universidad de Sonora. It provides a public-facing interface for department members to look up their assigned storage locations and submit inventory revisions, alongside a protected admin panel for comprehensive inventory oversight. The system is powered by a Python/Flask REST API backed by MySQL, and a React + Vite frontend styled with Tailwind CSS.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/AndresLopezCorrales/Goods-Inventory/llms.txt
Use this file to discover all available pages before exploring further.
Quick Start
Get both the backend and frontend running locally in minutes.
Architecture
Understand how the Flask backend, MySQL database, and React frontend fit together.
API Reference
Explore all public and admin REST endpoints with request and response schemas.
Admin Panel
Learn how the JWT-protected admin dashboard works for inventory management.
How It Works
Import inventory data
On startup, the Flask server automatically reads
areas.xls and articulos.xls Excel files and seeds the MySQL database with locations, responsible persons, and inventory items.Public lookup
Department members visit the web app, search their name to find their assigned locations, browse items per location, and submit revision comments.
Key Features
Live Responsible Search
Debounced autocomplete search lets department members find themselves by name in real time.
Location & Item Browsing
Navigate from a responsible person down to their assigned locations and the items within each one.
Revision Tracking
Any user can submit a timestamped revision comment for a location. Admins can view the full revision history.
Excel Data Import
Inventory data is loaded automatically from Excel files on server startup — no manual SQL imports required.
JWT Authentication
The admin panel is protected with Flask-JWT-Extended. Tokens expire after a configurable number of days.
CORS-Enabled API
The Flask backend is configured with Flask-CORS, making it straightforward to deploy the frontend and backend on separate origins.