Skip to content

223n-tech/SuminNisshi-Go

Repository files navigation

SuminNisshi-Go

簡単に言えば、SuiminNisshiのGo言語版です。

1. はじめに

このREADME内の各種コマンドは、devcontainer環境下で実行した場合です。

2. 注意

まだ、ページは ハリボテの見た目 しか作成していません。 具体的な実装は、未実装なので注意してください。

3. ページ

handler アドレス ページ名 役割 モック実装 処理実装
N/A / トップページ x x
account_deletion.go /account/delete アカウント削除確認ページ o x
dashboard.go /dashboard ダッシュボード o x
auth.go /login ログインページ o x
auth.go /logout ログアウトページ o x
error.go /{存在しないページ} 404ページ o x
error.go 未設定 403ページ o x
error.go 未設定 405ページ o x
error.go 未設定 500ページ o x
password_reset.go /forgot-password パスワード忘れページ o x
password_reset.go /reset-password/{token} パスワード再設定ページ o x
privacy.go /privacy プライバシーポリシーページ o x
profile.go /profile プロフィールページ o x
register.go /register 新規アカウント登録ページ x x
settings.go /settings 設定ページ o x
settings.go /settings/export/csv 設定ページ(CSV出力) o x
settings.go /settings/export/json 設定ページ(JSON出力) o x
settings.go /settings/account/delete 設定ページ(アカウント削除) o x
sleep_records.go /sleep-records/ 睡眠記録一覧ページ x x
sleep_records.go /sleep-records/new 睡眠記録入力ページ x x
sleep_records.go /sleep-records/{id} 睡眠記録詳細ページ x x
sleep_records.go /sleep-records/{id}/edit 睡眠記録編集ページ x x
sleep_records.go /api/sleep-records/ (API)睡眠記録一覧 x x
statistics.go /statistics 統計情報ページ x x
statistics.go /statistics/data 統計情報ページ x x
terms.go /terms 利用規約ページ x x

3-1. ルート設定について

パスルートの設定は、internal/handlerにある各ハンドラー内で定義しているRegisterRoutes関数で設定しています。

4. 基本コマンド

makeコマンドで実行している詳細については、Makefileファイルを参照してください。

4-1. ホストの起動

make run

4-2. ホストの終了

ホストの起動中に、Ctrl+Cで終了させることができます。

4-3. AdminLTEの再セットアップ

make mod.install.adminlte

4-4. ツールのインストール

make tools.get

4-5. ドキュメントの生成

make tools.doc

4-6. lintの実行

make lint

5. devcontainer環境

5-1. APP

5-2. DB

  • image: mariadb:latest
  • DB: MariaDB
  • 設定
    • DB_HOST = db
    • USER_DB = suiminnisshi
    • DB_PASSWORD = suiminnisshi_password
    • DB_NAME = suiminnisshi

5-3. ポート転送

  • 8080: アプリケーションポート
  • 3306: MariaDBポート

6. 開発メモ

6-1. ドキュメントについて

makeコマンドで、ドキュメントファイルの自動生成が可能です。 生成したファイルは、doc/godocディレクトリに保存されています。

make tools.doc

6-2. .envrcファイルについて

  • ルートフォルダーに.envrcファイルが存在しない場合、devcontainerビルド時にテンプレートファイルから自動生成されます。
  • すでに、ルートフォルダーに.envrcファイルが存在する場合、自動生成されません。

6-3. ターミナルを起動するとdirenvのエラーが表示される

.envrcファイルの読み込みを有効にしてください。

direnv allow

6-4. 新しくページを追加したい

  1. web/template/pagesディレクトリに作成したいページ名のhtmlファイルを作成する。

  2. ページは基本レイアウトを継承して必要なコンテンツブロックを実装します。

    {{define "content"}}
      <!-- ページコンテンツをここに記述 -->
    {{end}}
  3. AdminLTEを使う場合には、

    • 必要なCSSファイルをstyleブロックで追加します。
    • 必要なJavaScriptファイルをscriptブロックで追加します。
  4. main.goにハンドラーの初期化と登録(必要な場合にのみ実施)

    • 必要な場合には、main.goにハンドラーを記載します。
    • 自動読み込みで良い場合には、不要です。
      // ex. 設定例
      // 設定ハンドラーの初期化と登録
      settingsHandler := handler.NewSettingsHandler(tm)
      settingsHandler.RegisterRoutes(router)