https://github.com/jamessembukuttiarachchi/af_assignment1_personal_finance_tracker
Secure RESTful API for a Personal Finance Tracker System using Express JS (Node.js)
https://github.com/jamessembukuttiarachchi/af_assignment1_personal_finance_tracker
af application-framework expressjs finance-management frankfurter-api jwt-authentication nodejs restful-api
Last synced: 3 months ago
JSON representation
Secure RESTful API for a Personal Finance Tracker System using Express JS (Node.js)
- Host: GitHub
- URL: https://github.com/jamessembukuttiarachchi/af_assignment1_personal_finance_tracker
- Owner: JamesSembukuttiarachchi
- Created: 2025-03-26T16:12:32.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-26T16:33:47.000Z (over 1 year ago)
- Last Synced: 2025-06-27T22:05:41.878Z (about 1 year ago)
- Topics: af, application-framework, expressjs, finance-management, frankfurter-api, jwt-authentication, nodejs, restful-api
- Language: JavaScript
- Homepage:
- Size: 71.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 💰 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**
```sh
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**
```sh
npm install
```
### **3️⃣ Setup Environment Variables**
- Copy the `.env.example` file to `.env`
```sh
NODE_ENV=development
PORT=
MONGO_URI=your_mongo_db_url
JWT_SECRET=your_jwt_secret
```
### **4️⃣ Start the development server**
```sh
npm start
```
### **5️⃣ Run unit test and integration test**
```sh
npm test
```