## プロジェクト概要
Nuxt.js2系で動いている美容師向けのサービスをNext.jsにリプレイスするプロジェクトです。
## チーム情報
フロントエンドエンジニア: 4名
テスト: 1名
デザイナー: 1名
## 担当
- PM、EM
- メンバーの採用
- フロントエンド実装(リード)
- 設計
- 開発
- コードレビュー
- テストディレクション
## 開発環境
Next.js, Nuxt.js, TypeScript, Node.js, Storybook, Vitest, Jotai, React Query, React Hook Form, CSS Modules, Sass, Radix UI, Headress UI, ESLint, scaffdog, Express, Prisma
※全て私が技術選定をしました
## 開発メンバーの採用活動
プロジェクトを進行するにあたり、社内にフロントエンドに精通しているメンバーがいませんでした。
EMも担っていることもあり、採用活動からスタートしました。
スケジュール的に主に業務委託の採用をメインに活動し、書類審査〜面談まで全て対応しました。
自身のSNSからも募集をし、1名採用費用0で採用しました。
現在社員の採用も実施しており、書類審査、カジュアル面談、1次面接を担当しています。
## プロジェクトの課題
社員は私1人で、他4名は業務委託メンバーでスケジュールがある中でのリプレイスプロジェクトだった為、コードの品質や設計のばらつきが懸念されていました。
その為、他メンバーがJoinするまでにscaffdogを用いて、基盤コードの自動生成を構築しました。
pageの設定ファイル、コンポーネントの記述ファイルを中心に設定し、
コマンドを入力と質問に答えるだけで、
Page, Component, Storybookの基盤コードを作成できるようにしコーディング規則がばらつかないよう準備しました。
全てのComponentにStorybookを使用する方針で実装しました。
またApi部分ではReact Queryを用いてベースとなるファクトリー関数を実装しました。
この関数を使うことで、後から加わる開発者がスムーズに同じ設計でApi部分の実装ができるようにし、煩雑になりがちなキャッシュのkeyを自動で管理できるよにしました。
## 実装内容(詳細)
※apiは全てある状態で、Nuxt.js2系が既に動いている状態のため、既存のNuxt.js2系のコードを読みながらNext.jsに移行していくような作業
1. 基本的にベースとなる基盤コードの実装を中心に行なった
基盤コードの実装を主に担当し、ページの移行タスクは業務委託のメンバーにお願いしました。
コードレビューと品質管理、社内の調整業務を行いました
2. 決済機能のフロント実装
決済に関わるフロントエンドの実装は私が担当しました。
Next.jsとapi routes, 既存のExpressサーバーを用いて、セキュアに実装しました。
3. 既存サービスのUI・UX改善のアプローチ
ただ移行するだけでなく、既存サービスのUI・UXの改善を実施しながら行いました。
具体的にいうと、社内の営業CSメンバーから、ユーザーから上がってきている改善点をヒアリングし、外部のデザイナーに落とし込みながらユーザー体験の向上に心がけました。
またデザインも整備されていない状態だった為、これを機にXD→Figmaへのデザイン移行も実施しました。