Project Info
Inspiration
Shoplifting has seen a surge in incidents over the last decade, with retailers reporting a 93% increase from 2019-2023 alone. Although large companies like Target and Whole foods can afford security guards and live camera monitoring, this puts local and small businesses at an even greater risk for repeat shoplifters.
What it does
Iris aims to provide lightweight theft-detection software that can monitor and classify theft incidents with live updates, while requiring zero specialized hardware other than a computer and a camera. A store owner can mark out zones designating exits and cashiers, and the model marks customers that walk in and out of a store without walking near a cashier suspicious. The software clips the recording, which is handled by the Gemini API to confirm if misconduct actually occurred, where the results are then sent to our dashboard
How we built it
We used openCV as the basis for our detection software, and the Gemini API to confirm and classify misconduct. The dashboard is built in react, and server with Express.js, which we deployed to Vercel. Additionally, OAuth handled authentication for the dashboard. For databasing, we used MongoDB for user data, and Mux for video storage and playback.
Challenges we ran into
We tried a lot of different approaches when considering what should be considered as suspicious, as detecting "suspicious actions". We decided to settle on tracking customers that exit the store without walking towards the cashier, in order to combat shoplifters that quickly steal on their way out of a store
Accomplishments we're proud of
Implementing momentum and individual object tracking within the model were both great accomplishments for this project.
What we learned
Computer Vision is very finicky
What's next
Refining the Computer Vision model would be first on our list of improvements. Past that though, it would be cool to establish proprietary hardware that stores could use if they didn't have a camera or computer available
Analysis
View
Metric
- 14
- 12
- 9
- 6
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- MongoDBIn code
- PythonIn code
- ReactIn code
7 of 7 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
34 KB
Source files
17
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
tyler-ham05/cruzhacks2026
42 files · 19.6 MB · @ b506f9a
Structure
Interface
1 file · 2%Screens, components and styles rendered to the user.
API & routing
6 files · 14%Request entry points: routes, handlers and controllers.
Application logic
12 files · 29%Domain rules, services and shared utilities.
Data & schema
2 files · 5%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python40%
- JavaScript37%
- CSS21%
- HTML1%
- Markdown0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
cruzHacksProject/package.json
npm · 11- @auth0/auth0-react
- @mux/mux-player-react
- axios
- react
- react-dom
- react-router-dom
- react-wavify
- +4 more
server/package.json
npm · 6- cors
- dotenv
- express
- mongoose
- morgan
- +1 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.