Software Architecture pada Yuk — Recycle

Endrawan Andika Wicaksana
PPL A-4 YUK RECYCLE
2 min readApr 2, 2019

Halo, perkenalkan nama saya Endrawan Andika Wicaksana, bisa dipanggil Endrawan atau Endra. Pada mata kuliah Proyek Perangkat Lunak (PPL) Fasilkom UI, saya berada pada proyek Yuk — Recycle dan berperan sebagai Hacker.

Pada blog kali ini saya akan menjelaskan software architecture pada proyek Yuk — Recycle.

Proyek Yuk — Recycle memiliki 3 jenis aplikasi yaitu backend, mitra app, dan customer app. Untuk mitra app dan customer app berbentuk apk sedangkan untuk backend menggunakan server yang disediakan oleh PPL Fasilkom UI.

Berikut software architecture pada proyek kami:

Mobile app (mitra app dan customer app) berkomunikasi dengan backend menggunakan REST. Untuk beberapa fitur pada mobile app kami menggunakan third party libraries seperti firebase cloud messaging (untuk push notification) dan berkomunikasi dengan services tersebut.

Pada backend kami menggunakan docker untuk deploy api. Kami memiliki 2 dockerized environment (container) yaitu go(lang) backend api yang didevelop dan postgresql untuk database. Kedua container tersebut berada satu docker network yang sama agar dapat berkomunikasi. Untuk beberapa fitur pada backend kami menggunakan third party libraries seperti firebase cloud messaging (untuk push notification) dan berkomunikasi dengan services tersebut.

Kami menggunakan portainer sebagai GUI untuk memanage docker.

Berikut Dockerfile yang kami gunakan

FROM golang:latestCOPY . /go/src/PPLA4/backendWORKDIR /go/src/PPLA4/backendRUN go get ./...ENTRYPOINT ["go", "run", "main.go"]

Dan berikut docker-compose.yml yang kami gunakan

version: '2'services:  db:    image: postgres:alpine    environment:      POSTGRES_NAME: postgres      POSTGRES_PASSWORD: visiland      POSTGRES_USER: postgres    volumes:      - db-data:/var/lib/postgresql/data    ports:      - 5433:5432  app:    container_name: yuk-container    build: .    image: 'registry.docker.ppl.cs.ui.ac.id/ppla4/yuk-recycle-api'    environment:      db_name: postgres      db_pass: visiland      db_user: postgres      db_type: postgres      db_host: db      db_port: 5432      token_password: qwertyuiopasdfghjklzxcvbnm    ports:      - 8000:8000    depends_on:      - db    links:      - db:5432volumes:  db-data:    driver: local

Sekian blog dari saya. Terima kasih sudah membaca.

--

--