/BNMO-backend

Primary LanguageTypeScript

BNMO-backend

BMO with an N backend

Link Penting

Link Deploy

Tech Stack

  • Express JS (Typescript)
  • Prisma ORM
  • PostgreSQL (DB Utama)
  • Redis (DB Cache)
  • Docker

Design Pattern

  • Singleton
    Dalam pembuatan instance dari service, hanya ada 1 instance yang akan di buat.
  • Chain of Responsibility
    Dalam penerimaan request, penerimaan request akan diteruskan oleh middleware hingga ke controller
  • Decorator
    Dikarenakan error yang terjadi secara asinkronus tidak bisa ditangkap oleh express, maka dibuat decorator middleware untuk menangkap error tersebut.

Penggunaan

  1. Duplikat .env.example yang berada pada folder menjadi .env dan isikan data yang sesuai dengan deskripsi dibawah ini
Variable Deskripsi
PORT Port yang akan digunakan
JWT_SECRET Secret yang digunakan untuk mengenkripsi token
JWT_EXPIRE Waktu token akan expired
DATABASE_URL URL database yang akan digunakan
REDIS_URL URL redis yang akan digunakan
GOOGLE_PRIVATE_KEY Private key (service account) yang akan digunakan untuk mengakses service google
GOOGLE_CLIENT_EMAIL Client email (service account) yang akan digunakan untuk mengakses service google
FOLDER_ID Folder ID (Google Drive) yang akan digunakan untuk menyimpan file yang diupload
EXCHANGE_RATE_API_KEY API key yang akan digunakan untuk mengakses service exchange rate
  1. Jalankan Server
    Jalankan command docker compose up untuk memulai proses build dan deploy di local.
    atau
    Install (npm install) dan jalankan command npm run build dan npm run start untuk memulai proses build dan deploy di local.

Tambahan

  • Dapat digunakan npx prisma studio jika telah menginstall prisma untuk melihat isi database.

  • Dapat digunakan npx prisma db seed untuk melakukan seeding database.

  • Akun admin yang pada seeder mempunyai username admin dan password admin.

  • Akun user yang pada seeder mempunyai password password.




Dibuat oleh Rifqi Naufal Abdjul (13520062)