Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

Protoforio

初心者エンジニアのためのポートフォリオお題生成アプリ

Protoforioは、簡単なアンケートフォームへの解答から、AI(Local Deepseek or Gemini API)によるフィードバックを受け取ることで、初心者エンジニアが自身のポートフォリオを作成するためのお題を生成するアプリケーションです。 image


目次


主な特徴

  • フォーム入力からAIフィードバック
    ユーザが簡単なアンケートフォームに解答するだけで、バックエンドのAPIおよびFastAPIで起動したDeepseekが解析し、適切なポートフォリオのお題をjson形式のフォーマットをもとに表示。

  • 分散システム構成

    • フロントエンド: Next.js
    • AIバックエンド: FastAPI、Deepseek(ローカル)、PostgreSQL
    • 認証バックエンド: Hono.jsを使用し、独自のトークン(メール/OAuthベース)によるユーザ情報管理
  • その他の機能

    • テスト(pytest、vitest)
    • CI/CD環境(現在開発中)
    • ユーザの履歴確認機能(ログインユーザのみ)
    • セキュアなセッション管理(Redis)

注: 過去に実装していたTF-IDF、BERT、LocalStorageによるトークン保管は、サンプルデータ不足やセキュリティの観点から削除済みです。


ユーザーフロー

  1. アカウント登録

    • Google OAuth 2.0 を利用したアカウント登録
      image
  2. アンケートフォームの解答

    • 興味のあるエンジニアの種類
      (例:フロントエンド、バックエンド、AI、モバイル)
    • 興味のあるプログラミング言語の選択
      • ※エンジニアの種類に応じた言語リスト(例:モバイルエンジニアの場合はKotlinが表示される)
    • 学習方針の選択
      (例:初心者向け、ステップアップ)
    • 興味のある分野の選択
      (例:健康、スポーツ、ゲーム、音楽)
      image
  3. フォーム送信と結果取得

    • フォーム送信時に、バックエンドAPIへリクエストを実施
    • FastAPIで起動したDeepseekが解析し、結果をJSON形式で返却
    • ログイン状態の場合は、ユーザの履歴としても保存
  4. 結果出力

    • 正しいフォーマットで結果を表示
    • 自動スクロールでユーザにフィードバックを即座に提示
      image
  5. 履歴確認

    • ログイン済みの場合、履歴ページから過去の解答とフィードバックの詳細を確認可能
  • 一覧ページ image
  • 詳細ページ image

技術構成

フロントエンド

  • Next.js を利用したUI実装
  • shadcn/ui によるコンポーネントライブラリの活用

AIバックエンド

  • FastAPI によるAPIサーバ
  • Deepseek を利用したAIフィードバック解析
  • PostgreSQL によるデータ保存

認証バックエンド

  • Hono.js を用いた独自認証API
  • PostgreSQL による認証データ管理
  • 詳細は 認証APIリポジトリ を参照

インフラ

  • AWS EC2インスタンスとdockerによるコンテナ管理
  • 認証機能は以前はSupabaseやcloudSQLを検討(現状はコンテナ内PostgreSQLへ移行)
  • デプロイ先にも以前はfly.ioを試験運用

コンテナおよびパッケージ管理

  • Docker / docker-compose
  • bun / npm(Prisma対応のためのマルチステージビルド)

セッション管理

  • Redis によるセッション管理

テスト・CI/CD

  • pytest(APIテスト)
  • vitest(認証APIテスト)
  • Github Actions(CI/CD)
    • EC2インスタンスにデプロイ
    • 現在認証のrepoのみ対応

今後の展望

  • AWSエコシステム活用の最大化

  • ユーザ同士のコミュニティ機能

    • ex: 作成した作品のリンク添付,閲覧,フィードバック機能
  • Deepseekの安定化
    出力結果により発生する500内部エラーの改善

  • デプロイ環境の整備
    より安定した環境構築のための各種ツールの導入

  • テストカバレッジの向上
    ユニットテスト、統合テストのさらなる充実

  • プロンプト改善
    AIフィードバックの精度向上を目指したプロンプトの最適化

  • Deepseek環境のアップグレード
    上位モデル(14B→32B)の採用検討(現在はパフォーマンスの問題から14Bにスケールダウン)

  • ユーザフィードバック機能の充実

    • 作成作品のリンク添付
    • 簡易掲示板によるコメント・いいね機能の実装
  • access tokenの期限切れを自動で更新

  • Amazon bedrockによる対応


キーワードマッチング時に雑に使っていたDB

image

上記内容は、プロジェクトの現状および今後の展望を反映したものです。実際の開発状況に応じて随時更新していく予定です。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages