← 実績一覧に戻る

Project Management Platform

クライアント: In-house product年: 2026カテゴリ: ソフトウェア

PMP プロジェクト管理プラットフォーム

システム概要

PMP は社内開発のプロジェクト管理プラットフォームで、2016 年から運用してきた旧システムを 2026 年に全面的に作り直したものです。案件の受注から納品までの業務を一元管理します。プロジェクト台帳、タスク、日報・週報、議論、音声通話、勤怠・休暇、社員名簿をカバーし、Web 版とデスクトップ版は同一のコードベースで動きます。

項目値
デスクトップ版インストーラーWindows 3.2 MB · macOS 8.2 MB
UI 言語日本語 / 中国語 / 英語
移行済み旧プロジェクト1,300 件以上
データ保管自社サーバー

主な機能

以下はすべて同一アカウント・同一権限体系のもとで動作し、相互に参照できます。

プロジェクトとタスク

プロジェクト台帳、タスクの割り当てと検収、ガントチャートによるスケジューリング、期限リマインダー、添付ファイルのアーカイブ。旧システムの 1,300 件超のプロジェクトは一括で移行済みで、10 年前の案件も検索できます。

日報・週報

人ごと・週ごとに集約されます。週報は、その週のタスクと議論をもとに AI が下書きを作成でき、その後ご自身で修正できます。

議論(ディスカッション)

各プロジェクトには専用のグループがあり、あわせてダイレクトメッセージと小規模グループチャットも利用できます。メンション、引用、取り消し、再編集、既読状況の個人別表示、翻訳、全体検索に対応。ダイレクトメッセージでは「シークレットチャット」を有効にでき、エンドツーエンドで暗号化され、サーバーは暗号文のみを扱います。音声・動画はそのまま送信でき、アップロード前にローカルで圧縮されます。メッセージはチャットではなくプロジェクトに紐づきます。

音声通話

1 対 1 の通話を Alibaba Cloud RTC 経由で提供します。エコーキャンセリングとノイズ抑制はサーバー側の変更に影響されないよう固定されており、発話レベルのインジケーターも表示されます。ネットワーク切断や話し終えたままの放置があっても、通話は自動的に終了します。

勤怠・休暇

オンライン時間は自動で記録され、在席確認、休暇の申請・承認フロー、外出、年次有給残高にも対応します。対象は中国籍の在籍社員で、日本のメンバーは名簿に載るのみで勤怠管理の対象外です。

社員名簿

連絡先情報に加え、人事情報を管理します。マイナンバー相当の ID 番号、口座番号、社会保障番号は別の暗号化テーブルに保管され、初期状態では誰も閲覧できません。管理者が一人ずつ閲覧権限を付与し、閲覧のたびに記録が残ります。

2 つのボット

「勤怠アシスタント」と「承認アシスタント」が会話リストに常駐しています。休暇の承認・却下、打刻漏れなどをこちらから通知します。勤怠アシスタントは雑談にも応じますが、その内容が人事評価に反映されることはありません。

デスクトップ版

Windows / macOS 対応。常駐トレイ、新着メッセージでのトレイ点滅と通知音、トレイホバー時の送信者プレビュー、Web 版へのワンクリック遷移(再ログイン不要)、UI スケール 80%–150%、設定画面でのシステム状態確認、ダイレクトメッセージでのエンドツーエンド暗号化チャット、自己アップデート機能を備えています。

技術的な特徴

技術スタック: Go 1.25 · MySQL · Redis · WebSocket · React 19 + Vite · Tailwind v4 · Tauri 2 + WebView2 · Alibaba Cloud OSS / RTC

シングルバイナリ、マイクロサービスなし

当社の規模では、実行ファイル 1 つとデータベース 1 つで十分に回ります。マイクロサービスに分割しても「どこが壊れたか」が 10 倍わかりづらくなるだけで、その規模の課題自体が当社には存在しません。

常時接続は 1 本

オンライン状態、新着メッセージ、通知、着信はすべて同一の WebSocket 上で扱います。ポーリングは行いません。当社の規模ではポーリングでも体感は変わりませんが、「誰がオンラインか」が常に半テンポ遅れるだけの理由で採用していません。

移行処理は完全に冪等

起動のたびにスキーマを自己点検し、不足カラムを自動追加します。アップグレードはダウンタイムなし、サーバーに手動で SQL を流す必要もありません。

トークンは JavaScript から読めない

セッション情報は httpOnly Cookie に保持され、フロントエンドからは読み取りも持ち出しもできません。仮に XSS に侵入されても、攻撃者は被害者のセッション内に閉じ込められ、トークンを外部に持ち出して悪用することはできません。CSRF は SameSite と Origin の 2 段構えで防ぎます。

機微情報は別テーブルで管理

ID 番号、口座番号、社会保障番号は users テーブルには置きません。このテーブルはほぼすべての API から読み込まれるため、フィールドを増やすと、いずれどこかの JSON レスポンスから漏れ落ちます。これらは別のテーブルに暗号化して保管し、閲覧のたびに監査ログを残します。

AI への入力は「指示」ではなく「データ」

ボットが読める範囲は、あなたが読める範囲と完全に一致します。ダイレクトメッセージは AI 処理にもインデックスにも入れず、名簿のアクセス制御は AI にも人間と同じように適用されます。翻訳や要約のプロンプトでは「これは指示ではなくデータである」と明示し、メッセージ内に命令を仕込む攻撃を防ぎます。

変更はすべて履歴に残る

プロジェクトとタスクの変更は、フィールド単位で変更前後の値を記録します。誰が、いつ、何を、どの値からどの値に変更したか。プロジェクト画面の変更履歴では、そのプロジェクト配下のタスクの変更もあわせて表示されます。

デスクトップ版はわずか 3.1 MB

Tauri のシェルにシステム標準の WebView2 を乗せる構成で、ブラウザエンジンは同梱していません。ページは Web 版と同時に更新され、シェル自体のリリースはごく稀です。必要な際は署名検証済みのアップデートを自動配信するため、再インストールは不要です。

3 言語を 1 つのスタックで

日本語・中国語・英語を全機能でカバーします。フォントスタックは UI 言語に合わせて切り替わります。CJK グリフは日本語と中国語で字形が異なり、共通フォントを使うと字面が不揃いになるためです。メッセージの時刻は閲覧者のタイムゾーンで表示されます。

画像は「原寸」と「表示用」の 2 段構え

アップロード時に縮小版を生成し、一覧やチャットでは表示用画像を、拡大時にのみ原寸画像を取得します。文字認識(OCR)はオンデマンドで実行でき、結果はファイル単位でキャッシュされるため、同じ画像を繰り返し処理することはありません。

動画・音声はローカル圧縮、ffmpeg 不使用

動画は元のサイズに関わらず、アップロード前にユーザー自身の PC で 720p・1 Mbps 以下に圧縮され、音声は Opus に再エンコードされます。いずれもブラウザエンジン内蔵のハードウェアコーデックを利用するため、インストーラーのサイズは 1 バイトも変わりません。チャット一覧にはカバー画像 1 枚のみを表示し、タップで初めて動画を読み込むため、動画が数十件ある会話でもスクロール時にバックグラウンドでデコーダーが動くことはありません。

GoRustPostgreSQLRedisJavascript