Student Finance Intelligence Platform
CampusWallet is a student finance intelligence platform built using a microservices architecture. It leverages the PERN stack (PostgreSQL, Express, React, Node.js) for the core web application and a Python-based FastAPI microservice for machine learning functionalities like transaction classification, anomaly detection, and forecasting.
- Frontend: React.js dashboard for transaction input and insights visualization.
- Backend API: Node.js/Express server handling authentication, validation, database interactions, and routing requests to the ML service.
- ML Microservice: Python/FastAPI service responsible for ML predictions (classification, anomaly detection, forecasting).
- Database: PostgreSQL storing users, transactions, and cohort benchmark data.
- Transaction Classification: Automatically categorizes transactions as "wants" or "needs" using a Logistic Regression model trained on descriptions.
- Anomaly Detection: Flags unusual spending patterns using an Isolation Forest model to detect outliers based on historical category spending.
- Forecasting: Predicts next month's spending trends using time-series forecasting.
- Peer Benchmarks: Compares individual spending against cohort data to provide actionable insights.
- Node.js (v18+)
- Python (3.8+)
- PostgreSQL
- npm or yarn
Ensure PostgreSQL is running. Create a database for the project (e.g., campuswallet) and run the initial migrations/schema setup.
cd backend
npm install
# Set up your .env file with DATABASE_URL and PORT (e.g., 5000)
npm startcd ml-service
python -m venv venv
# Activate virtual environment
# Windows: venv\Scripts\activate
# Mac/Linux: source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8000cd frontend
npm install
# Set up your .env file with backend API URLs
npm run devOnce all three services (Backend on port 5000, ML Service on port 8000, and Frontend on port 3000/5173) are running, navigate to the frontend URL in your browser to access the CampusWallet dashboard.