/snacker

Primary LanguageJavaScriptMIT LicenseMIT

SNACKER 🍫

SNACKER is an innovative vending machine system that seamlessly integrates hardware and software. This system allows users to select, order, and purchase snacks via a dedicated web app, generating a unique QR code for each order, which can be scanned at the vending unit.

Features ⚙️

  • Wallet-Based System: Streamlines transactions for frequent users. 💸
  • QR Code Integration: Each order generates a unique QR code for easy vending. 📲
  • Seamless Communication: Smooth interaction between the Raspberry Pi and the web app through a shared database. 🤝
  • Progressive Web App (PWA): Ensures the app is accessible and performs well on all devices. 📱

Tech Stack 🛠️

  • Frontend:

    • Next.js
    • Tailwind CSS
    • ShadCN
    • Zustand
  • Backend:

    • Node.js
    • Express
  • Database:

    • Firebase
  • Authentication:

    • Clerk
  • Payments:

    • Razorpay
  • Testing:

    • Cloudflare
  • Hosting:

    • Vercel

How It Works 🚀

  1. Order & Payment: Users select and order snacks via the web app, paying through the wallet system.
  2. QR Code Generation: A unique QR code is generated for each order.
  3. Vending: Users scan the QR code at the vending machine to retrieve their items.
  4. Smooth Operation: The Raspberry Pi, connected to the vending unit, communicates with the web app via Firebase.

Setup & Installation 🛠️

  1. Clone the repository:

    git clone https://github.com/yourusername/SNACKER.git
  2. Install dependencies:

    npm install
  3. Set up external services:

    • Set up your own Razorpay, Clerk, and Firebase accounts.
    • Use the environment variables shown in the .env.local.sample file.
    • Replace the placeholder values in .env.local.sample with your actual account values and rename the file to .env.local.
  4. Run the app:

    npm run dev

Team & Acknowledgements 🙌

This project was made possible through the dedication and hard work of a 10-member team, along with the invaluable support of our faculty advisors.

License 📄

This project is licensed under the MIT License.