-
Notifications
You must be signed in to change notification settings - Fork 56
Description
Type: Feature | Difficulty: Level 3 | Tags: Backend, AI-Logic, Optimization
Description: Currently, users manually select categories. This task involves building a backend engine that uses Natural Language Processing (NLP) or keyword-weighting to automatically categorize transactions based on their descriptions (e.g., "Starbucks" -> Food, "Shell" -> Transport) using both global and user-specific historical patterns.
Core Requirements:
Backend Logic: Create a PatternService that stores and learns from user corrections.
Mapping Engine: Use a fuzzy-matching library (like fuse.js or natural) to weigh description strings against category keywords.
Confidence Scoring: Only auto-apply if the confidence is >85%; otherwise, provide a "Suggested" badge in the UI.
Bulk Processing: An API endpoint to "Auto-Categorize All Uncategorized" expenses in a workspace.
Files to be changed: services/categoryService.js,
routes/expenses.js
, models/Pattern.js, public/api-integration.js,
public/index.html
.