実習先について
PT Besq Sarana Abadi は、ゴム製品と金属の表面処理を手がけるメーカーで、ISO 9001:2015 の認証を受けています。工場は3交代制で24時間稼働しています。
生産の記録はまだ手作業でした。とくに間違いやすかったのは二つ。毎日の生産時間報告(Laporan Waktu Produksi、LWP)の計算と、機械ラインが止まっていた時間(ラインストップ)の記録です。
担当したこと
ウェブベースの工場生産管理情報システムを、データベースのスキーマから製造現場の作業者用画面まで、フルスタックで作りました。
ソフトウェアのほかに、社内ネットワーク設定の保守も担当範囲に含まれていました。詳細はここには書きません。
システムのつくり
SQLite データベースの上に、Go と Gin、GORM によるバックエンド。認証は JWT で、権限は管理者、マネージャー、チームリーダー、作業者の段階に分かれています。フロントエンドは SvelteKit(Svelte 5 Runes)です。
作業者は実際の機械に貼られた QR コードを読み取ってログインし(ブラウザ上の jsQR で読み取り)、サイクルタイムの記録、不良品(NG)の登録、LWP の送信を行います。管理職にはグラフのダッシュボードがあります。
判断と制約
システムを実際に使い始めてから、開発中には出なかった問題が二つ見つかりました。
JWT トークンの期限が切れて、シフトの途中で急に作業者が認識されなくなる。
グローバルな fetch インターセプターで解決しました。バックエンドからの応答をすべて一か所で確認し、401 を受け取ったらローカルの記憶を消してログイン画面に戻します。呼び出しごとではなく一か所で処理するので、処理から漏れるリクエストはありません。
日報の保存がマスターパラメーターのログと混ざる。 どちらも、はっきり分かれていないクエリの経路で保存されていて、その混ざり合いが誤ったデータを生んでいました。二つがはっきり分かれるまでクエリを整理しました。
結果と引き継ぎ
システムの最終的な性能は、企業側の指導担当者がテストしました。
実習期間の終わりに、コードベースと管理者権限を会社の IT チームに引き継ぎました。