SubGuard is a comprehensive web application that helps users monitor their subscriptions, detect fraudulent transactions, and optimize their spending through AI-powered analysis.
- User Authentication: Secure signup/login with JWT tokens
- Subscription Management: Track and manage all your subscriptions
- Fraud Detection: AI-powered detection of suspicious transactions
- Gmail Integration: Automatic transaction monitoring via Gmail API
- CSV Upload: Manual import of bank/UPI transaction data
- Real-time Notifications: Email, SMS, and push notifications
- Analytics Dashboard: Comprehensive spending insights and forecasts
- Transaction Parsing: Extract structured data from transaction emails
- Subscription Detection: Identify recurring charges and subscriptions
- Fraud Analysis: Detect suspicious patterns and unauthorized transactions
- Smart Categorization: Automatically categorize transactions by type
SubGuard/
โโโ frontend/ # React.js application
โโโ backend/ # Node.js + Express API
โโโ nlp_service/ # Python Flask AI service
โโโ docs/ # Documentation
Frontend:
- React 19.1.1
- React Router 7.8.2
- Chart.js 4.5.0
- TailwindCSS (via inline styles)
Backend:
- Node.js + Express
- MongoDB with Mongoose
- JWT Authentication
- Gmail API Integration
- Twilio SMS Integration
AI/NLP Service:
- Python Flask
- NLTK + spaCy
- scikit-learn
- Custom fraud detection algorithms
- Node.js 16+
- Python 3.8+
- MongoDB
- Gmail API credentials
- Twilio account (for SMS)
- Clone the repository
git clone <repository-url>
cd subguard- Setup Backend
cd backend
npm install
cp .env.example .env
# Edit .env with your configuration
npm run dev- Setup Frontend
cd Hacktproject
npm install
npm start- Setup NLP Service
cd nlp_service
pip install -r requirements.txt
python app.pyCreate .env files in both backend/ and nlp_service/ directories:
Backend (.env):
PORT=5000
MONGODB_URI=mongodb://localhost:27017/subguard
JWT_SECRET=your-super-secret-jwt-key
GMAIL_CLIENT_ID=your-gmail-client-id
GMAIL_CLIENT_SECRET=your-gmail-client-secret
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
TWILIO_ACCOUNT_SID=your-twilio-sid
TWILIO_AUTH_TOKEN=your-twilio-token
NLP_SERVICE_URL=http://localhost:5001
FRONTEND_URL=http://localhost:3000- Sign up with email and password
- Verify email (optional)
- Login to access dashboard
- Manual Entry: Add subscriptions manually
- CSV Upload: Import bank statements
- Gmail Integration: Connect Gmail for automatic monitoring
- Gmail Watch: Monitor emails for transaction notifications
- AI Processing: Automatic parsing and classification
- Fraud Detection: Real-time fraud analysis
- Fraud Alerts: Immediate notification of suspicious transactions
- Renewal Reminders: Upcoming subscription renewals
- Spending Alerts: Budget threshold notifications
- Spending Trends: Monthly/yearly spending analysis
- Category Breakdown: Spending by subscription type
- Forecasting: Predictive spending analysis
- Recommendations: AI-powered optimization suggestions
POST /api/auth/register- User registrationPOST /api/auth/login- User loginPOST /api/auth/logout- User logoutGET /api/auth/me- Get current user
GET /api/subscriptions- Get all subscriptionsPOST /api/subscriptions- Create subscriptionPUT /api/subscriptions/:id- Update subscriptionDELETE /api/subscriptions/:id- Delete subscriptionPOST /api/subscriptions/upload-csv- Upload CSV file
GET /api/alerts- Get all alertsPOST /api/alerts/:id/resolve- Resolve alertPOST /api/alerts/:id/ignore- Ignore alert
GET /api/analytics/spending- Spending over timeGET /api/analytics/categories- Category breakdownGET /api/analytics/fraud-detection- Fraud statisticsGET /api/analytics/recommendations- AI recommendations
GET /api/gmail/connect- Get OAuth URLPOST /api/gmail/sync- Sync transactionsPOST /api/gmail/disconnect- Disconnect Gmail
The Python Flask service provides:
POST /analyze- Analyze multiple transactionsPOST /extract- Extract data from single transactionPOST /detect-fraud- Detect fraud in transactionPOST /classify-subscription- Classify subscription type
- Text Processing: NLTK + spaCy for advanced NLP
- Pattern Recognition: Regex patterns for transaction data
- Machine Learning: scikit-learn for classification
- Fraud Detection: Custom algorithms for suspicious activity
- JWT Authentication: Secure token-based auth
- Password Hashing: bcrypt for password security
- Rate Limiting: API rate limiting protection
- CORS Configuration: Cross-origin request security
- Input Validation: Comprehensive data validation
- Helmet.js: Security headers protection
{
firstName: String,
lastName: String,
email: String (unique),
phone: String,
password: String (hashed),
gmailConnected: Boolean,
notificationSettings: Object,
preferences: Object
}{
user: ObjectId,
name: String,
merchant: String,
amount: Number,
billingCycle: String,
nextBilling: Date,
status: String,
category: String,
usage: Object
}{
user: ObjectId,
type: String,
title: String,
description: String,
merchant: String,
amount: Number,
status: String,
severity: String,
metadata: Object
}-
Environment Variables
- Set production MongoDB URI
- Configure Gmail API credentials
- Set up Twilio for SMS
- Configure email SMTP settings
-
Database Setup
- Create MongoDB production database
- Set up indexes for performance
- Configure backup strategy
-
Server Configuration
- Use PM2 for process management
- Configure Nginx reverse proxy
- Set up SSL certificates
- Configure firewall rules
-
Monitoring
- Set up application monitoring
- Configure error tracking
- Set up performance monitoring
- Configure log aggregation
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue in the repository
- Check the documentation
- Contact the development team
- Mobile App: React Native mobile application
- Advanced AI: Machine learning model improvements
- Bank Integration: Direct bank API integration
- Multi-currency: Support for multiple currencies
- Team Features: Family/team subscription sharing
- API Marketplace: Third-party integrations
SubGuard - Protecting your finances, one subscription at a time! ๐ก๏ธ