/SimpleExpense-Tracker-API

API to track and manage your expenses, built with NestJS and MongoDB, with JWT authentication feature.

Primary LanguageTypeScript

Expense Tracker API

Expense Tracker Api

Deskripsi

Expense Tracker API adalah sebuah API yang dibangun menggunakan NestJS untuk melacak pengeluaran. API ini menyediakan fitur-fitur seperti mendaftar sebagai pengguna baru, otentikasi dengan JWT, menambah, memperbarui, menghapus, dan melihat pengeluaran dengan berbagai filter.

Fitur

  • Autentikasi JWT: Untuk melindungi endpoint dan mengidentifikasi pengguna.
  • Manajemen Pengeluaran: Menambah, memperbarui, menghapus, dan melihat pengeluaran dengan filter.
  • Kategori Pengeluaran: Groceries, Leisure, Electronics, Utilities, Clothing, Health, Others.

Teknologi yang Digunakan

  • NestJS: Framework untuk membangun server-side aplikasi.
  • MongoDB: Database NoSQL untuk menyimpan data pengeluaran.
  • JWT: Untuk otentikasi dan manajemen sesi pengguna.

Instalasi

Prasyarat

Pastikan Anda telah menginstal:

  • Node.js (versi terbaru)
  • MongoDB (berjalan di mesin lokal atau di server)

Langkah-langkah

Kloning repositori ini

git clone https://github.com/username/expense-tracker-api.git
cd expense-tracker-api

Instal dependensi

npm install

Buat file .env

Buat file .env di root proyek dan tambahkan konfigurasi berikut:

MONGO_URI=mongodb://localhost:27017/expense-tracker
JWT_SECRET=your_jwt_secret_key

Jalankan aplikasi

Untuk menjalankan aplikasi dalam mode pengembangan:

npm run start:dev

Jalankan pengujian

Untuk menjalankan pengujian E2E:

npm run test:e2e

Penggunaan Api

Mendaftar User Baru

  • Endpoint: POST /auth/signup
  • Body:
{
  "email": "user@example.com",
  "password": "password123"
}

Masuk

  • Endpoint: POST /auth/login
  • Body:
{
  "email": "user@example.com",
  "password": "password123"
}

Menambah Pengeluaran

  • Endpoint: POST /expenses
  • Header: Authorization: Bearer <JWT_TOKEN>
  • Body:
{
  "amount": 100,
  "description": "Grocery shopping",
  "category": "Groceries",
  "date": "2023-10-10"
}

Melihat Pengeluaran

  • Endpoint: GET /expenses
  • Header: Authorization: Bearer <JWT_TOKEN>