Skip to content

๐Ÿ” ScanScavvy โ€” A smart barcode scanner app built for the Walmart Hackathon, using React Native and Node.js. It scans products to reveal expiry/manufacture dates, nutritional data, recommends alternatives with similarity scores, reads details aloud, and lets users manage a cart with total cost calculation.

Notifications You must be signed in to change notification settings

Subhash-777/ScanScavvy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ›’ ScanScavvy

ScanScavvy is a smart barcode scanner app built for the Walmart Hackathon using React Native (Expo Go) for the frontend and Express.js (Node.js) for the backend.
It leverages ngrok to expose the backend server globally for real-time mobile interaction.


๐Ÿ’ก Project Idea

The app was designed to enhance in-store and online shopping experiences by:

  • ๐Ÿ“ฆ Scanning product barcodes
  • ๐Ÿ“… Displaying key product info: expiry date, manufacture date, and nutritional data (e.g., fat, protein composition)
  • ๐Ÿค– Recommending alternative products with a similarity score
  • ๐Ÿ—ฃ๏ธ Converting all product info into speech for accessibility
  • ๐Ÿ›๏ธ Adding products to a cart and calculating the total cost

๐Ÿš€ Features

  • ๐Ÿ” Real-time barcode scanning and product analysis
  • ๐Ÿง  Smart suggestions based on product similarity
  • ๐Ÿ—จ๏ธ Text-to-speech for accessibility
  • ๐Ÿ›’ Cart management with total price display
  • ๐ŸŒ Backend exposed globally via ngrok

๐Ÿงฉ Tech Stack

Part Technology
Frontend React Native + Expo Go
Backend Node.js + Express.js
Networking ngrok (for global tunnel)
Utilities Text-to-Speech, Similarity Logic

๐Ÿ› ๏ธ Getting Started

1. Clone the repo

git clone https://github.com/Subhash-777/ScanScavvy.git
cd ScanScavvy

2. Install dependencies

  • Backend:

    cd backend
    npm install
  • Frontend:

    cd ../frontend
    npm install

๐Ÿ’ก Running Locally

Backend

  1. Start your Express server:
    cd backend
    npm start
  2. In a separate terminal, launch ngrok:
    ngrok http 3000
  3. Copy the generated ngrok URL (e.g. https://abcd1234.ngrok.io)
    Update it in frontend/api.js as API_BASE_URL.

Frontend

  1. Start the Expo project:
    cd frontend
    expo start
  2. Scan the QR code with Expo Go app to launch on your device.

๐Ÿ“ File Structure

ScanScavvy/
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ index.js           โ† Express backend entry point
โ”‚   โ””โ”€โ”€ routes/            โ† Product routes and logic
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ App.js             โ† React Native main app
โ”‚   โ”œโ”€โ”€ api.js             โ† API endpoint (ngrok URL goes here)
โ”‚   โ””โ”€โ”€ components/        โ† UI elements
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ .gitignore

๐Ÿง  Updating API URL

Every time you restart ngrok:

  1. Run ngrok http 3000
  2. Copy the new URL (e.g., https://xyz.ngrok.io)
  3. Paste it into frontend/api.js
  4. Restart the frontend app

๐Ÿงช Troubleshooting

  • โŒ App not connecting to backend?

    • Check if ngrok is running and the new URL is correctly added.
    • Ensure backend server is running.
  • ๐Ÿ›‘ CORS or network errors in Expo?

    • Add cors middleware in backend.
    • Restart Expo and ngrok if needed.

๐Ÿ”ฎ Future Enhancements

  • ๐Ÿš€ Deploy backend to cloud (Heroku, AWS, etc.)
  • ๐Ÿ” Secure API with JWT authentication
  • ๐Ÿ›ข๏ธ Connect to database for persistent storage
  • ๐Ÿ“ฑ Polish UI and improve accessibility support

๐Ÿ™ Credits

Made by Subhash Powered by React Native, Express.js, ngrok, and creativity โœจ

About

๐Ÿ” ScanScavvy โ€” A smart barcode scanner app built for the Walmart Hackathon, using React Native and Node.js. It scans products to reveal expiry/manufacture dates, nutritional data, recommends alternatives with similarity scores, reads details aloud, and lets users manage a cart with total cost calculation.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published