(NOTE) Silahkan gunakan teknologi yang paling nyaman digunakan dengan hasil **pengerjaan yang cepat** dan **secure**. Tidak harus dikonversi ke codeigniter. Native PHP pun nggak masalah. Tapi harap diinformasikan ke saya apa yang akan dilakukan.
=== API
* base-url api dan api key dimasukkan ke config utk memudahkan perubahan, misal: `config/portal.php`
* gunakan api key tes: `61495f8a6c3ba61495f8a6c3bd`
* base-url api: `https://app3.mcreasindo.com/bmkg-sijafung2021-api`
* contoh php code utk akses endpoint `berita`:
```
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'app3.mcreasindo.com/bmkg-sijafung2021-api/berita',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_FAILONERROR => true,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'x-api-key: 61495f8a6c3ba61495f8a6c3bd',
'Content-Type: application/json',
),
));
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$response = curl_exec($curl);
curl_close($curl);
$result = json_decode($response);
echo "<pre>";
print_r ($result);
echo "</pre>";
```
=== Berita
1. endpoint api: `app3.mcreasindo.com/bmkg-sijafung2021-api/berita`
2. Page Home

* Tampilkan 3 data terbaru
* Tampilkan tanggal update
* Tampilkan yang is_published = 1
* On click `Berita Terkini`, open `Page Index Berita`
* On click judul berita, open `Page Detail Berita`
3. Page Index Berita

* Kolom Pertama
* 3 berita per page
* default image: `BMKG-1.jpg`
* If no image, use default image.
* Tampilan tanggal update
* On click Judul berita atau tombol read more, open `Page Detail Berita`
* Kolom Kedua
* Pencarian
* Lakukan pencarian berdasar konten berita
* Tambahkan key parameter `konten` pada api endpoint utk pencarian berdasar konten, contoh: mencari berita dengan konten "badan akreditasi" => `app3.mcreasindo.com/bmkg-sijafung2021-api/berita?konten=badan%20akreditasi`
* Berita Lainnya
* Random 3 berita
* Kategori
* ambil dari endpoint kategori+parameternya: `app3.mcreasindo.com/bmkg-sijafung2021-api/refkategori?tipe=1` (parameter `tipe` = 1 adalah kategori utk Berita)
* Jika tidak ada kategori, maka semua di hide saja.
4. Page Detail Berita
* Kolom pertama
* Kategori
* Hide if not available
* Comments di hide saja
* Tanggal: ambil dari tanggal update
* Konten Berita, cukup jelas
* Tags
* Hide if not available
* Comments di hide saja
* Kolom kedua
* Search Here, Popular Post, dan Categories disamakan dengan `Page Index Berita`
* Tags
* di rename jadi `Tag`
* ambil dari endpoint tag+parameternya: `app3.mcreasindo.com/bmkg-sijafung2021-api/reftags?tipe=1` (parameter `tipe` = 1 adalah tag utk Berita)
* Jika tidak ada tag, maka semua di hide saja.
* Time Schedule di hide saja
=== Pengumuman
* Idem Berita, tapi tanpa menampilkan image, baik untuk `Page Index Pengumuman`, maupun `Page Detail Pengumuman`
* endpoint pengumuman: `app3.mcreasindo.com/bmkg-sijafung2021-api/pengumuman`
* endpoint kategori: idem berita, namun ganti `tipe` = 2 (kategori utk Pengumuman)
* Tidak memiliki endpoint tag
=== Peraturan
* Idem Pengumuman, baik untuk `Page Index Peraturan`, maupun `Page Detail Peraturan`
* Endpoint peraturan: `app3.mcreasindo.com/bmkg-sijafung2021-api/peraturan`
* endpoint kategori: idem berita, namun ganti `tipe` = 4 (kategori utk Peraturan)
* Tidak memiliki endpoint tag
* Tambahkan link download file (jika ada data `file`) pada `Page Detail Peraturan`) dengan teks "unduh dokumen", Posisi di sebelah kanan Tanggal Update. On click, suggest unduh original filename.