drink-counter

GitHub release CI Status CodeFactor codebeat badge Codacy Badge Maintainability license:MIT

アルコールを飲んだ杯数を日付別に記録するアプリ。

Setup

Set up a git commit template.

git config --local commit.template .commit-msg

Make sure to install the dependencies:

pnpm install

Install Supabase CLI & Log in.
https://supabase.com/docs/guides/cli

Development Server

# Rename .env.template to .env
cp .env.template .env

# Start the Supabase service
supabase start

# Edit .env SUPABASE_KEY

# Start the development server on http://localhost:3001
pnpm dev

Create a migration file from local schema differences

supabase db diff -f [file_name]
supabase gen types --lang=typescript --local > database.types.ts

Release

pnpm version major
pnpm version minor
pnpm version patch

各階層の役割

├ assets/ # 資産置き場
│  └ scss/ # グローバルなSCSS置き場 フレームワークを使ってる & コンポーネント単位でCSS当ててるから使うことないかも。
├ components/ # コンポーネント置き場
│  ├ share/ # 共通で利用するコンポーネント置き場 ここに機能単位でディレクトリを分けて作成する
│  └ pages/ # ページ毎にディレクトリを分けて、そのページ内だけで利用するコンポーネントを置く
├ composables/ # Piniaで管理するほどでもないコード置き場(今の所使ってない)
├ layouts/ # レイアウト置き場
├ locales/ # 言語ファイル置き場
├ pages/ # ページ置き場 pagesの中ではエラーハンドリングしない
├ plugins/ # プラグイン置き場
├ public/ # staticページ置き場
├ store/ # Pinia置き場 モデルとそのモデルを更新するためのAPIを提供する
│  ├ data/ # Supabase側で持っているモデルとほぼ同じモデルを保持する エラーが発生した場合はメッセージコードをreturnする
│  ├ pages/ # dataのモデルを組み合わせて、各ページで利用するモデルを作成する エラーが発生した場合はメッセージをトースト表示する
│  ├ supabase.ts # supabase関連 storeが適切かは悩みどころ 
│  └ user.ts # ログイン情報を保持する
├ supabase/ # supabase関連のファイル置き場
│  ├ functions/ # Supabase Functionsファイル置き場
│  ├ migrations/ # マイグレーションファイル置き場 原則supabase db diffコマンドでファイルを作成する
│  └ seed.sql # シードデータファイル
└ utils/ # 共通で利用する関数・定数置き場

ブランチ命名規則とバージョン更新規則

ブランチ名 Issue Label 概要 補足
feature/#999_xxxxxx enhancement 機能追加用ブランチ 原則マイナーバージョンを更新する。
bugfix/#999_xxxxxx bug 不具合修正用ブランチ 原則パッチバージョンを更新する。
refactor/xxxxxx refactoring リファクタリング用ブランチ 原則パッチバージョンを更新するが、影響範囲が大きい場合はマイナーバージョンを更新する。
document/#999_xxxxxx documentation ドキュメントの整備用ブランチ 原則パッチバージョンを更新する。
maintain/#999_xxxxxx maintenance アプリとは直接関係のない機能(.vscode/や.github/、ESLint等)の整備用ブランチ 原則パッチバージョンを更新する。
release/v0.0.0 リリース用ブランチ 複数のチケットをリリースする場合に利用する。
upgrade/nuxt_v0.0.0 upgrade フレームワーク・ライブラリ等のアップグレード用ブランチ 原則パッチバージョンを更新するが、メジャーバージョンをアップグレードする場合はマイナーバージョンを更新する。

コミットメッセージ規約

Conventional Commits v1.0.0 に従います。

リリース手順

  1. PR作成
  2. PRにLabel(major/minor/patch)を付与する
  3. Github Actionsチェック
  4. PRマージ

各バージョン更新手順

# pnpm update
corepack use pnpm@8

# パッケージ一括アップデート
pnpm up --latest

# Nuxt upgrade
pnpm nuxi upgrade --force