# C-Talk Backend Service
## Persiapan
---
Software yang dibutuhkan untuk menjalankan service backend ini
- Nodejs (Sebagai software utama untuk menjalankan service)
- NPM (Sebagai manajemen dependencies yang dibutuhkan oleh service)
- Docker (Container untuk menjalankan service)
- PostgreSQL (Sebagai database yang dibutuhkan oleh service)
- Redis (Untuk menyimpan berbagai cache yang dibutuhkan oleh service)
- MinIO (Untuk menyimpan file-file yang diperlukan oleh service)
## Menjalankan Service
---
Langkah-langkah untuk install dependencies dan menjalankan service
- Buat berkas ENV (.env) dengan konfigurasi sebagai berikut:
```
NODE_ENV=
PORT=
BASIC_USER=
BASIC_PASS=
BULL_USER=
BULL_PASS=
JWT_KEY=
CRYPT_IV=
CRYPT_KEY=
SMTP_USER=
SMTP_PASS=
PGHOST=
PGPORT=
PGUSER=
PGPASSWORD=
PGDATABASE=
REDIS_HOST=
REDIS_PORT=
REDIS_AUTH=
MINIO_WEB=
MINIO_SERVER=
MINIO_PORT=
MINIO_ID=
MINIO_KEY=
MINIO_SSL=
MINIO_BUCKET=
```
- Lalu jalankan perintah `npm install` untuk install module yang dibutuhkan dan jalankan dengan menggunakan `npm start`
```sh
$ npm install
$ npm start
```
## Memeriksa error pada kode dan memastikan code style sesuai format
---
Untuk cek error pada kode
```sh
$ npm run lint
```
Untuk memperbaiki simple error pada kode
```sh
$ npm run lint:fix
```
## Deployment
---
Untuk running service pastikan Nodejs version yang terinstall adalah `Node >= 14` atau `node:alpine >= 14` jika menggunakan kontainer seperti docker
## Dibuat menggunakan
---
* [Express] - Rest Framework yang digunakan
* [NPM] - Manajemen dependency
* [Docker] - Manajemen kontainer