Antonio Natthan Krishna - 13521162
- Clone this repository
git clone https://github.com/natthankrish/Labpro_SingleServiceBE.git
- Change the current directory to
Labpro_SingleServiceBE
folder
cd Labpro_SingleServiceBE
- Build and run the container
Your app should be running at port :80 or just simply open localhost
docker-compose up --build
Aplikasi akan berjalan pada port 3000 dengan database pada port 5432. Database yang digunakan PostgreSQL.
-
Template Method Pattern
BarangAgent dan PerusahaanAgent merupakan template method yang dibutuhkan oleh fungsi fungsi controller. Fungsi controller akan memanggil template function pada BarangAgent dan PerusahaanAgent sesuai dengan karakteristik yang dibutuhkannya. Pembangunan BarangAgent dan PerusahaanAgent didasarkan pada entitas Barang dan Perusahaan yang menjadi struktur dari tabel. -
Mediator
Folder Agent berisikan mediator antara Folder Entitas dan Folder Controller. Hal ini dimaksudkan agar controller tidak secara langsung menyentuh database melainkan dengan pertolongan agent yang memegang kendali atas entitas entitas pada folder Entity -
Composite
Function routes terdiri atas repository user, barang, dan perusahaan yang dibangun SATU KALI selama berjalannya aplikasi. Fungsi lain yang memerlukan repository tersebut mendapat data melalui passing parameter dari function routes.
PostgreSQL, ExpressJS
-
Single Responsibility Principle
Setiap kebutuhan sudah dipecah menjadi fungsi fungsi yang hanya memiliki SATU tujuan. Sehingga, tidak terdapat fungsi dan entitas yang menangani dua hal sekaligus. -
Open Closed Principle
Apabila diperlukan penambahan route maka dapat dibuat controller baru yang sesuai TANPA mengubah agent yang sudah ada. Apabila sebaliknya terdapat perubahan algoritma pada agent, maka kita tidak perlu merubah apapun yang ada pada controller. -
Liskov Substitution Principle
Tidak ada inheritence yang digunakan dalam repository ini. -
Interface Segregation
Setiap controller dan agent dibangun berdasarkan entitas yang ditanganinya. -
Dependency Injection
Tidak ada penggunaan dependency injection dalam repository ini.