作成した読書管理アプリのバックエンドです。
フロントエンドのコードはhttps://github.com/gaku101/my-portfolio-front から確認できます。
- 読書記録の作成・閲覧・削除
- Google Books APIを利用した書籍情報の検索 & 読書記録作成
- 読書記録にノート(メモ)を追加・編集
- 読書記録に読んだページ数を登録
- 読書記録にカテゴリーを追加
- 読書記録にコメントを追加
- 読書記録をお気に入りに追加(⭐️ボタン押下)
- ユーザーのフォロー
- ユーザーのサインアップ・サインイン
- ユーザーの削除
- ポイントの獲得、他ユーザーへの送付
- 獲得ポイントに基づくランク制度(プロフィールで現在のランクを確認)
- プロフィール画像の変更
- go 1.16-alpine3.13
- PostgreSQL 12-alpine
- golang-migrate v4.14.1
- Go
- gin
- sqlc(ORM)
- viper
- RDS(PostgreSQL)
- Github Actions
- Docker
- Kubernetes
- S3
- ECR
- EKS
@
├─ github
│ └─ workflows // github-actionsの設定ファイル
├─ api // 各種API
├─ db
│ ├─ migration
│ ├─ mock
│ ├─ query
│ └─ sqlc
├─ infrastructure
├─ token
├─ util
├─ app.env
├─ docker-compose.yaml
├─ Dockerfile
├─ go.mod
├─ go.sum
├─ main.go
├─ Makefile
├─ sqlc.yaml
├─ start.sh
└─ wait-for.sh
-
brew install golang-migrate
-
brew install sqlc
-
go install github.com/golang/mock/mockgen@v1.6.0
-
Create the bank-network
make network
-
Start postgres container:
make postgres
-
Create simple_bank database:
make createdb
-
Run db migration up all versions:
make migrateup
-
Run db migration up 1 version:
make migrateup1
-
Run db migration down all versions:
make migratedown
-
Run db migration down 1 version:
make migratedown1
-
Generate SQL CRUD with sqlc:
make sqlc
-
Generate DB mock with gomock:
make mock
-
Create a new db migration:
migrate create -ext sql -dir db/migration -seq <migration_name>
-
Run server:
make server
-
Run test:
make test
-
Install nginx ingress controller:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.48.1/deploy/static/provider/aws/deploy.yaml
-
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.4.0/cert-manager.yaml