Yumax-panda / full-stack

A portfolio platform
https://full-stack-rvp52emraq-an.a.run.app/
MIT License
1 stars 0 forks source link

Full Stack

全ての人のためのポートフォリオ作成サービス。

機能

以下のことをポートフォリオで公開できます。

執筆記事はユーザー名(またはトークン)を登録して連携させることで自動取得。

技術構成

Next.jsのApp Routerで構成。認証機能はAuth.js。

フロントエンド

バックエンド

テスト

その他

開発する方へ

環境構築

リポジトリのクローン

以下のコマンドでクローンしてください。

$ git clone https://github.com/Yumax-panda/full-stack.git

SSHを使う場合は以下のようになります。

$ git clone git@github.com:Yumax-panda/full-stack.git

プロジェクト内へ入ります。

$ cd full-stack

プラグインのインストール

バージョン管理にはasdfを使うことを想定していますが、.tool-versionsへ記載されたバージョンがインストールされていれば動くと思います。

$ asdf install
$ corepack enable
$ asdf reshim nodejs
$ asdf reshim java

プラグインのバージョンを揃えた後に依存関係をインストールします。

$ npm install
$ npx prisma generate

DB

DockerでPostgreSQLを使います

起動(初回)

$ docker compose up -d --build

起動(2回目以降)

$ docker compose up -d

データベースの管理画面を起動

$ npx prisma studio

停止

$ docker compose down

Storageの起動

Emulatorを使ってFirebase storageをローカルで実行します

Firebase-CLIのインストール

$ npm install -g firebase-tools

起動

$ npm run emu:storage

アプリの起動

DBとエミュレータが起動していることを確認してください

.envを新たに作成し、.env.sampleの内容をコピーした後、必要な部分を書き換えてください。

$ npm run dev

プロダクションビルドは以下のようにする

$ npm run build
$ npm run start

バンドルサイズを確認したいときはnpm run buildnpm run build:analyzeへ置き換えてください。

http://localhost:3000 へアクセスするとトップページが出るはずです。

キャッシュなしで実行する場合は2つめのコマンドを以下に置き換えてください。

$ npm run dev:nocache

StorybookでUIのテスト

$ npm run storybook

lint (型チェック等)

$ npm run lint

format (コード整形)

$ npm run format

fix (lint & コード整形)

$ npm run fix

ブランチ命名規則

作業するときはmainブランチから新しくカテゴリ名/タイトルとブランチを切ってください。カテゴリ名は例えば以下のようなものがあります。(あくまで参考程度です。)

特定のissueに関係したブランチの場合, カテゴリ名/#issue番号としてください。

例えば、新しい機能に関するissueが#10の場合, ブランチ名はfeature/#10となります。

デプロイ (管理者用)

以下のコマンドを実行

$ gcloud builds submit --config cloudbuild.yaml