Skip to content

Repository files navigation

NeverOut 📦

Smart Inventory for Smart Shopkeepers.

NeverOut is an AI-powered inventory management and alerting platform designed specifically for Kirana shopkeepers. It tracks stock levels, sends automated zero-click WhatsApp alerts before items run out, and uses machine learning to predict upcoming seasonal demand.

🚀 Features

  • Multi-Tenant Dashboard: Secure, isolated inventory management per user via Clerk authentication and MongoDB.
  • Automated WhatsApp Alerts: Twilio integration automatically sends warnings when stock drops below user-defined thresholds, and emergency alerts when items go out of stock.
  • ML Demand Insights: Analyzes past sales data using Scikit-Learn to predict seasonal peak/off-peak months and categorize products into High/Normal/Low demand.
  • Beautiful UI: A vibrant, scroll-animated landing page and interactive dashboard built using a custom design system with glassmorphism aesthetics.
  • Auto-Seeding: Automatically seeds new users with default grocery inventory and sample sales data so they can test the ML insights instantly.

🛠️ Tech Stack

Frontend

  • React.js + Vite
  • Clerk (Authentication)
  • Vanilla CSS (Custom Design System, Particles, Scroll Animations)
  • React Router

Backend

  • Python / Flask
  • MongoDB Atlas (Multi-tenant Database)
  • Twilio API (WhatsApp Messaging)
  • Scikit-Learn & Pandas (Machine Learning Engine)
  • PyJWT & Cryptography (Clerk Token Verification)

💻 Local Setup

1. Backend Setup

Navigate to the backend directory and install dependencies:

cd backend
python -m venv venv
source venv/bin/activate  # On Windows use: venv\Scripts\activate
pip install -r requirements.txt

Create a backend/.env file with the following:

DATABASE_URI=mongodb+srv://<username>:<password>@<cluster>.mongodb.net/?appName=NeverOut
CLERK_DOMAIN=your-clerk-domain.accounts.dev
TWILIO_ACCOUNT_SID=your_twilio_sid
TWILIO_AUTH_TOKEN=your_twilio_token
TWILIO_FROM_NUMBER=whatsapp:+14155238886
TWILIO_CONTENT_SID=your_twilio_template_sid
WHATSAPP_PHONE=whatsapp:+91<your_number>

Run the API:

python app.py

2. Frontend Setup

Open a new terminal in the root directory:

npm install

Create a .env file in the root directory:

VITE_CLERK_PUBLISHABLE_KEY=pk_test_...
VITE_API_URL=http://localhost:5000/api

Start the dev server:

npm run dev

🌐 Deployment Architecture

This application is designed to be split-deployed on Render.com:

  1. Backend deployed as a Python Web Service.
  2. Frontend deployed as a Static Site (Vite), communicating with the backend via the VITE_API_URL environment variable.

Built to help local shopkeepers sell smarter, not harder.

About

Grocery Stock and demand analysis platform

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages