Proyek ini adalah API backend untuk sistem dompet digital (e-wallet) yang menyediakan beberapa fitur dasar seperti registrasi akun, cek saldo, deposit, penarikan, dan transfer antar akun. API ini dibangun menggunakan Express.js, TypeScript, dan Prisma ORM dengan PostgreSQL sebagai database.
- Register: Membuat akun baru dengan nama dan email.
- Check Balance: Memeriksa saldo akun.
- Deposit: Menambah saldo ke akun.
- Withdraw: Menarik saldo dari akun.
- Transfer: Transfer uang antar akun.
- Riwayat Transaksi: Melihat riwayat transaksi untuk suatu akun.
Pastikan Anda telah menginstal perangkat berikut:
- Node.js (LTS Version 23.0)
- Expresss.js
- Typescript
- PostgreSQL
-
Clone Repository:
git clone https://github.com/sultonsabillar/digital-wallet-api.git
cd digital-wallet-api -
Install Depedency:
npm install
-
Setup Database:
Buat file
.envmasukan konfigurasi berikutDATABASE_URL="postgresql://user:password@localhost:5432/your_database_name?schema=public"npx prisma migrate dev --name init
npx prisma generate
-
Ganti script package.json:
"scripts": { "start": "ts-node src/services/server.ts" }
-
Run Server:
npm run start
-
File Direktori:
digital-wallet-api/ ├── node_modules ├── prisma │ ├── migrations │ ├── schema.prisma ├── src │ ├── controllers │ └── accountController.ts │ └── balanceController.ts │ └── depositController.ts │ └── transactionsController.ts │ └── transferController.ts │ └── withdrawController.ts │ ├── routes │ └── accountRoutes.ts │ └── balanceRoutes.ts │ └── depositRoutes.ts │ └── transactionsRoutes.ts │ └── transferRoutes.ts │ └── withdrawRoutes.ts │ └── services │ └── accountService.ts │ └── balanceService.ts │ └── depositService.ts │ └── transactionsService.ts │ └── transferServices.ts │ └── withdrawServices.ts ├── .env ├── .gitignore ├── package-lock.json ├── package.json ├── tsconfig.json ├──server.ts └── README.md
-
Postman:
Register
POST :
http://localhost:3000/api/accountsDeposit
POST :
http://localhost:3000/api/accounts/:id/depositBalance
GET :
http://localhost:3000/api/accounts/:id/balanceWithdraw
POST :
http://localhost:3000/api/accounts/:id/withdrawTransfer
POST :
http://localhost:3000/api/accounts/:id/transferTransactions
GET :
http://localhost:3000/api/accounts/:id/transactions