💰Ai-powered SMS-based budgeting app for Africa's mobile-first fintech revolution
# BudgetBuddy
BudgetBuddy is an AI-powered personal finance MVP that helps you track your income and expenses in real-time, categorize transactions, and visualize your spending habits...
## 🛠 Tech Stack
- **Frontend:** Next.js + Tailwind CSS
- **Backend:** Express.js + MongoDB
- **Real-time:** Socket.IO
- **Testing:** Jest (backend)
- **CI/CD:** GitHub Actions
- **Deployment:** Vercel (frontend), Render/Railway (backend)
---
## 🏷️ Branches & Features
- `main`: Stable, production-ready codebase.
- `feature/validation`: Joi validation for transactions.
- `test/backend-api`: Automated Jest/Supertest API tests.
- `feature/admin-ui`: Admin dashboard for user management.
- `feature/live-typing`: Real-time typing indicator with Socket.IO.
- `feature/premium`: Monetization scaffold, `/pricing` page, premium flag.
## ✅ MVP Features
- User can input income and expenses
- Real-time updates of transactions
- Automatic categorization of transactions (basic rules/AI)
---
## 🗃️ Backend Models
### Transaction Model (`/server/models/transaction.js`)
The Transaction model represents a single financial transaction (income or expense) in the system.
| Field | Type | Required | Description |
|-------------|--------|----------|--------------------------------------------|
| amount | Number | Yes | Transaction amount (positive/negative) |
| date | Date | Yes | Date of the transaction |
| description | String | Yes | Description or note for the transaction |
| vendor | String | No | Vendor/merchant name (optional) |
| category | String | No | Category (auto-assigned, default: 'Uncategorized') |
| createdAt | Date | No | Timestamp when the transaction was created |
See the model definition in `/server/models/transaction.js` for details.
---
## 🧩 Backend Controllers
### Transaction Controller (`/server/controllers/transactionController.js`)
Ha …