dicoding-dev / assistest

Auto Review Submission for Backend Pemula
2 stars 2 forks source link

Review awal #1

Open cod3beat opened 1 year ago

cod3beat commented 1 year ago

@agissept ini adalah hasil review awalku ya:

REVIEW

Progresku untuk urusan containernya bisa dilihat di https://3.basecamp.com/5135326/buckets/30260627/card_tables/cards/5662164384 ya

Oh ya, pas aku baca Dockerfile yang ada di repo ini, ada perintah untuk menginstall net-tools. Itu digunakan untuk apa ya? Untuk memeriksa port ya?

agissept commented 1 year ago

Aplikasi perlu memastikan bahwa berkasnya adalah zip (atau archive yang boleh diproses)

Sekarang process download dan extrack submission aku serahkan ke ansible mas @cod3beat, jadi aplikasi ini cuman jalanin folder yang sudah diextrack. Concernnya adalah supaya semua aplikasi auto review tidak perlu membuat proses yang sama seperti download dan extract. Jadi proses ini bisa di simpan di ansible kan ya?

Aplikasi perlu memastikan ukuran dari berkasnya

Ini berarti di cek sebelum menjalankan npm install ya? terus kadang ada siswa yang mengirimkan node_modules juga, jadi apakah perlu dihapus dulu node_modulesnya lalu jalankan proses pengecekan ukuran berkasnnya?

Aplikasinya tidak perlu menjalankan perintah docker. Ini karena servicenya akan berada di dalam container. Aplikasi hanya perlu menyediakan command yang bisa dieksekusi oleh containernya, misalnya npm run assistes atau semacam itu.

Jalanin command sama container caranya gimana mas? berarti perlu bikin script baru buat jalanin command-command yang ada di comtainer?

Aplikasi jangan memeriksa port yang terbuka. Kalo submission siswa tidak mengembalikan hasil yang diminta oleh aplikasi, maka anggap saja submission tsb belum setup socket di port tersebut.

Ini concernnya apa ya mas? dan cara ngecek port tersebut aktif atau engga berarti lewat response proxy ya?

Oh ya, pas aku baca Dockerfile yang ada di repo ini, ada perintah untuk menginstall net-tools. Itu digunakan untuk apa ya? Untuk memeriksa port ya?

betul mas ini buat ngecek port

cod3beat commented 1 year ago

Jalanin command sama container caranya gimana mas? berarti perlu bikin script baru buat jalanin command-command yang ada di comtainer?

Iya betul @agissept .

Tapi kalo urusan download dan pemeriksaan validitas submission (memeriksa berkas adalah zip dan ukurannya benar) diserahkan ke service luar (misalnya ansible), maka sepertinya hanya 1 script aja yang perlu disediakan, yaitu jalanin proses reviewnya.

Kalo mengirim hasil review itu dijalankan siapa @agissept ? Aku nggak menemukan proses itu ketika review kodenya kemarin.

cod3beat commented 1 year ago

Sekarang process download dan extrack submission aku serahkan ke ansible mas @cod3beat, jadi aplikasi ini cuman jalanin folder yang sudah diextrack. Concernnya adalah supaya semua aplikasi auto review tidak perlu membuat proses yang sama seperti download dan extract. Jadi proses ini bisa di simpan di ansible kan ya?

Ini bisa dibuatkan service baru aja yang bisa dijalankan via container? Karena bahaya kalo proses extract ini nggak diisolasi dari fileysystem lainnya

Ini berarti di cek sebelum menjalankan npm install ya? terus kadang ada siswa yang mengirimkan node_modules juga, jadi apakah perlu dihapus dulu node_modulesnya lalu jalankan proses pengecekan ukuran berkasnnya?

Hmm repot juga kalo begitu. wkwkw. Yang diukur sih ukurang zipnya sebenarnya.

cod3beat commented 1 year ago

Ini concernnya apa ya mas? dan cara ngecek port tersebut aktif atau engga berarti lewat response proxy ya?

untuk mengurangi apa yang harus diinstall di imagenya. Sehingga ukuran image lebih kecil, dan nggak butuh proses macam2 yang tersedia di containernya. Ini akan mengurangi ruang gerak peretas bila dia bisa jebol aplikasinya.

