BMO with an N backend
- Express JS (Typescript)
- Prisma ORM
- PostgreSQL (DB Utama)
- Redis (DB Cache)
- Docker
- 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.
- 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 |
- Jalankan Server
Jalankan commanddocker compose up
untuk memulai proses build dan deploy di local.
atau
Install (npm install
) dan jalankan commandnpm run build
dannpm run start
untuk memulai proses build dan deploy di local.
-
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 passwordadmin
. -
Akun user yang pada seeder mempunyai password
password
.