Skip to content

gaku101/reading-management

Repository files navigation

my-portfolio

作成した読書管理アプリのバックエンドです。
フロントエンドのコードは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

ローカル開発環境のセットアップ

ツールのインストール

インフラのセットアップ

  • 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

kubernetes clusterへのデプロイ

  • Install nginx ingress controller:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.48.1/deploy/static/provider/aws/deploy.yaml
  • Install cert-manager:

    kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.4.0/cert-manager.yaml

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages