このレポジトリは、Web開発の「フロントエンド」「バックエンド」「デプロイ」のスキルを身につけてもらうために作った学習用レポジトリです。
Webエンジニア就職・転職を目指している方 は、このレポジトリと同じものを実装できるようになったら就職・転職活動を開始しても問題ないでしょう。
詳細は以下の記事にまとめたので、Webエンジニアを目指している方は、そちらもご覧いただけたらと思います。
↓
【Webエンジニアになりたい人へ】これができれば開発の仕事に参加できるっしょ(就職・転職)
以下の画像をクリックするとYouTubeに移動します。
このレポジトリで習得できるスキルは以下の通りです。
- フロントエンド
- Next.js(React)を使ったフロントエンド開発
- Redux Toolkit(状態管理)
- 通常のReduxのようなState管理
- RTK Queryを使ったAPIのやりとり & レスポンスデータのキャッシュとリセット
- その他細かいところ
- 環境変数の取り扱い方
- 特定の文字列の置換(「http(s)://~」部分をリンカブルにする)
- 未ログイン時のリダイレクト処理
- リフレッシュトークンを使った、認証トークンの自動更新(ページ更新時)
- バックエンド
- NestJSを使ったAPI開発
- NestJSの環境変数の取り扱い方
- Validation PipeとDTOを使った、リクエストボディのバリデーション処理
- CORSの設定
- Cookieを活用した認証トークンのやりとり
- SendGridを使ったメール送信(ユーザー登録時のメール確認に利用)
- Dockerを使ったローカルDBの構築(PostgreSQLを利用)
- Prismaを使ったNestJSとDBの連携(ORM)
- Prismaを使ったDBマイグレーション(テーブルの構築)
- デプロイ周り
- Heroku
- GitHubと連携した自動デプロイ
- パイプラインの利用
- 環境変数の設定
- アドオンの利用(今回はPostgreSQLの無料利用枠を使っている)
- Vercel
- GitHubと連携した自動デプロイ
- 環境変数の設定
- モノレポ構成となっているので、Vercel上でビルド設定のカスタマイズが必要
- Heroku
ざっと思い浮かんだものを羅列していますが、もしかしたら抜けているものもありません。
僕が今まで作ってきた学習教材の中で、このレポジトリの学習に関連するものを以下にまとめておきます。
- フロントエンド
- (無料)React × Redux Toolkit × TypeScript勉強会
- TypeScriptでのReactの書き方を学習できる
- TypeScriptでのRedux Toolkitの書き方を学習できる
- ReactとRedux Toolkitの連携方法を学習できる
- (無料)Next.js & TypeScript体験シリーズ
- Next.jsの基本的な使い方や概念を学習できる
- TypeScriptでのNext.jsの使い方を学習できる
- (無料)HTML&CSS速習教室
- HTMLとCSSの基本を学習できる
- (有料)Front Hacks
- HTMLとCSSの基本を学習できる
- JavaScriptの基本を学習できる
- DOM操作を学習できる
- Promise, async/awaitを使った非同期処理を学習できる
- Node.jsの基本操作を学習できる
- Reactを学習できる
- Reduxを学習できる
- Gitを学習できる
- GitHubを学習できる
- (無料)React × Redux Toolkit × TypeScript勉強会
- バックエンド
- (無料)YouTubeの広告情報を自動収集する開発講座
- NestJS, Docker, Prismaの学習ができる
- (無料)バックエンドの基本知識
- HTTPメソッド, HTTPステータスコードの意味がわかる
- (無料)JavaScriptバックエンド編 > express【Webフレームワーク】 > APIサーバーを作る
- Webフレームワークの基本
- ルーティングの概念を学習できる
- APIサーバーを作る
- HTTPメソッドに応じたルーティング処理、Postmanを使ったAPIの動作確認方法を楽手できる
- Webフレームワークの基本
- (無料)YouTubeの広告情報を自動収集する開発講座
- その他
- (無料)コマンドライン
- 基本的なコマンド操作を学習できる
- (無料)Git
- Gitの概念を学習できる
- Gitの操作の細かい部分は「 Front Hacks 」 で学習できる
- (無料)GitHub
- GitHubにコードをアップする方法やプルリクエストの作成方法を学習できる
- GitHubの細かい部分は「 Front Hacks 」 で学習できる
- (無料)コマンドライン
以下のLINE公式アカウントまでご連絡ください。
上記ページの「LINE@への登録はこちらから」の部分のボタンからLINE公式アカウントに登録できます。
何から手をつければ良いかわからない方向けに、「このような順番で実装すれば良いよ」という流れを以下に記述しておきます。
この開発の流れが絶対というわけではないので、以下の流れだと実装しづらいという場合はご自身の方法で進めていただけたらと思います。
- フロントエンドとバックエンドを1つのレポジトリで管理する(モノレポ構成)
- 【バックエンド】NestJSでAPIの開発環境の用意する
- 【バックエンド】Dockerを使って、ローカルにRDBの環境を用意する(PostgreSQL)
- 【バックエンド】DBのテーブル構成を考える
- 【バックエンド】Prismaでテーブルを構築する(migration)
- 【バックエンド】必要なAPIを洗い出す
- 【バックエンド】API実装(ユーザー登録する機能)
- 【バックエンド】ValidationPipeとDTOでバリデーションを楽にする
- 【バックエンド】API実装(メール認証する機能)
- 【バックエンド】API実装(ログインする機能)
- 【バックエンド】トークン情報をCookieで管理する
- 【バックエンド】Guardsを使って認証チェックをする
- 【バックエンド】API実装(ログアウトする機能)
- 【バックエンド】API実装(認証トークンをリフレッシュする機能)
- 【バックエンド】API実装(パスワードリセットをリクエストする機能)
- 【バックエンド】API実装(パスワードをリセットする機能)
- 【バックエンド】API実装(投稿作成する機能)
- 【バックエンド】API実装(投稿一覧を取得する機能)
- 【バックエンド】API実装(投稿削除する機能)
- 【フロントエンド】Next.jsでフロントエンドの開発環境を用意する
- 【フロントエンド】3つのページを用意する(新規登録、ログイン、投稿一覧)
- 【フロントエンド】全ページで共通して使うコンポーネントを作成する(Layout, Header, Footer)
- 【フロントエンド】Redux Toolkitの雛形を用意する
- 【フロントエンド】新規登録ページに必要なコンポーネントを用意する
- 【バックエンド】特定のURLからのアクセスのみを許可する(CORSの設定)
- 【フロントエンド】Redux Toolkitでユーザー登録の状態を管理する
- 【フロントエンド】ログインページに必要なコンポーネントを用意する
- 【フロントエンド】Redux Toolkitでログインの状態を管理する
- 【フロントエンド】Headerにログアウトボタンを用意する
- 【フロントエンド】Redux Toolkitでログアウトの状態を管理する
- 【フロントエンド】未ログイン時のリダイレクト処理を実装する
- 【フロントエンド】投稿一覧を取得する(RTK Queryを利用)
- 【フロントエンド】取得した投稿一覧を表示する
- 【フロントエンド】投稿一覧のページング機能を実装する(react-paginateを利用)
- 【フロントエンド】投稿フォームを用意する
- 【フロントエンド】新規投稿する(RTK Queryを利用 + キャッシュのリセット)
- 【フロントエンド】既存の投稿を削除する(RTK Queryを利用 + キャッシュのリセット)
- 【フロントエンド】ページアクセス時に認証トークンをリフレッシュする(Redux ToolkitのSliceを利用)
- 【デプロイ + バックエンド】Heroku パイプラインを使う準備をする
- 【デプロイ + バックエンド】プルリクエスト作成時、レビューアプリが自動デプロイされるのを確認する
- 【デプロイ + バックエンド】プルリクエストをクローズすると、自動でレビューアプリが削除されるのを確認する
- 【デプロイ + バックエンド】GitHubのmainブランチ更新時に、バックエンドが自動デプロイされるのを確認する
- 【デプロイ + フロントエンド】VercelとGitHubレポジトリを連携して、ビルド設定をカスタマイズする
- 【デプロイ + フロントエンド】プルリクエストを作成すると、自動でレビューアプリが作成されるのを確認する
- 【デプロイ + フロントエンド】プルリクエストをクローズすると、自動でレビューアプリが削除されるのを確認する
- 【デプロイ + フロントエンド】GitHubのmainブランチ更新時に、フロントエンドが自動デプロイされるのを確認する