Projects / Engineering Works / PRJ-001
Smart Vision
Optical inventory management system — university project
Smart Vision is a university project developed during my Computer Science degree: a web application for managing stock in optical retail. It is an academic work, not a commercial product, and it is still under development.
My role
Lead developer. I designed the database tables and built most of the back end and the front end, from the data model to the interface.
Context
The project takes optical retail as its domain. Products in this sector carry technical attributes that generic inventory tools do not model well: lens prescriptions, contact-lens batches with expiry dates, and treatments such as anti-reflective coatings.
Scope
- Product catalog organised by category: frames and sunglasses, ophthalmic lenses, contact lenses and laboratory supplies.
- Stock entries and outbound movements, specified as separate capabilities.
- Inventory reconciliation, to compare recorded stock against the counted one.
- Reorder alerts for items that fall below a threshold.
- Audit trail: movements are recorded with the operator and a standard reason, and stored in an event log on the backend.
- Authentication with member accounts.
Architecture
Streamlit interface
|
Python service layer
Xano client, validation,
authentication, catalog
| REST
Xano backend
authentication, stock
endpoints, event log
|
Relational database
The interface never talks to the backend directly. A service layer in Python wraps the Xano REST API, validates data and keeps the business rules in one place.
Engineering practices
- Automated tests with pytest: 12 test modules covering the Xano client, inventory rules and contracts, outbound movements, alerts, authentication and the product catalog.
- Specification first: features are written down with OpenSpec (proposal, design, spec and tasks) before implementation. The repository holds specs for the product catalog, stock outbound and inventory reconciliation.
- Versioned backend: the Xano workspace (API groups, tables and functions) is exported and kept in the repository next to the code.
Stack
Python 3.11+, Streamlit, Xano (REST API), pytest and OpenSpec.