ポートフォリオを作ろうと思っても、多くの人が最初に悩むのはここです。
- 何を作ればいいかわからない
- どんな機能を入れればいいかわからない
- READMEに何を書けばいいかわからない
- 面接でどう説明すればいいかわからない
この悩みを解決するために、この記事では、 Web系転職向けのポートフォリオ設計テンプレート を紹介します。
ポートフォリオ設計テンプレート
まず、アプリを作る前に以下を整理しましょう。
- アプリ名
- アプリの概要
- 想定ユーザー
- 解決したい課題
- 作成した理由
- 使用技術
- 主な機能
- 画面一覧
- DB設計
- API設計
- 工夫した点
- 苦労した点
- 今後の改善点
- 面接で話すポイント
このテンプレートに沿って考えるだけで、かなり実務っぽいポートフォリオになります。
記入例
アプリ名
StudyLog
アプリ概要
学習内容を記録し、他のユーザーの学習記録も閲覧できるWebアプリです。
未経験からエンジニアを目指す人が、学習の継続と振り返りをしやすくすることを目的に作成しました。
想定ユーザー
- 未経験からエンジニア転職を目指している人
- 学習記録を残したい人
- 他の人の学習方法を参考にしたい人
解決したい課題
プログラミング学習は継続が難しく、自分が何を学んだか振り返りにくいという課題があります。
そこで、学習内容を投稿形式で記録し、他の人の投稿も見られるようにすることで、 学習の継続を支援するアプリを作成しました。
機能一覧テンプレート
以下のように整理します。
- ユーザー登録
- ログイン
- ログアウト
- 学習記録投稿
- 投稿一覧表示
- 投稿詳細表示
- 投稿編集
- 投稿削除
- カテゴリ検索
- キーワード検索
- バリデーション
- レスポンシブ対応
機能をただ並べるだけではなく、 なぜその機能を入れたのか も説明できるようにしましょう。
たとえば、 「カテゴリ検索機能は、React、TypeScript、AWSなど、学習ジャンルごとに投稿を探しやすくするために実装しました」 のように書けると良いです。
技術構成テンプレート
- フロントエンド:React / TypeScript
- スタイリング:Tailwind CSS
- バックエンド:Node.js / Express
- DB:PostgreSQL
- ORM:Prisma
- 認証:JWT
- デプロイ:Vercel / Railway
技術選定では、流行っているから使っただけでは弱いです。
以下のように説明できると良いです。
- Reactはコンポーネント単位でUIを分割しやすく、学習記録の投稿フォームや一覧画面を再利用しやすいと考えて採用しました。
- TypeScriptは型を使うことで、APIレスポンスやフォーム入力値の扱いを安全にするために採用しました。
- PrismaはDB操作を型安全に行いやすく、SQLに慣れていない段階でも構造を理解しやすいと考えて採用しました。
READMEテンプレート
# StudyLog
## 概要
学習内容を記録し、他のユーザーの学習記録も閲覧できるWebアプリです。
## 作成背景
プログラミング学習では、継続と振り返りが難しいと感じました。
そこで、学習内容を投稿として記録し、他の人の学習内容も参考にできるサービスを作成しました。
## URL
https://example.com
## 使用技術
- React
- TypeScript
- Node.js
- Express
- Prisma
- PostgreSQL
- Tailwind CSS
- Vercel
- Railway
## 主な機能
- ユーザー登録
- ログイン
- 投稿作成
- 投稿編集
- 投稿削除
- 投稿検索
- カテゴリ機能
## 工夫した点
- フロントエンドとバックエンドを分離して実装しました
- APIレスポンスの型を意識して実装しました
- 投稿フォームにバリデーションを入れました
- レスポンシブ対応を行いました
## 苦労した点
- 認証処理でトークンの扱いに苦労しました
- CORSエラーの原因調査に時間がかかりました
- デプロイ時に環境変数の設定で詰まりました
## 今後の改善
- テストコードの追加
- 画像アップロード機能
- いいね機能
- コメント機能 面接での説明テンプレート
このアプリは、未経験からエンジニアを目指す人が学習内容を記録し、 振り返りやすくするために作成しました。
単なるメモアプリではなく、投稿・検索・カテゴリ機能を入れることで、 他の人の学習内容も参考にできるようにしています。
技術面では、ReactとTypeScriptを使ってフロントエンドを作成し、 Node.jsとExpressでAPIを実装しました。 DB操作にはPrismaを使い、ユーザー情報や投稿内容を管理しています。
特に苦労したのは認証機能です。 ログイン状態の管理や、認証が必要なAPIの制御で詰まりましたが、 リクエストヘッダーやトークンの流れを確認しながら実装しました。
まとめ
ポートフォリオで大事なのは、ただ作ることではありません。
- なぜ作ったか
- 誰の課題を解決するか
- どんな技術を使ったか
- どこを工夫したか
- 何に苦労したか
- 今後どう改善するか
ここまで整理できると、面接でもかなり話しやすくなります。