Skip to content

tuatmcc/SchoolFestival2024_Frontend

Repository files navigation

School Festival 2024 Frontend

技術スタック

必要なもの

  • Node.js
  • Docker (ローカルで Supabase を使う際に必要になります)

Mac や WSL では mise 等を経由してインストールすることをお勧めします。

セットアップ

このプロジェクトをクローンしたら、まずは pnpm を使えるようにするために以下のコマンドを実行してください。

corepack enable

次に、依存関係をインストールします。このコマンドは依存関係が更新された際にも必要なため、pull した後などにも実行が必要な場合があります。

pnpm install

次に、Supabase の設定を行います。ローカルの Supabase を使う場合は、以下のコマンドを実行して Supabase を起動してください。(要 Docker)

pnpm supabase start

しばらくすると、Supabase の各種パラメータが表示されるため、API URLanon key.envファイルに設定してください。また、 http://127.0.0.1:54323 で Supabase のダッシュボードにアクセスできます。

リモートの Supabase を使う場合は、Supabase のダッシュボードから取得したAPI URLanon key.envファイルに設定してください。

開発

開発サーバーの起動

開発サーバーを起動するには以下のコマンドを実行してください。

pnpm run dev

ブラウザから http://localhost:5173 でアクセスできます。ファイルの変更を検知して自動でリロードされます。

リンター

Biome を用いてコードのチェックを行います。VSCode で Biome 拡張をインストールしておくと、エディタ上でエラーを確認できます。

pnpm run lint

フォーマット

Biome を用いてコードのフォーマットを行います。

pnpm run fmt

ビルド

以下のコマンドでプロジェクトをビルドできます。基本的にデプロイ時に自動で行われるので、手動でビルドする必要はありません。

pnpm run build

Supabase

Supabase のテーブルを編集する場合はローカルの Supabase が必要となります。セットアップの手順に従ってローカルの Supabase を起動してください。

pnpm supabase start

参考: https://supabase.com/docs/guides/local-development/overview

Supabase を止める

pnpm supabase stop

データをリセットする

マイグレーションからやり直されるため、認証情報も含めてテーブル内のすべてのデータが消去されます。

pnpm supabase db reset

新しくテーブルを作る・テーブルを編集する

テーブルを編集したい場合はマイグレーションファイルを使用します。以下のコマンドで新しいマイグレーションファイルを作成できます。

pnpm supabase migration new <マイグレーション名>

実行すると、supabase/migrations ディレクトリに新しいマイグレーションファイルが作成されます。このファイルを編集して、テーブルの変更を記述してください。

マイグレーションファイルが完成したらデータリセットを行うことでマイグレーションが行えます。

なお、テーブルに変更を加えた場合は TypeScript の型を再生成する必要があります。

pnpm supabase gen types --lang=typescript --local > app/libs/database.ts

忘れずにコミットしてください。

リモートの Supabase にマイグレーションを反映する

マイグレーションを反映する場合は以下のコマンドを実行してください。

# ログインする
# 一回だけでOK
pnpm supabase login

# プロジェクトをリンクする
# 一回だけでOK
# project-id は Supabase のダッシュボードから取得してください
pnpm supabase link --project-ref <project-id>

pnpm supabase db push

Caution

マイグレーションを実行した場合、リモートのデータベースに変更が加えられます。場合によってはデータが消失する可能性があるため、十分に注意をしてください。 このコマンドは頻繁に実行されることはありません。通常は今からマージされる PR のブランチ上で実行されるはずです。

ブランチ

main にマージすると Cloudflare へデプロイされるよう設定する予定です。main からブランチを切り、プルリクエスト経由でmainへマージしてください。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published