yaberah portfolio

My求人 管理画面

CLIENT

株式会社TeraDox(自社サービス)

MEMBER

ディレクター、自分、サーバーサイドエンジニア

SKILL

フロントエンド、デザイン

DATE

2021年

ライフイベント業界(呉服業界、ウェディング業界、フォトグラファーなど)に特化した求人サイト「My求人」の管理画面のシステムリプレイスのプロジェクトにフロントエンジニアとして参加しました。
この管理画面は使用していたフレームワーク(Laravel nova)の特性上スケールしづらく、使用する顧客ユーザーの要望をプロダクトにすぐに反映できる状態ではありませんでした。そのため開発スピード向上を目的にデザイン・機能は変更せず、システムを以下の構成でリプレイスしました。

・サーバーサイド:Laravel(API)
・フロントエンド:Vue.js(Vue3)、TypeScript でのSPA構成

上記の構成はこれまで会社が経験したことがなく、チーム・個人としてもチャレンジングなプロジェクトとなりました。
My求人の管理画面のイメージ画像
リプレイス後のMy求人の管理画面。サイト全体がSPA構成となっている。(※実際のデータはマスクしています)

ページ/機能構成

・ログイン、パスワードリマインダー
・ダッシュボード
・アカウント管理
・応募管理
・求職者ユーザー管理 ・求人管理
・企業管理
・広告枠管理
(管理:新規作成/編集/削除)

プロダクト構成

APIベースでのプロダクトは経験がなかったため、さまざまな構成を調査・検討し、以下の技術や構成を採用しました。
・フロントエンドはRepository × Factoryパターンを採用
・サーバーサイドとのAPI連携のためにOpenAPI(Swagger)を使用
・状態管理ツールにPiniaを採用
・フロントエンドのバリデーションにvee-validate、スキーマ作成にyupを採用

ディレクトリ構成は以下のようになりました。
src
├─ assets
├─ components
├─ config
├─ factories
├─ repositories
├─ route
├─ stores
├─ types
└─ views

その他以下のような課題や悩んだポイントもありましたが、学習を重ね解決することができました。
・ログイン認証
・APIリクエスト時のエラーハンドリング
・権限別の表示分岐
・SPAでのルーティング処理
・フロントエンドのバリデーション時のTypeScriptでの型定義

このプロジェクト完遂後、機能の追加や社内や顧客からの要望がありましたが、クリーンな構成になったことで、いずれも迷うことなく素早く機能の追加を行うことができるようになりました。
また、SPAの構成になったことでフロントエンドのテストの重要性に理解が深まりました。現在はまだフロントエンドのテストはありませんが、チーム全体として大きく成長できたプロジェクトとなりました。