Goでマジサバ試験サイトを作る
xStep 2.1: 環境構築とルーティング (Echo + Templ) xgo generate でGoコードへトランスパイルするビルドフローを確立 xルーティング定義: MVPの画面遷移に合わせて e.GET を設定 xハンドラ実装: 単なる文字列でなく,Templコンポーネントをレンダリングして返す. component.Render xStep 2.2: データ構造の設計 (Struct) - "Markdown to Struct" (3-5h) Markdownテキストからパースした問題文 / 選択肢 / 正解を保持する構造体を定義
ユーザーの解答状況(未解答/解答済み)と一時保存データを管理する構造体を設計
xStep 2.3: ロジック実装 (Markdownパーサーと問題読み込み) (5-8h) テキストファイル(問題データ)を読み込み,Step 2.2の Question 構造体に変換するロジックを実装
正規表現や bufio.Scanner を用いて,問題文と選択肢を分離して格納
!Step 2.4: フロントエンド連携 (Templ + htmx + Alpine.js) (6-10h) TemplとTailwindで「共通テスト風」の見た目を構築
Alpine.jsで選択状態(塗りつぶし)のUI挙動を制御
htmx (hx-post, hx-trigger="change") を使用
選択肢をクリックするたびにバックグラウンドで解答状況をGoサーバーへ送信・保存
Alpine.jsを用いてクライアントサイドで時間を管理
時間切れで /result へ強制遷移
xStep 2.5: 採点システムと結果表示 (3-5h) 終了ボタン押下時 (POST /submit) ,保存されたユーザーの解答と正解データ(Struct)を比較してスコアを計算
合否判定ロジックを通し,結果画面のTemplコンポーネントを生成して返す