Inspiration
STOW started from a common shopping problem: people often buy something new and later realize they already owned something very similar.
We wanted to build a tool that helps users answer one simple question before checkout: “What do I already have?” By making personal inventory easier to track and compare, STOW helps users make more intentional purchase decisions.
What it does
STOW is a smart inventory assistant. Users can save items they own, search and filter their inventory, and check whether a planned purchase is similar to something they already have.
The app also includes a Gemini-powered quick add feature. Users can upload one product photo, and Gemini suggests item details such as name, category, color, style, material, purpose, and notes. The user reviews the result before saving.
STOW also supports restock reminders by showing items when their quantity reaches a set threshold.
How we built it
We built the frontend with React and Vite, the backend with FastAPI, and the database with PostgreSQL. Docker Compose runs the frontend, backend, and database together for local development.
Gemini is used on the backend to analyze uploaded product images and return structured item suggestions. We also added authentication with hashed passwords and JWT tokens so each user has separate inventory data.
Our team used Git branches, pull requests, code review, and backend tests throughout development.
Challenges we ran into
One challenge was designing the app so AI helps the user without fully replacing user judgment. Gemini can suggest item details, but the user still needs to review and edit the result before saving.
Another challenge was adding authentication safely. We needed to hash passwords, keep API keys server-side, and make sure inventory data is separated by user.
We also had to manage merge conflicts and coordinate features across branches while keeping the main branch stable.
Accomplishments that we're proud of
We are proud that STOW became a complete full-stack application with inventory management, purchase comparison, restock tracking, image-assisted item intake, and authentication.
We are also proud of our development workflow. We practiced using branches, pull requests, reviews, merges, Docker, database migrations, and tests like a real collaborative software project.
What we learned
We learned that AI is helpful, but it still needs human review. Gemini can reduce manual input, but the final result should remain transparent and editable.
We also learned that security affects the whole system design. Adding user accounts made us think about password hashing, JWT authentication, server-side API keys, and user-scoped data.
Finally, we learned that good teamwork is not only about writing code. Branches, pull requests, tests, and clear communication helped us build features more safely together.
What's next for STOW
Next, we would like to improve the mobile experience, support multiple image uploads, add better category insights, and make the purchase recommendation logic more personalized over time.
We also want to expand STOW beyond personal use so it could help small teams, dorm rooms, shared households, or small stores manage inventory more easily.
PowerPoint
Built With
- alembic
- api
- compose
- docker
- fastapi
- gemini
- jwt
- postgresql
- python
- react
- sqlalchemy
- vite

Log in or sign up for Devpost to join the conversation.