Utk memeriksa apakah portnya aktif ato nggak lewat http response aja (dan iya lewat proxynya)

agissept commented 1 year ago

Jalanin command sama container caranya gimana mas? berarti perlu bikin script baru buat jalanin command-command yang ada di comtainer?

Iya betul @agissept .

Aku masih belum kebayang caranya buat script jalanin container. Apakah command npm install dan npm run disimpan di bash script? lalu bash scriptnya dijalankan dari Dockerfile?

Tapi kalo urusan download dan pemeriksaan validitas submission (memeriksa berkas adalah zip dan ukurannya benar) diserahkan ke service luar (misalnya ansible), maka sepertinya hanya 1 script aja yang perlu disediakan, yaitu jalanin proses reviewnya.

Kalo mengirim hasil review itu dijalankan siapa @agissept ? Aku nggak menemukan proses itu ketika review kodenya kemarin.

Kalo yang mengirim hasil review aku serahkan ke ansible mas

agissept commented 1 year ago

Sekarang process download dan extrack submission aku serahkan ke ansible mas @cod3beat, jadi aplikasi ini cuman jalanin folder yang sudah diextrack. Concernnya adalah supaya semua aplikasi auto review tidak perlu membuat proses yang sama seperti download dan extract. Jadi proses ini bisa di simpan di ansible kan ya?

Ini bisa dibuatkan service baru aja yang bisa dijalankan via container? Karena bahaya kalo proses extract ini nggak diisolasi dari fileysystem lainnya

Berarti proses extractnya di dalam container ya mas?

Ini berarti di cek sebelum menjalankan npm install ya? terus kadang ada siswa yang mengirimkan node_modules juga, jadi apakah perlu dihapus dulu node_modulesnya lalu jalankan proses pengecekan ukuran berkasnnya?

Hmm repot juga kalo begitu. wkwkw. Yang diukur sih ukurang zipnya sebenarnya.

Oke noted mas

agissept commented 1 year ago

Ini concernnya apa ya mas? dan cara ngecek port tersebut aktif atau engga berarti lewat response proxy ya?

untuk mengurangi apa yang harus diinstall di imagenya. Sehingga ukuran image lebih kecil, dan nggak butuh proses macam2 yang tersedia di containernya. Ini akan mengurangi ruang gerak peretas bila dia bisa jebol aplikasinya.

Utk memeriksa apakah portnya aktif ato nggak lewat http response aja (dan iya lewat proxynya)

Berari kalo response codenya 502 berarti portnya salah ya mas?

agissept commented 1 year ago

Mas @cod3beat ini nanti jalan di 1 container atau 2 container?

cod3beat commented 1 year ago

Aku masih belum kebayang caranya buat script jalanin container. Apakah command npm install dan npm run disimpan di bash script? lalu bash scriptnya dijalankan dari Dockerfile?

Oh, ini maksudnya kamu tinggal nyediakan npm scripts yang tinggal dieksekusi oleh containernya. Jadi nanti containernya itu tinggal jalanin perintah:

$ npm run download <link>
$ npm run extract <link>
$ npm run assistest
$ npm run xxx

Perintah di atas hanya contoh ya. Jadi semacam cli yang kamu sediakan, tapi via npm run.

Berarti proses extractnya di dalam container ya mas?

Iya @agissept , tapi ya mungkin perlu dijalankan oleh container yang berbeda. Yang fokus download submission

Berari kalo response codenya 502 berarti portnya salah ya mas?

Nah asumsinya gitu

cod3beat commented 1 year ago

Mas @cod3beat ini nanti jalan di 1 container atau 2 container?

Container yang dibuat akan sesuai fungsinya. Bisa jadi ada 3 container:

  1. container untuk download dan extract submission
  2. container untuk menjalankan assistes
  3. container untuk mengexport hasil
agissept commented 1 year ago

Mas @cod3beat ini nanti jalan di 1 container atau 2 container?

Container yang dibuat akan sesuai fungsinya. Bisa jadi ada 3 container:

  1. container untuk download dan extract submission
  2. container untuk menjalankan assistes
  3. container untuk mengexport hasil

