全ての人のためのポートフォリオ作成サービス。
以下のことをポートフォリオで公開できます。
- 技術スタック
- 制作物
- 外部サイトで執筆した記事
執筆記事はユーザー名(またはトークン)を登録して連携させることで自動取得。
Next.jsのApp Routerで構成。認証機能はAuth.js。
- Material UI (UIコンポーネント)
- tiptap (エディタ)
- react-toastify (トースト表示)
- Prisma (ORM)
- node-html-parser (urlからOGP画像を取得するため)
- Storybook
- Vitest
- PostgreSQL (データベース)
- Firebase Storage (オブジェクトストレージ)
以下のコマンドでクローンしてください。
$ 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
DockerでPostgreSQLを使います
$ docker compose up -d --build
$ docker compose up -d
$ npx prisma studio
$ docker compose down
Emulatorを使ってFirebase storageをローカルで実行します
$ npm install -g firebase-tools
$ npm run emu:storage
DBとエミュレータが起動していることを確認してください
.env
を新たに作成し、.env.sample
の内容をコピーした後、必要な部分を書き換えてください。
$ npm run dev
プロダクションビルドは以下のようにする
$ npm run build
$ npm run start
バンドルサイズを確認したいときはnpm run build
をnpm run build:analyze
へ置き換えてください。
http://localhost:3000 へアクセスするとトップページが出るはずです。
キャッシュなしで実行する場合は2つめのコマンドを以下に置き換えてください。
$ npm run dev:nocache
$ npm run storybook
$ npm run lint
$ npm run format
$ npm run fix
作業するときはmain
ブランチから新しくカテゴリ名/タイトル
とブランチを切ってください。カテゴリ名は例えば以下のようなものがあります。(あくまで参考程度です。)
feature
: 新しいコードや新機能fix
: バグの修正refactor
:feature
やfix
でもないコードの変更docs
: READMEやコメントの変更などbuild
: 依存関係の変更や新しいパッケージの追加などtest
: テストコードの追加 or 変更ci
: GitHub Actions等のCIに関する変更chore
: その他
特定のissueに関係したブランチの場合, カテゴリ名/#issue番号
としてください。
例えば、新しい機能に関するissueが#10
の場合, ブランチ名はfeature/#10
となります。
以下のコマンドを実行
$ gcloud builds submit --config cloudbuild.yaml