Skip to content

JamesSembukuttiarachchi/af_assignment1_personal_finance_tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

💰 Personal Finance Tracker API

A finance management system built with Node.js, Express, MongoDB, and JWT authentication.
It allows users to manage transactions, set budgets, track goals, and receive notifications.


📌 Features

User Authentication – Register, Login, JWT-based security
Multi-Currency Support – Currency conversion using Frankfurter API
Recurring Transactions – Automate future transactions
Budget Management – Track spending by category
Financial Goals – Set savings goals and track progress
Notifications – Get alerts for upcoming transactions and budget limits
Reports & Analytics – Generate financial summaries
Full Test Coverage – Unit & Integration tests with Jest & Supertest


🛠 Tech Stack

  • Backend: Node.js, Express.js
  • Database: MongoDB, Mongoose
  • Authentication: JWT (JSON Web Tokens), bcryptjs
  • Testing: Jest, Supertest, MongoMemoryServer
  • Logging: Winston, Morgan
  • Background Jobs: Node-cron (for scheduled tasks)
  • Currency Conversion: Frankfurter API

🚀 Project Setup

1️⃣ Clone the Repository

git clone [https://github.com/your-username/project-rakindum.git](https://github.com/SE1020-IT2070-OOP-DSA-25/project-JamesSembukuttiarachchi.git)
cd project-JamesSembukuttiarachchi
cd personal-finance-tracker

2️⃣ Install Dependencies

npm install

3️⃣ Setup Environment Variables

  • Copy the .env.example file to .env
NODE_ENV=development
PORT=
MONGO_URI=your_mongo_db_url
JWT_SECRET=your_jwt_secret

4️⃣ Start the development server

npm start

5️⃣ Run unit test and integration test

npm test

About

Secure RESTful API for a Personal Finance Tracker System using Express JS (Node.js)

Topics

Resources

Stars

Watchers

Forks