PocketValue

Inspiration

Our inspiration came from having a bunch of old devices that weren't put to use and wondering how, with the idea of planned obsolescence, we can best adapt to this kind of market.

We also looked up EcoATM, which was a service back in the day that allowed people to resell their devices by putting them directly into a machine near grocery stores. But that took a lot of hassle.

What if we could automate that entire process into a singular app, rather than having to go to a physical machine or having to research and compare across different sources to find the best option? What if that could be done for you in five minutes instead of one hour?

What it does

Point your camera at any of your old tech and PocketValue automatically identifies the make and model, rates its physical condition by spotting cracks, scratches, and dents, estimates its specs, and gives you a realistic resale price range in AUD, auto-filled into an editable report in seconds.

From there, it weighs five outcomes: fix, resell, trade in, donate, or recycle. It recommends the best one for your specific device and hands you exactly what you need to act on it:

  • Repair gets you a device-specific repair plan with cost versus value-increase breakdowns and guide links
  • Resell gets you ready-to-copy marketplace listing text built from your own photos
  • For supported Apple devices, the trade-in card pulls trade-in value data directly from Apple in order to give you a real value estimation
  • Donate and recycle find nearby drop-off spots based on your location, with directions

How we built it

  • PocketValue's app: Expo SDK 54 (React Native, TypeScript), the camera capture and preview form app that drives the whole experience
  • Backend: Node.js + Express 5 (TypeScript, run with tsx), the API layer that talks to the Agent Platform SDK (we used gemini-2.5-flash, gemini-2.5-flash-lite, and gemini-3.5-flash for inference and search grounding)
  • frontend (landing page): React + Vite, the branded landing page with a cool demo section!

The mobile app guides users through front and back photos with confirm and retake steps, downscales using Expo's ImageManipulator to compress them on-device, and sends them to the backend using multer.

The backend calls gemini-2.5-flash through Vertex AI with a schema-constrained JSON response, so we always get structured fields back rather than having to parse free text reponses from Gemini.

The preview form also auto-fills model, RAM and storage, a condition grade (from poor, good, excellent, new), creates a short description based on the photos, and a resale range, all editable before the user continues. Edited fields are debounced (AI is expensive!) and sent back to Gemini, which returns a short response for all five outcomes plus one recommended pick, shown as swipeable cards with the recommended choice always shown first.

Challenges we ran into

On the technical side, AI optimisation was a real constraint, initial API calls took around 16-20 seconds just to generate the device report. We realised that it was because we were sending uncompressed images that could be 3-5 MB each, which was alot of data. We had to compress the image files we send so photo uploads stayed fast without losing the detail Gemini needs to actually spot things like cracks and scratches.

Estimating resale values accurately was probably our biggest challenge. Rather than trusting a single model output, we rebuilt our existing estimating process into a process that spawns a gemini-2.5-flash-lite subagent to search the internet with the device's current specs to ground the estimate in real listings from eBay, Facebook Marketplace, and other authorised second hand dealers in Australia to provide as much context as possible to a final model that will estimate a price based on actual grounded context. This was much more accurate than our first iteration.

Accomplishments that we're proud of

  • Making our first app
  • Participating in our first hackathon
  • Working well as a team

What we learned

  1. Aesthetics is an extremely important part of building an app. A resale estimate feels a lot more credible presented as a clean callout rather than as a plain text block, and we underestimated how much that mattered until we built it. UX/UI too, even if our app worked beautifully internally, if it looked bad, no one would want to use it.

  2. We learned how to use Google's Agent Platform SDK for application purposes, from schema-constrained responses to keep outputs structured, to knowing when not to trust the model (like trade-in values) and grounding it with real data instead.

What's next for PocketValue

  • Bringing PocketValue to iOS and Android as native apps rather than an expo build, so more people can access it and we can further reduce e-waste and over-purchasing of technology
  • Creating an integrated marketplace, or integrating with pre-existing marketplaces, including exploring a second-hand marketplace built for the UNSW community specifically
  • Expanding the range of products PocketValue can scan beyond phones, laptops, and iPads to TVs, PCs, consoles, and cameras
  • Implementing a database of previous scans, so users can track a device's value over time and we can improve our estimates with real historical data
Share this project:

Updates

Submission history