Smart micro-investing through automated spare change round-ups with AI-powered transaction categorization
Quantiml is a Progressive Web App (PWA) that helps you build wealth effortlessly by rounding up your discretionary spending and automatically investing the spare change in safe mutual funds. Unlike traditional savings apps, it uses intelligent NLP to categorize transactions—only rounding up non-essential purchases while protecting your necessary expenses.
The Problem: Saving money is hard. Traditional investment requires discipline, large amounts, and constant decision-making.
Our Solution: Automate micro-investments using the "round-up" method, but make it smarter:
- 📲 Transaction Detection: User inputs/pastes their bank SMS → System parses amount, merchant, date
- 🧠 AI Categorization: NLP engine categorizes as "Essential" (medical, bills, groceries) or "Discretionary" (entertainment, dining out)
- 💸 Smart Round-Off: Only discretionary spends get rounded up to nearest ₹10 (e.g., ₹247 → ₹250, spare = ₹3)
- 🎯 Auto-Invest: Accumulated spare change automatically invests in user-selected mutual funds
- 👨👩👧👦 Family Pooling: Combine spare change with family toward shared goals (vacation, emergency fund)
- 📊 AI Insights: Transparent explanations for every investment decision + market-based recommendations
Key Differentiator: Traditional apps like Deciml round off everything. We use NLP to protect essentials, making saving truly frictionless.
| Feature | Description |
|---|---|
| 🧠 NLP Categorization | 50+ keywords across 8 categories (medical, bills, EMI, grocery, entertainment, shopping, etc.) |
| ✅ User Override | Manually reclassify any transaction if AI gets it wrong |
| 👨👩👧👦Family Pool | Create shared goals, invite family via code, track contributions |
| 📊 Zerodha-Style Console | Portfolio charts (growth, allocation, category breakdown) with Recharts |
| 🤖 AI Agent Insights | Plain-English explanations: "Why this fund?", "Why this amount?", switching recommendations |
| 💰 Expanded Funds | 8 safe mutual funds (vs Deciml's 2): Liquid, Debt, Hybrid Conservative |
| 📱 PWA | Installable, offline access, push notifications |
| 🔐 Complete Flows | Login, KYC (multi-step UI), Onboarding, Withdrawal |
- Node.js 16+ (we use NVM)
- MongoDB (local or Atlas)
- npm or yarn
# 1. Clone the repository
git clone https://github.com/YOUR_USERNAME/Quantiml.git
cd Quantiml
# 2. Install dependencies
cd client && npm install
cd ../server && npm install
# 3. Set up environment (create server/.env)
echo "PORT=5000
MONGODB_URI=mongodb://localhost:27017/Quantiml
JWT_SECRET=your-secret-key-change-this" > server/.env
# 4. Start backend (Terminal 1)
cd server && npm run dev
# → Server running on http://localhost:5000
# 5. Start frontend (Terminal 2)
cd client && npm run dev
# → PWA running on http://localhost:3000Open browser: http://localhost:3000 🎉
- Sign Up: Any email/password (simulated auth)
- Skip KYC: Click through the 4-step flow (PAN, Aadhaar, Bank, Selfie)
- Set Goal: Choose goal type + target amount
- Select Funds: Pick 3-5 from 8 safe mutual funds
- Land on Dashboard: See your stats
- Go to "Add Transaction"
- Paste SMS or manually input:
Rs 1,234.50 debited from your account at Swiggy on 25-11-2024 - See real-time categorization: "Discretionary" (food delivery) → ₹5.50 roundoff
- Override if needed (toggle to "Essential")
- Click "Add Transaction" → Dashboard updates
- Dashboard: Quick stats, recent transactions
- Console: Charts showing portfolio growth, fund allocation, category distribution
- AI Insights: Read explanations like "Invested ₹234 in HDFC Liquid Fund because you accumulated 23 transactions over 2 weeks..."
- Create Pool: Name, goal, target (e.g., "Family Vacation - ₹50,000")
- Get Invite Code: Share with family
- Track Progress: See each member's contribution
- Unified Goal: All spare change pools toward one target
Frontend: React 18 + Vite 3.2 + Tailwind CSS + Zustand
Backend: Node.js + Express + MongoDB + JWT
Charts: Recharts (line, pie, bar charts)
PWA: Service Worker + Offline Cache + Manifest
NLP: Keyword-based categorization (50+ patterns)
Design: Fintech-premium aesthetic with glassmorphism, neon accents (#00D4FF, #00FF88), micro-animations
Quantiml/
├── client/ # React PWA
│ ├── src/
│ │ ├── pages/ # 9 pages (Login, Dashboard, Console, etc.)
│ │ ├── components/ # Button, Card, Input
│ │ ├── store/ # Zustand state management
│ │ └── utils/ # NLP categorization engine
│ └── dist/ # Production build (after npm run build)
│
├── server/ # Node.js API
│ ├── routes/ # API endpoints
│ ├── models/ # MongoDB schemas
│ └── services/ # Business logic
│
└── README.md
Current: Simulation prototype (manual SMS, mock funds, rule-based AI)
Production Upgrades:
- Webhook Automation: SMS Gateway APIs (Twilio) or Banking Aggregators (Plaid) for auto-detection
- Real Banking: UPI AutoPay (Razorpay), NEFT/IMPS for withdrawals
- Live Mutual Funds: BSE StAR MF API, real NAV data
- eKYC: UIDAI Aadhaar verification, Video KYC
- LLM AI Agent: GPT-4/Claude for personalized advice, market sentiment analysis
Compliance Needed: SEBI registration, AMFI certification, RBI payment license
Documented in: See full README sections on webhooks, banking APIs, LLM integration
Contributions welcome! For major changes:
- Fork the repo
- Create feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Open Pull Request
MIT License - See LICENSE
- SEBI registration as Investment Advisor
- Real API integrations (payment gateways, fund houses)
- Professional security audit
- Legal compliance (PMLA, KYC, eKYC via CERSAI)
All transactions and investments are simulated. Use for educational/demonstration purposes only.
- Inspired by Deciml (spare change investing)
- Zerodha Console (analytics design)
- Built with React, Vite, Tailwind CSS
- Charts by Recharts
- Icons by Lucide
- GitHub Issues: Report bugs or request features
- Email: dj0410joysar@gmail.com
- LinkedIn: dhruvjoysar
Built with ⚡ by Dhruv Joysar
Making micro-investing intelligent, one spare rupee at a time 💰