### プロジェクト概要
プログラミングスクールRareTechサイトの完全リニューアル。
私は講師陣が講義登録を行えるようzod, react-hook-formを利用したフォームの実装を担当した。
さらには、個別カウンセリング予約ページの実装を担当。ユーザーがカレンダーから予約日程を選択し、クライアント側の状態管理を用いて次ページに選択した日程を表示させつつ、ユーザーの情報をフォーム入力していただくというもの。
### チーム情報
PdM・PjM2名、デザイナー3名、フロントエンド3名、バックエンド2名、インフラ2名
### 使用した技術
TypeScript, React.js, Next.js, GraphQL, TailwindCss
### 開発・実装内容A
【概要】講師陣が講義登録を行えるようzod, react-hook-formを利用したフォームの実装を行なった。
【課題・問題点】GraphQLを利用し、バックエンド側のデータベースからプルダウンのリストを取得する点。
一方、登録をする際に入力した情報をデータベースにPOSTする点。
【打ち手】バックエンド側のデータベースからリストを取得することに関し、pages配下でSSRを実装し、apollo ClientによりGraphQLのクエリを用いてバックエンド側のデータベースから取得した。一方フロントからバックエンド側のデータベースにPOSTすることに関し、axiosを用いてNext.jsにデフォルトで存在しているNodeサーバーへHTTPリクエストを送り、apollo ClientによりGraphQLのクエリを用いてバックエンド側のデータベースへミューテーション処理を行うことで実現できた。
### 開発・実装内容B
【概要】個別カウンセリング予約フォームの実装を行なった。
【課題・問題点】ユーザーがカレンダーにより日時を選択し、予約フォームページに飛び、ユーザーの名前・メールアドレス・年齢等入力し、予約するという実装。予約フォームページでユーザーが選択した日時を表示する点。
【打ち手】リロードした際に個別カウンセリングTOPページに遷移するという実装であったため、Redux, Contextという概念をなくした。その場でのクライアント側の状態管理で良いということに気づき、React hooksのuseStateを用いて実現できた。