Next: All transactions

This commit is contained in:
lokeshramchand-ctrl 2025-06-29 23:39:16 +05:30
parent 262ce76421
commit a309ec25e2
7 changed files with 2 additions and 128 deletions

View file

@ -1,11 +0,0 @@
const allowedOrigins = [
'http://localhost:5000',
'https://192.168.1.102',
'https://10.231.7.128',
'https://192.168.1.100',
'https://192.168.1.9',
]
module.exports = allowedOrigins

View file

@ -1,36 +0,0 @@
const mongoose = require("mongoose");
const connectDB = async () => {
try {
const conn = await mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
mongoose.set("strictQuery", false);
mongoose.set("toJSON", {
virtuals: true,
versionKey: false,
transform: (doc, ret) => {
delete ret._id;
return ret;
},
});
mongoose.set("toObject", {
virtuals: true,
versionKey: false,
transform: (doc, ret) => {
delete ret._id;
return ret;
},
});
mongoose.set("runValidators", true);
console.log(`✅ MongoDB Connected: ${conn.connection.host}`);
} catch (error) {
console.error(`❌ Error: ${error.message}`);
process.exit(1);
}
};
module.exports = connectDB;

View file

@ -7,7 +7,7 @@ const app = express();
app.use(express.json()); // to parse JSON
// Prediction route
const predictRoute = require('./routes/predict');
const predictRoute = require('./predict');
app.use('/api/predict', predictRoute);
// MongoDB connection

View file

@ -1,13 +0,0 @@
// models/transaction.js
const mongoose = require('mongoose');
const transactionSchema = new mongoose.Schema({
description: String,
amount: Number,
category: String,
date: { type: Date, default: Date.now },
});
const Transaction = mongoose.model('Transaction', transactionSchema);
module.exports = Transaction;

View file

@ -1,66 +0,0 @@
// routes/transactionroutes.js
const express = require('express');
const router = express.Router();
const axios = require('axios');
const Transaction = require('./models/transaction'); // ✅ lowercase filename
// Add transaction
router.post('/add', async (req, res) => {
try {
const { description, amount } = req.body;
const predictRes = await axios.post('http://192.168.1.9:5000/api/predict', { description });
const category = predictRes.data.category || 'Other';
const newTransaction = new Transaction({ description, amount, category });
await newTransaction.save();
res.status(200).json({
message: '✅ Transaction saved with category',
data: newTransaction,
});
} catch (err) {
console.error('❌ Error adding transaction:', err.message);
res.status(500).json({ error: err.message });
}
});
// Update budget
router.post('/update', async (req, res) => {
try {
const { budget } = req.body;
await BudgetModel.updateOne({}, { amount: budget }, { upsert: true });
res.status(200).json({ success: true });
} catch (error) {
res.status(500).json({ error: 'Failed to update budget' });
}
});
// Get transactions
router.get('/', async (req, res) => {
try {
const category = req.query.category;
let query = {};
if (category && category !== 'All') {
query.category = category;
}
const transactions = await Transaction.find(query).sort({ date: -1 });
res.status(200).json({
success: true,
data: transactions.map(tx => ({
id: tx._id,
description: tx.description,
amount: tx.amount,
category: tx.category,
date: tx.date,
})),
});
} catch (err) {
res.status(500).json({ error: err.message });
}
});
module.exports = router;

View file

@ -622,7 +622,7 @@ class _FinTrackHomePageState extends State<FinTrackHomePage>
primaryColor: primaryColor,
cardColor: cardColor,
floatingActionButtonLocation: FloatingActionButtonLocation.centerFloat,
floatingActionButtonLocation: FloatingActionButtonLocation.centerTop,
),
);
}