Plan: Transitioning to Forward Deployed Engineer / AI Engineer
A phase-based roadmap for backend engineers moving into FDE and AI Engineer roles — decoding the title chaos, the applied LLM stack, and the interview loop.
勉強時間や成果をポイントにして、成長を見える化するアプリ
Translation pending
EducationTypeScript · PLpgSQLGitHub @KerotomatoOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗勉強時間や成果をポイント(1pt=1円)に換算し、本人と親が成長を見える化する Web アプリです。 ポイントは本人がいつでも交換を請求でき、親が「渡した✅」を付けた時点で交換完了になり、ポイントが消費されます。 Z会の教材ごとのチェックリスト(学年×教科×月)もあり、チェックするとポイントがもらえます。
仕様書: https://claude.ai/artifact/6gpy8NfGy9TgzVhytTUrqn (v0.1)
supabase/migrations/ の SQL を番号順に実行する(手順は下の「データベースの更新手順」)
0001_init.sql:初期スキーマ0002_v1_1_changes.sql:v1.1 の変更(既存データも引き継ぐ)0003_zkai_and_exchange.sql:Z会チェックリストと、交換の「渡した」で完了する変更0004_zkai_items.sql:親が Z会の教材(6教科以外の行)を追加できるようにする変更0005_performance.sql:表示の高速化(残高の集計ビュー、インデックス、権限チェックの軽量化).env.example を .env.local にコピーして値を入れる
NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEY(サーバー側のみで使用)npm install
npm run dev # http://localhost:3000
npm test # ポイント計算ルールのテスト
npm run lint # 型チェック
Vercel では同じ環境変数を Project Settings > Environment Variables に設定します。
SUPABASE_TIMING=1 を付けると、Supabase への通信ごとの時間がサーバーのログ(Vercel の Logs)に出る
(例:[supabase] 132ms GET /rest/v1/users)。確認が終わったら外すSQL ファイルは「どこかに置く」ものではなく、中身をコピーして Supabase の SQL Editor に貼り付けて実行します。
supabase/check_schema.sql の中身を全部コピーして貼り付け、Run を押す0001〜0005 のファイルがそれぞれ「実行済み」か「未実行」かを見るcheck_schema.sql を実行し、すべて「実行済み」になっていることを確かめる注意
0001_init.sql は最初の1回だけ実行する。もう一度実行すると「already exists」のエラーになる(データは壊れない)0002 以降は何度実行しても大丈夫。途中で失敗しても何も変更されないので、エラーを直してからもう一度実行すればよい0001_init.sql はもう実行済み。次の番号のファイルに進む0001_init.sql を実行する/signup で家族を登録する(初期科目:国語・数学・英語・理科・社会)can_view_child など)で家族ごとに分離し、
書き込みは Server Action で権限を確認してから service role で行う。
authenticated ロールには書き込みポリシーがないため、子どもが自分でポイントを付与することはできない。point_ledger の合計で求め、直接書き換えない。合計は集計ビュー point_balances で DB 側で計算する。(child_id, kind, ref_id) の一意制約で
同じボーナスの二重付与を防ぐ。@holiday-jp/holiday_jp。src/lib/points.ts の純粋関数にまとめ、src/lib/points.test.ts でテストしている。proxy.ts はセッションの有無の確認と期限切れのリフレッシュだけを行う(通常は通信しない)。
ユーザーの確認(JWT の検証)と役割の取得は lib/auth.ts で、React の cache() により1回のリクエストで1回だけ行う。UserClient 型)しか受け取らず、RLS を通らない管理用クライアントは渡せない。| 項目 | この実装での扱い |
|---|---|
| 連続記録ボーナス | 連続日数が設定日数の倍数(7日、14日…)に達するたびに付与 |
| 記録の削除・却下 | 親は手入力の記録を「却下」、タイマーの記録を「削除」できる(どちらも理由必須・本人に通知)。取り消すのはその記録のポイントのみで、付与済みの連続・週ボーナスは残す |
| 記録の編集 | 本人が時間・教材・科目・ページ・メモを編集できる(日付は不可)。時間を変えたら保存時のレートで再計算し、差分を「記録の修正」として台帳に残す。タイマー記録の時間を変えると手入力扱いになり、親が却下できる。教材の進捗は戻さない |
| ポイント交換 | 親の承認はなし。請求で親に通知。親が「渡した」を付けた時点で完了・消費し、本人に通知。「渡した」前なら本人が請求を取り消せる。以前「渡した」だけ付いていた交換は 0003 の実行時に完了にする |
| タスクの名前 | 任意。空なら「教材名 p.○-○」→ 教材名 → 科目名の順で表示。名前・教材・科目のどれか1つは必要 |
| テスト目標 | 目標と達成ポイントを子どもが目標ごとに決める(0〜1,000,000pt)。1つの目標につき達成は1回。点数目標は「○点以上」、英検などは合格/不合格で判定。未達成の目標は本人・親が取り下げ可 |
| Z会の学年 | 親が子どもごとに中学1〜3年を設定し、毎年3月(Z会の新年度)に自動で1つ上がる。表は学年に関係なく1〜3年のどれでも見られ、どのマスもいつでもチェックできる。学年が未設定のときは、選んだ学年を今年度の学年として記録する |
| Z会のチェック | 子どもが付け外しする。どの学年・どの月のマスもいつでもチェックできる(先の月も可)。付けたときのポイントを記録し、外したとき・親が取り消したときはその額を戻す(kind='zkai')。親が取り消したマスにはそのことを表示するが、子どもはもう一度チェックできる(記録の却下と同じく、新しい行になる) |
| Z会の教材の追加 | 親が子どもごとに、6教科以外の行(例:プラス 数学)を名前と1回分のポイント(50pt単位)で追加できる。表では6教科のあとに並び、チェック・ポイント・取り消しは教科と同じ。表から外しても、付け済みのチェックとポイントは残る。今月の進み具合とホームの「あと○教科」にも含める |
| Z会のポイント設定 | 教科ごとに親が50pt単位で設定(初期値 300pt、作文 500pt)。変更はこれから付けるチェックから反映 |
| ワーク1周 | 最終ページ到達で1周ボーナスを付与。2周目は本人が「○周目を始める」で開始 |
| 1周ボーナスの額 | 教材ごとに親が子どもの詳細画面で設定(初期値 2,000pt) |
| 今日のタスク | 完了の取り消しはなし。前日以前の未完了タスクはホームで「持ち越す/やめる」を選ぶ |
| 子どものログイン | 親が発行するログインID+パスワード(内部的には CHILD_EMAIL_DOMAIN のメールアドレスに変換) |
| 「今月のポイント」 | 今月増えたポイント(取り消しを含み、交換での消費は含めない) |