Lalu di container mana aplikasi siswa dijalankan? apakah di container yang sama dengan assistest mas atau di container download dan extract submission?

cod3beat commented 1 year ago

Lalu di container mana aplikasi siswa dijalankan? apakah di container yang sama dengan assistest mas atau di container download dan extract submission?

Di volume yang bisa dibaca oleh container assistest. Makanya itu kenapa containernya butuh servicenya untuk bisa menerima inputan via npm run. Sebagai contoh npm run asistest /path/to/submissions

cod3beat commented 1 year ago

oh ya @agissept , model API di atas kan melalui npm run. Tapi kalo kamu mau memodelkan via cli juga ya gpp.

Misalnya npm run assistest review /path/to/submissions. Atau npm run assistest do <param1> <param2>, dst

agissept commented 1 year ago

nanti yang jalanin command docker run itu siapa mas @cod3beat ? apakah assistest atau script yang lain?

cod3beat commented 1 year ago

Service di luar asistest @agissept .

agissept commented 1 year ago

Service di luar asistest @agissept .

Aku masih bingung sih mas, aku kebayangnya malah gini

cod3beat commented 1 year ago

Kurang lebih seperti ini:

cc @habibimustafa ada masukan?

agissept commented 1 year ago

Kurang lebih seperti ini:

  • sebuah service (bisa jadi ansible bisa jadi bukan ansible) akan mengunduh submission
  • sebuah service mengekstrak submission
  • sebuah service akan menjalankan assistest via docker container. Misalnya docker run dicoding/assistest dengan beragam parameternya

    • di dalam container ini npm install dan npm run start, npm run postman, dan perintah lainnya akan dijalankan
  • sebuah service akan membaca hasil dari assistest dan mengirimkan ke dicoding.com

cc @habibimustafa ada masukan?

Aplikasi siswanya berarti dijalankan menggunakan npm run biasa mas @cod3beat ? dan dia dijalankan dari container dicoding/assistest?

cod3beat commented 1 year ago

Aplikasi siswanya berarti dijalankan menggunakan npm run biasa mas @cod3beat ? dan dia dijalankan dari container dicoding/assistest?

Iya @agissept . Kurang lebih sama seperti contoh container yang aku share di teams. Di situ ada 2 service yag berjalan:

  1. proxy
  2. web service

Jadi di 1 container akan ada beberapa service yg berjalan, salah satunya aplikasi yang dibuat siswa

agissept commented 1 year ago
  • di dalam container ini npm install dan npm run start, npm run postman, dan perintah lainnya akan dijalankan

Kalo script npm install, npm run start, dan npm run postman aku masukkan ke dalam aplikasi assistest gimana mas? jadi nanti assistest cuman punya 1 runner script aja. Misalkan

"scripts": {
    "assistest": "...."
  },
cod3beat commented 1 year ago

oh ya gpp @agissept . Terserah. Pokoknya perintah2 itu bisa dijalankan oleh service lain. Selama bisa seperti itu ya beres.

agissept commented 1 year ago

Aplikasi siswanya berarti dijalankan menggunakan npm run biasa mas @cod3beat ? dan dia dijalankan dari container dicoding/assistest?

Iya @agissept . Kurang lebih sama seperti contoh container yang aku share di teams. Di situ ada 2 service yag berjalan:

  1. proxy
  2. web service

Jadi di 1 container akan ada beberapa service yg berjalan, salah satunya aplikasi yang dibuat siswa

Kalo gini kayaknya engga perlu proxy di containernya, soalnya aplikasi siswa dan postman test berjalan di container yang sama

cod3beat commented 1 year ago

Kalo gini kayaknya engga perlu proxy di containernya, soalnya aplikasi siswa dan postman test berjalan di container yang sama

Iya nggak perlu @agissept .

agissept commented 1 year ago

mas @cod3beat , aku udah nyediain 1 runner scrpit. Contohnya kaya gini

npm run assistest -- -s "./downloaded-submissions/0000 folder_submission" -r ./result
cod3beat commented 1 year ago

ok siap @agissept