# 概要
病院事業を展開している現職にて、予約システムの開発を行なった。
企画・仕様策定の上流工程からコーディング、スケジュール管理、運用まで幅広く行った。
ポジション的にはPM,EMに当たる。
# 課題
このシステムを開発するに至った背景は
・今まで使用していたSaasシステムと自社システムの連携ができないため
・予約の枠数などの詳細な設定ができず、経営として利益の最大化ができないため
である。
そのため、自社にて予約システムの開発を行うこととなった。
# 機能の詳細
このシステムには、予約データやスタッフのシフト、予約の枠数を自由に調整できる機能がある。
以下にシステムの機能の詳細を記載する。
## OPEツール
・スタッフのシフトを管理する機能
・特定の時間帯の枠数を増減させる機能
・設定変更による無効や予約を一覧表示する機能
## フロントエンド
・予約するスタッフの選択
・スタッフの予約可能な枠をカレンダー式で表示する機能
・予約に関するメール機能
・予約のキャンセル機能
# 技術(バックエンド・OPEツール)
予約情報を管理するOPEツールを1人で開発した。
複雑な処理を簡潔にするためデザインパターンであるForm Objectを使用したりなど、技術的な挑戦も行いつつ開発を進めた。
また予約情報をフロントエンドに渡すためのAPI開発も行った。
API開発は私含め2名のエンジニアで行った。
APIでは、スタッフが持つシフトを元に対応可能な予約の数を処理し、計算している。
技術はOPEツール、APIどちらもRuby on Railsを使用している。
# 技術(フロントエンド)
ユーザーが予約するためのWebアプリケーションである。
Vue.jsを使用して開発を行なっている。
こちらの大部分はフロントエンジニアの方が開発を行なったが、一部の機能を私が開発に着手した。
フロントエンドに興味があり、1からVue.jsの勉強を行い着手させてもらった。
内容的には予約のキャンセル機能を作成した。技術的にはvue-router, vuexも使用している。
# マネジメント
マネジメントの項目として、以下のことを主に行なった。
・スケジュールの管理
・ビジネスメンバーとの仕様の議論
・メンバーへの仕様の共有
特に自身の力を活かすことができた点は仕様の策定についてである。
予約システムの開発経験がメンバー全員なく、手探りの状況だった。
そのため仕様に不明確なことが多々あり、詰まるという課題があった。
これを解決するため、即座に関係者に質問、相談等を行い仕様の策定をすることを急いだ。
このアクションのおかげで、順調にプロジェクトを進めることができた。