MemoLucky — 大学生向けキャンパスコミュニティプラットフォーム
JWT 認証(Argon2 パスワードハッシュ)
プロフィール / アバター / カバー画像
フォロー & フォロワー管理
Markdown 対応のリッチ投稿
タグ & 匿名投稿サポート
いいね・コメント・画像添付
商品出品・購入申請フロー
出品者とのダイレクトチャット
カテゴリ別フィルタリング
初投稿・連続投稿・夜型ユーザーなど 8 種類のバッジ
Celery 非同期タスクによるリアルタイム付与
いいね・コメント・フォロー・メッセージを即座に通知
未読バッジ表示 & 一括既読処理
Redis によるレート制限(API スロットリング)
bleach による XSS 対策(HTML サニタイズ)
CORS 設定 & JWT 有効期限管理
graph TB
subgraph Client["クライアント層"]
Browser["Web ブラウザ"]
end
subgraph Frontend["フロントエンド (GitHub Pages)"]
React["React 19 + Vite"]
Router["React Router v7"]
i18n["i18n (ja/en)"]
end
subgraph Backend["バックエンド (FastAPI)"]
API["REST API"]
Auth["JWT 認証"]
RateLimit["レート制限"]
Celery["Celery Worker"]
end
subgraph Storage["データ層"]
PG["PostgreSQL 15"]
Redis["Redis 7"]
MinIO["MinIO (S3互換)"]
end
Browser -->|HTTPS| React
React -->|REST API| API
API --> Auth
API --> RateLimit
RateLimit --> Redis
API --> PG
API --> MinIO
API -->|非同期タスク| Celery
Celery --> PG
Celery --> Redis
Loading
users ─────────┬──< posts ──< comments
│ └──< likes
├──< items ──< item_messages
├──< follows
├──< notifications
└──< badges (user_badges)
テーブル
説明
users
ユーザー情報・プロフィール
posts
経験談投稿(タグ・添付・匿名対応)
items
フリマ出品商品
comments
投稿コメント
follows
フォロー関係
notifications
通知(いいね・フォロー等)
badges / user_badges
バッジ定義 & 付与記録
messages
ダイレクトメッセージ
レイヤー
技術
フロントエンド
React 19.2, Vite 7.2, React Router 7, Axios, Lucide React
バックエンド
FastAPI 0.104, SQLAlchemy 2.0, Pydantic v2
データベース
PostgreSQL 15
キャッシュ / 制限
Redis 7
オブジェクトストレージ
MinIO (S3 互換)
非同期タスク
Celery 5.3
認証
JWT (python-jose) + Argon2
インフラ
Docker Compose, GitHub Actions, GitHub Pages
Docker & Docker Compose
Node.js 18+
git clone https://github.com/syokan00/Database_Final.git
cd Database_Final
cp backend/env.example backend/.env
# .env を編集して SECRET_KEY などを設定
cd frontend
npm install
npm run dev
ブラウザで http://localhost:5173 にアクセス
Database_Final/
├── frontend/ # React + Vite SPA
│ └── src/
│ ├── components/ # 共通UIコンポーネント
│ ├── contexts/ # Context API (Auth, Notification)
│ ├── pages/ # ページコンポーネント
│ ├── i18n/ # 多言語定義 (ja/en)
│ └── utils/ # ユーティリティ
├── backend/ # FastAPI アプリ
│ └── app/
│ ├── auth.py # JWT認証
│ ├── posts.py # 投稿API
│ ├── items.py # フリマAPI
│ ├── badges.py # バッジAPI
│ ├── notifications.py# 通知API
│ ├── messages.py # DM API
│ └── celery_app.py # 非同期タスク
├── database/ # DBマイグレーション
├── docs/ # 設計ドキュメント
│ ├── BA/ # ビジネス分析 (ペルソナ, ストーリー)
│ ├── Architect/ # アーキテクチャ設計
│ ├── DBA/ # DB設計 (ER図)
│ ├── Infra/ # インフラ設計
│ └── PM/ # プロジェクト管理
└── docker-compose.yml
カテゴリ
内容
BA / ビジネス分析
ペルソナ・モチベーショングラフ・ストーリーボード
アーキテクチャ
システム構成・DR バックアップ・RPO/RTO
DB 設計
ER 図・インデックス設計・パーティション戦略
インフラ
Docker 設定・GitHub Actions・デプロイ手順
PM
WBS・マイルストーン・リスク管理
cd backend
pip install pytest pytest-asyncio httpx
pytest tests/ -v