Frontend Svelte ini dikembangkan sebagai bagian dari proyek RAPID Website, berfungsi sebagai interface reporting untuk dataset yang telah dikembangkan, serta mendukung proses analisis cepat secara efisien.
Pada dasarnya frontend ini dibuat berdasarkan kebutuhan masing-masing site agar dapat menjawab masalah dan case yang sering terjadi pada operasional.
Pada project frontend ini menggunakan framework dari Sveltekit.
http://ip:port]front/
├── .svelte-kit/ # svelte config, `npm install` to create this
├── build/ # builder file (ready to prod)
├── logs/
│ ├── app-(year-month-date).log
│ ├── error-(year-month-date).log
│ ├── exception-(year-month-date).log
│ └── rejection-(year-month-date).log
├── node_modules/
├── src/
│ ├── lib/
│ │ ├── api/
│ │ │ ├── fuel-time-loss.js # fetching data Engine Detection
│ │ │ └── socket.js # connection with socket (backend)
│ │ ├── components/
│ │ │ ├── Header.svelte
│ │ │ └── Sidebar.svelte
│ │ ├── data/
│ │ ├── services/
│ │ │ ├── shift-fueltimeloss-download.js
│ │ │ └── shift-fueltimeloss-shiftconvert.js
│ │ └── services/
│ │ └── loading.js
│ ├── routes/
│ │ ├── (user)/ # Routing for user/member only
│ │ │ ├── engine-detection/
│ │ │ │ ├── current/ # Current and Shiftly Report
│ │ │ │ │ └── +page.svelte
│ │ │ │ └── historical/ # Historical and Monthly Report
│ │ │ │ └── +page.svelte
│ │ │ └── +layout.svelte # Layout Engine Detection
│ │ ├── +layout.js # Off the SSR
│ │ ├── +layout.svelte # Render loading state
│ │ └── +page.svelte # Title, and Home Page
│ ├── app.css
│ └── app.html
├── static/
│ ├── fontawesome/
│ ├── fonts/ # in use
│ └── Komatsu_favicon_64.png
├── .env # database url (check notion or ask administrator)
├── .gitignore
├── .npmrc/
├── ecosystem.config.cjs # configuration for pm2 with rapid-backend aplication name
├── jsconfig.json
├── package-lock.json
├── package.json
├── README.md
├── svelte.config.js
└── vite.config.ts
You can preview the production build with npm run preview.
To deploy your app, you may need to install an adapter for your target environment.
# Clone the repository
git clone <repository-url>
# Navigate to project directory
cd folder
# Install dependencies
npm install
# Create .env file in root directory with following variables
VITE_URL_API='http://ipserver:port/api/v2'
VITE_URL_SOCKET = 'http://ipserver:port'
# run apps
npm run dev
# Build the project
npm run build
# Start production server
npm run preview
Pastikan .env sudah disesuaikan dengan server nya
Pastikan folder berikut sudah tersedia
# to create build folder
npm run build
Install pm2
# install pm2
npm install -g pm2
Cek file dan folder berikut
# check pm2 folder
npm root -g
Install pm2-installer
Download pm2-installer here.
Ini digunakan untuk membuat service pm2.exe (PM2) pada server windows, sehingga ketika user / user admin logout maka apps tetap berjalan dan apps bisa diakses oleh server manapun yang terhubung dengan server apps production.
pm2 ZIP file
# update terlebih dahulu jika menggunakan versi lama
# karena pm2-installer membutuhkan pm2 terupdate
npm install pm2@latest -g
npm pm2 update
# (opsional) memastikan skrip startup PM2 juga sesuai dengan versi terbaru.
pm2 unstartup
pm2 startup
# membuat pm2 pack untuk di download atau diinstall di server site
npm pack pm2
Install node.js dan npm
adminhere# cek node version
node -v
# cek npm version
npm -v
Install dan Configure pm2-installer
Langkah ini universal, jadi bisa dilakukan pada step process Rapid API, Rapid Socket, ataupun Rapid Front. Karena pm2-installer ini adalah proses pembuatan service yang akan membungkus keseluruhan aplikasi.
C:\# mengubah lokasi instalasi global npm
npm run configure
Hal ini di lakukan agar directory file npm perlu diubah yang sebelumnya perlu masuk ke user terlebih dahulu (C:\Users\DIGITALROOMPC04\AppData\Roaming\npm\node_modules\...), lalu akan dipindahkan di C:\ProgramData\npm
Install pm2 global
Sebelum melakukan installment pm2 secara global, perlu diketahui terlebih dahulu apakah server site tersebut online atau offline. Karena keduanya memiliki treatment proses yang berbeda. Terdapat 2 cara sesuai berdasarkan server nya apakah offline atau online.
PENTING! Masuk ke server menggunakan user admin!
Online ServerJika server site online, maka module javascript dapat di install melalui npm dari internet. Hal yang perlu dilakukan adalah sebagai berikut
# install pm2 globally
npm install -g pm2
C:\ProgramData\npmnomor 4Offline ServerJika server site offline, maka module javascript tidak dapat di install melalui npm dari internet. Hal yang perlu dilakukan adalah sebagai berikut
nomor 2# install pm2 globally
npm install -g ./pm2-5.x.x.tgz
# ganti nama file sesuai dengan nama file yang di copy paste
C:\ProgramData\npmnomor 4Start application
(powershell recommended)# Masuk ke directory project FRONT
cd "C:\KMTSFile\Rapid-PTVI\front"
# Run the apps
pm2 start ecosystem.config.cjs --env production
# save pm2
pm2 save
api dan socket!Setup pm2-installer
# Agar PM2 menyala otomatis saat Windows booting tanpa perlu login user.
npm run setup
Jika ingin melakukan update pada aplikasi maka ada 2 section yang perlu dilakukan, yaitu pada development server (local pc / local server) dan production server (site server)
Pastikan .env sudah disesuaikan dengan server nya
Pastikan folder berikut sudah tersedia
# to create build folder
npm run build
Create ZIP Folder
Matikan Service PM2 (Opsional)
Ini diperlukan jika :
Untuk menonaktifkan atau stopped servive PM2 yang sedang berjalan ada beberapa cara yang dapat dilakukan.
Services lalu cari PM2, ataucommand prompt# Untuk melihat service PM2
sc query pm2.exe
# Untuk stop service PM2
sc stop pm2.exe
Copy paste file zip
Karena pada poin nomor 3 di Development Server Side sudah create zip file, maka copy paste file tersebut ke directory aplikasi
Lalu extract dan reaplace file dan folder yang diperlukan untuk update proses
Restart Apps
Diperlukan restart apps pada level pm2 (bukan pm2-installer). Adapun cara yang dapat dilakukan adalah sebagai berikut :
# reload
pm2 reload rapid-front
# cek status
pm2 status
# cek semua apps berjalan
pm2 list