GitSim

https://github.com/KinuGra/tosho-2509-front

Next.js

AWS

Python

MariaDB

EC2

Git初心者のための開発シミュレーションアプリ

fe01

zatunohito

推しアイデア

チーム開発のシミュレーションをすることでチーム開発のハードルを下げる

作った背景

Gitがわからないのでチーム開発に参加しづらい人がいる

推し技術

FastAPI, AWS

プロジェクト詳細

リポジトリ

フロントエンド
バックエンド

概要

チーム開発のシミュレーションをすることでチーム開発のハードルを下げるためのアプリ

使い方

  • 体験したいテーマを選択 image
  • Gitコマンドを入力してチーム開発を体験 image
  • リザルト image

技術構成

フロントエンド

Next.js TypeScript

バックエンド

Python(FastAPI) SQLAlchemy 本番環境:MariaDB 開発環境:MySQL

AWS

  • VPC、EC2にバックエンドをデプロイ [ Internet ] │ ▼ [ Internet Gateway ] │ ▼ [ VPC ]  [ Public Subnet ]   [ EC2 ]     FastAPI (Gunicorn/Uvicorn)    MariaDB (gitsim DB)

認証(2段階認証)

認証・セキュリティ bcrypt(パスワードハッシュ化) python-jose(JWTトークン) passlib(パスワード管理) python-multipart(フォームデータ処理)

JWTをCookieに保存して認証 メール送信による2段階認証を実装

[1] ログインフォーム Next.js → FastAPI /auth/login ↓ パスワードチェックOK

[2] 2FAコード送信 Next.js /api/2fa/request → FastAPI /2fa/request ↓ 6桁コード生成 → メール送信 → DB保存 (有効期限付き)

[3] 2FAコード入力 Next.js /api/2fa/verify → FastAPI /2fa/verify ↓ DBのハッシュと比較 → OKなら 2FA成功

AI活用

ChatGPTを設計の壁打ちにし、効率性の向上と正確性の向上に役立せた。

その他

モーダルシフト関連データ / 内航船舶輸送統計調査に入っている上位150レコードをJSON形式に直す ランダムな3つのレコードを抽出する 小数点より上2桁の数字を取得 (例として 22, 00, 37) 取得したレコード順で6桁の数字を生成 (例として #220037) このカラーコード生成を2回実行し、 最終的な二色のグラデーションを/resultの背景とする。

コマンド解釈

正規表現により、Gitの中身を以下の要素に分ける

基本構造: git [コマンド] [オプション] [引数] の形式を正規表現で解析

主要コマンドの解釈例: add: ファイルをステージング(-Aで全ファイル) commit: コミット実行(-aで全変更、-mでメッセージ付き)

fe01

@f0e72fc098fc575f