研究室への登校頻度向上とメンバー間のコミュニケーション促進を目的とした出席管理システムです。
- チェックイン/チェックアウト機能: WiFi SSIDおよびGPS座標を用いた位置情報の検証
- リアルタイム在室状況: WebSocketを使用した在室者情報のリアルタイム更新
- ランキング機能: 出席日数に基づく週次・月次・年次のランキング表示
- 称号システム: 出席状況に応じた称号の付与(ゲーミフィケーション要素)
- データ可視化: 個人の滞在履歴やストリーク(連続出席日数)の表示
- 言語: Go 1.21+
- フレームワーク: Gin (REST API), gorilla/websocket
- ORM: GORM
- データベース: PostgreSQL 15+
- 認証: LDAP + JWT
- フレームワーク: React + TypeScript
- ビルドツール: Vite
- 状態管理: Zustand
- UI: Tailwind CSS
- HTTPクライアント: Axios
- 開発環境: Docker Compose
- 本番環境: 研究室サーバー
以下のツールがインストールされていること:
- Docker & Docker Compose
- Node.js 18以上
- Go 1.21以上(ローカル開発を行う場合)
- Make(オプション)
git clone https://github.com/kasa021/watabe-lab-app.git
cd watabe-lab-appバックエンドとフロントエンドそれぞれの環境変数ファイルを作成します。
# バックエンド
cd backend
cp .env.example .env
# 必要に応じて.envを編集してください
# フロントエンド
cd ../frontend
cp .env.example .envcd backend
# Dockerサービスの起動
docker-compose up -d postgres
# マイグレーションとシードデータの適用
make migrate-up
make seed
# サーバー起動
docker-compose up -d backend
# ログ確認
make logscd frontend
# 依存関係のインストール
npm install
# 開発サーバー起動
npm run dev